Skip to content

Plan viewer: a minimap of the whole plan #4580

Closed

Description

@erikdarlingdata

Part of #4511, plan viewer parity with PerformanceStudio (PS). The viewer control is shared by the Darling Viewer and Lite, so each change lands in both.

PS erikdarlingdata/PerformanceStudio@a8aa163 (later refactored into PlanViewerControl.Minimap.cs, 523 lines) adds a toggle button that opens a resizable (160–500px, persisted across plans in-memory) corner panel: a scaled-down Canvas showing (1) translucent colored rectangles behind each root-child subtree (8-color cycle), (2) elbow connectors with the same log(rows)-scaled thickness and accuracy-ratio coloring as the main canvas, (3) small per-node rectangles (red tint for "expensive" nodes, each showing the operator icon at ~70% size), (4) a semi-transparent viewport box that tracks scroll/zoom/pan, and (5) click-to-center / double-click-to-zoom-and-select on a minimap node. PM has no Minimap symbol anywhere (grep -rl Minimap returns nothing).

WPF design sketch: a Grid-hosted Canvas (MinimapCanvas) inside a Border overlay anchored top-left of the plan ScrollViewer's AdornerLayer or a sibling Grid cell with Panel.ZIndex; reuse WPF Thumb for the resize grip instead of Avalonia's pointer-drag math; recompute scale = min(canvasW/PlanCanvas.Width, canvasH/PlanCanvas.Height) on each RenderMinimap(); reuse PlanLayoutEngine.NodeWidth/GetNodeHeight (present in PM too) for bounds; the viewport box binds to ScrollViewer.HorizontalOffset/VerticalOffset/ViewportWidth/ViewportHeight via ScrollChanged. Node color/icon reuse PlanIconMapper.GetIcon.

At 08f3e3c4e. PS reference: its dev branch at 85492a1.

Activity

  1. erikdarlingdata commented on Sep 28, 2026

    @erikdarlingdata
    OwnerAuthor

    Claude posting for Erik Darling.

    Fixed in #4596 (part 1) and #4603 (part 2, e7d90a2). The plan viewer has PerformanceStudio desktop's minimap: a toggle, a scaled overview with its branch colours and operator icons, a viewport box, click-to-centre, resizing within 160 to 500 remembered across plans, double-click zoom and select, and accuracy-coloured edges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions