Skip to content

Complete move to PlotGrid #541

Description

@SimonHeybrock

We want to remove the old plotting widget and fully move to a plot-grid based architecture. There are a number of outstanding tasks:

  • Add small widget to add new plot-grids (a new tab). This needs to allow configuring the tab title as well as the grid size (2x2, 3x2, 3x3, ...). We probably need to generate a unique ID in addition to the display title.
  • Add mechanism to persist plot grids configs. This will work hand-in-hand with the new JobOrchestrator (Job orchestrator #540), which will move the UI towards a workflow-based approach.
  • Add mechanism to replace plots in the grids via the controller, e.g., if a job-transition for a workflow happens via the JobOrchestrator.

The backbone to this would probably be a PlotOrchestrator (working title, time will tell if it should remain independent of PlottingController, but during the refactor we want the old mechanism to remain functional so adding a fresh class seems benefitial). Conceptually it would be something like:

@dataclass
class PlotTab:
    name: UUID
    title: str
    plots: tuple[corner1, corner2, WorkflowId, OutputName, PlotterConfig]  # better: dataclass(es)

class PlotOrchestrator:
    _plots: list[PlotTab]

Just like JobOrchestrator stores WorkflowConfig, PlotOrchestrator would store plotter configs and plots tabs.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions