Creates a new Figure instance from MAIDR data.
After construction, call applyLayout with the result of
resolveSubplotLayout() to set visual ordering and axes references.
The MAIDR data containing figure information and subplots
Protected ReadonlyobserversProtectedisReadonlyidProtectedmovableReadonlysubplotsProtecteddimensionProtectedvaluesGets the currently active subplot based on row and column position
The active subplot
Gets the current state of the figure including active subplot
The complete figure state
ProtectedhighlightProtectedoutProtectedgetGets safe row and column indices to prevent accessing undefined values
Object with safe row and column indices
Registers an observer to receive state updates.
The observer to add
Removes an observer from receiving state updates.
The observer to remove
Notifies all registered observers with the current state.
Notifies observers that an out-of-bounds condition occurred.
Base implementation of navigation in HIGHER and LOWER modes of ROTOR, default is no-op Needs to be implemented in Line, Bar, Heatmap, Candlestick
Utility function to compare point values for rotor functionality
boolean value
Applies pre-computed visual layout data to this figure and its subplots.
Must be called once after construction (and before the figure is used)
with the result of resolveSubplotLayout().
The pre-computed layout from the utility function.
Overrides navigation to conditionally invert vertical direction. When data row 0 is at the visual top, we invert UPWARD/DOWNWARD so that pressing Up arrow moves toward lower row indices (visual top).
Overrides extreme navigation with the same directional adjustment.
Cleans up all subplots and releases resources
Moves to a specific point in the figure (implementation in subclasses)
The x coordinate
The y coordinate
Represents a figure containing one or more subplots