java.lang.Object
org.snapfx.sidebar.DockSideBarController
Manages transient sidebar view state and sidebar interaction policy for
SnapFX.
This controller stores UI-only sidebar state such as selected sidebar nodes, temporary overlay visibility,
and temporary pinned-panel collapse flags. Persistent sidebar model state (pinned entries, pinned-open flags,
persisted panel width) remains owned by DockGraph.
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a controller with a default sidebar interaction state. -
Method Summary
Modifier and TypeMethodDescriptionbooleancloseTransientOverlays(Predicate<javafx.geometry.Side> sidePinnedOpenResolver) Closes transient overlays for sides that are not currently pinned-open.voidRemoves transient state entries that reference a given node.Returns the current framework sidebar rendering mode.booleanReturns whether any transient overlay sidebar panel is currently open.booleanReturns whether active-icon click should collapse currently pinned-open side panels.booleanisOverlayOpen(javafx.geometry.Side side) Returns whether the transient overlay panel is currently open for a side.booleanisPinnedPanelCollapsed(javafx.geometry.Side side) Returns whether the pinned-open side panel is temporarily collapsed for a side.voidonCollapseApplied(javafx.geometry.Side side, boolean sidePinnedOpen) Applies transient-state cleanup after attempting to collapse a pinned-open sidebar side.voidonIconClicked(javafx.geometry.Side side, DockNode dockNode, boolean sidePinnedOpen) Updates transient state after a sidebar icon click.voidonNodePinned(javafx.geometry.Side side, DockNode dockNode) Updates transient state after a node is pinned into a sidebar.voidonPanelCollapsed(javafx.geometry.Side side, DockNode dockNode, boolean sidePinnedOpen) Updates transient state after collapsing a pinned-open panel.voidonPanelPinnedOpen(javafx.geometry.Side side, DockNode dockNode, boolean sidePinnedOpen) Updates transient state after pinning a panel open.voidonPanelRestoreRequested(javafx.geometry.Side side, DockNode dockNode) Updates transient state before restoring a node from sidebar to the main layout.voidonPinOpenApplied(javafx.geometry.Side side, boolean sidePinnedOpen) Applies transient-state cleanup after attempting to pin-open a sidebar side.voidpruneInvalidViewState(javafx.geometry.Side side, List<DockNode> pinnedNodes, boolean sidePinnedOpen) Reconciles transient state for a side against currently pinned nodes and pinned-open model state.voidClears all transient sidebar view state.resolveSelectedNode(javafx.geometry.Side side, List<DockNode> pinnedNodes) Resolves the selected node for a sidebar side using current pinned-node state.voidsetCollapsePinnedSideBarOnActiveIconClick(boolean collapsePinnedSideBarOnActiveIconClick) Controls whether active-icon click should collapse currently pinned-open side panels.booleanSets the framework sidebar rendering mode.
-
Constructor Details
-
DockSideBarController
public DockSideBarController()Creates a controller with a default sidebar interaction state.
-
-
Method Details
-
getSideBarMode
Returns the current framework sidebar rendering mode.- Returns:
- current sidebar mode
-
setSideBarMode
Sets the framework sidebar rendering mode.- Parameters:
mode- target mode, falls back toDockSideBarMode.AUTOwhennull- Returns:
truewhen the mode changed; otherwisefalse
-
isCollapsePinnedSideBarOnActiveIconClick
public boolean isCollapsePinnedSideBarOnActiveIconClick()Returns whether active-icon click should collapse currently pinned-open side panels.- Returns:
truewhen active-icon click collapses pinned-open side panels
-
setCollapsePinnedSideBarOnActiveIconClick
public void setCollapsePinnedSideBarOnActiveIconClick(boolean collapsePinnedSideBarOnActiveIconClick) Controls whether active-icon click should collapse currently pinned-open side panels.- Parameters:
collapsePinnedSideBarOnActiveIconClick- collapse policy flag
-
isOverlayOpen
public boolean isOverlayOpen(javafx.geometry.Side side) Returns whether the transient overlay panel is currently open for a side.- Parameters:
side- sidebar side- Returns:
truewhen the overlay panel is open
-
isPinnedPanelCollapsed
public boolean isPinnedPanelCollapsed(javafx.geometry.Side side) Returns whether the pinned-open side panel is temporarily collapsed for a side.- Parameters:
side- sidebar side- Returns:
truewhen a pinned-open panel is temporarily collapsed
-
hasOpenOverlays
public boolean hasOpenOverlays()Returns whether any transient overlay sidebar panel is currently open.- Returns:
truewhen at least one transient overlay is open
-
onIconClicked
Updates transient state after a sidebar icon click.Behavior mirrors the previous
SnapFXimplementation: pinned-open sidebars toggle temporary collapse/expand behavior, while overlay sidebars toggle open/close behavior for the selected node.- Parameters:
side- sidebar sidedockNode- selected nodesidePinnedOpen- whether the side is currently pinned-open in the persistent model
-
onPanelPinnedOpen
Updates transient state after pinning a panel open.- Parameters:
side- sidebar sidedockNode- selected nodesidePinnedOpen- whether the pin-open operation is currently reflected in the model
-
onPanelCollapsed
Updates transient state after collapsing a pinned-open panel.- Parameters:
side- sidebar sidedockNode- selected nodesidePinnedOpen- whether the side is still pinned-open after collapse attempt
-
onPanelRestoreRequested
Updates transient state before restoring a node from sidebar to the main layout.- Parameters:
side- sidebar sidedockNode- node to restore
-
onNodePinned
Updates transient state after a node is pinned into a sidebar.- Parameters:
side- sidebar sidedockNode- pinned node
-
onPinOpenApplied
public void onPinOpenApplied(javafx.geometry.Side side, boolean sidePinnedOpen) Applies transient-state cleanup after attempting to pin-open a sidebar side.- Parameters:
side- sidebar sidesidePinnedOpen- whether pin-open is currently active in the model
-
onCollapseApplied
public void onCollapseApplied(javafx.geometry.Side side, boolean sidePinnedOpen) Applies transient-state cleanup after attempting to collapse a pinned-open sidebar side.- Parameters:
side- sidebar sidesidePinnedOpen- whether the side remains pinned-open after the collapse attempt
-
closeTransientOverlays
Closes transient overlays for sides that are not currently pinned-open.- Parameters:
sidePinnedOpenResolver- callback used to query persistent pinned-open state by side- Returns:
truewhen at least one overlay was closed
-
pruneInvalidViewState
public void pruneInvalidViewState(javafx.geometry.Side side, List<DockNode> pinnedNodes, boolean sidePinnedOpen) Reconciles transient state for a side against currently pinned nodes and pinned-open model state.- Parameters:
side- sidebar sidepinnedNodes- currently pinned nodes on the sidesidePinnedOpen- whether the side is currently pinned-open in the model
-
resolveSelectedNode
Resolves the selected node for a sidebar side using current pinned-node state.- Parameters:
side- sidebar sidepinnedNodes- currently pinned nodes on the side- Returns:
- selected node for the side, or
nullwhen no pinned nodes are available
-
resetTransientViewState
public void resetTransientViewState()Clears all transient sidebar view state. -
forgetTransientStateForNode
Removes transient state entries that reference a given node.- Parameters:
node- node whose transient state should be removed
-