OptionaliconA glyph drawn before the label in the strip, marking where the pane came from.
An SVG string, injected with innerHTML and not sanitised — it must be
trusted, exactly like PivotDefinition.icon. Useful when several tabs are
the same kind of pane: four candidate reviews and a data table read as one list
of five otherwise.
OptionalidStable identity: what removeDockTab / activateDockTab take, and the
data-tab written onto the strip's button.
The strip's label, used verbatim (so it can be translated).
OptionalonCalled when this tab comes to the front, and when it leaves. A tab that watches
live data should stop working in onDeactivate and catch up in onActivate:
nothing else tells it that it is off screen.
OptionalonOptionalorderDisplay order in the strip, ascending. Equal orders keep registration order — and since plugins install after the UI is built, a plugin's tabs land after the built-in ones without having to say so.
Build the pane's body. Called once, lazily, the first time the tab comes to the front — a tab nobody opens costs nothing. The element is kept and re-attached on later activations, so it holds its own state (scroll position included).
OptionaltoolbarBuild this tab's header controls, laid out as part of the dock's header row. Re-invoked on every activation, so the controls can reflect the tab's current state.
A pane with several views of its own draws the switch here. Two public classes
give it the same look the built-in table has — pvt-dock-views on the strip,
pvt-dock-view on each button, active on the current one — so it stays a pill
group beside the dock's own tabs and follows the theme.
A pane in the bottom dock — one entry in its tab strip.
The dock owns the region: the grid row, its height, the resize divider and the fold. A tab owns what is in it — a body, and optionally its own header controls, which the dock swaps in and out as the active tab changes. With only one tab registered no strip is drawn at all; there is nothing to switch.
Register one at any point in the graph's life with
graph.UIManager.addDockTab(), or from a plugin'sinstallviactx.addDockTab(). Either returns a disposer.One tab is one pane, not one view of one. A pane with several views of its own — the data table's
NodesandEdges— is a single dock tab that draws its own switch in itstoolbarand calls DockTabHandle.refresh to change body. So the dock's strip lists panes (Table,Events) and never flattens one pane's views out alongside another pane; the two levels are drawn differently for the same reason.The data table is itself just such a tab, so a registered tab is exactly as privileged as the built-in one.
Example