M160 extracts the editor's five content panes without changing the editor
layout, authoring behavior, or backend pipeline. The fixed grid, splitters,
bottom tabs, toolbar, menu, and status bar remain owned by MainWindow; this
milestone does not introduce docking or layout persistence.
RoutePaneControlowns the track header, connected authoring route, selected and highlighted node presentation, and route pointer/selection events.ViewportPaneControlowns the viewport header, statistics, selection overlay, and the existingTrackViewportControl. It preserves the fit, projection, transported-frame visibility, station cursor, section highlight, and sample selection surface.InspectorPaneControlowns the existing track, section, and canonical sample inspectors, including the established signed-radius edit path.MathPlotsPaneControlowns the plot header, channel visibility toggles, station readout, and the existingEngineeringPlotWorkspaceControl.DiagnosticsPaneControlowns the sampling and frame diagnostic summary and list.
Each pane is a public Avalonia UserControl with a parameterless constructor
and explicit state/event properties for composition. The lower-level viewport
and Math Plot renderers remain unchanged and are nested by their pane controls.
MainWindow remains the composition root. It listens to EditorWorkspace
notifications, supplies the current immutable snapshots and selection state to
the panes, relays pane interactions to the existing workspace commands, and
synchronizes station and section highlighting across panes.
No new document, graph, geometry, sampling, or projection model was added.
EditorWorkspace, TrackSamplingService, EngineeringSnapshot, the authoring
graph compiler, undo/redo, and Track Layout Package V2 persistence remain the
same sources of truth used before extraction. The Inspector's radius edit still
uses EditorWorkspace.ApplyGraphEdit, so validation and atomic history behavior
are unchanged.
- docking, floating panes, tab rearrangement, or saved layouts;
- new pane commands or editor features;
- backend or file-format changes;
- renderer replacement or engine dependencies.
The extraction contract is covered by
Quantum.Tests/Editor/PaneExtractionContractTests.cs; the complete solution
build and test suite continue to validate the existing backend and editor
behavior.