java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.HiddenSidesPane
- All Implemented Interfaces:
javafx.css.Styleable
,javafx.event.EventTarget
,javafx.scene.control.Skinnable
public class HiddenSidesPane
extends javafx.scene.control.Control
A pane used to display a full-size content node and four initially hidden
nodes on the four sides. The hidden nodes can be made visible by moving the
mouse cursor to the edges (see
setTriggerDistance(double)
) of the
pane. The hidden node will appear (at its preferred width or height) with a
short slide-in animation. The node will disappear again as soon as the mouse
cursor exits it. A hidden node / side can also be pinned by calling
setPinnedSide(Side)
. It will remain visible as long as it stays
pinned.
Screenshot
The following screenshots shows the right side node hovering over a table after it was made visible:
Code Sample
HiddenSidesPane pane = new HiddenSidesPane(); pane.setContent(new TableView()); pane.setRight(new ListView());
-
Property Summary
PropertiesTypePropertyDescriptionfinal javafx.beans.property.ObjectProperty
<javafx.util.Duration> Returns the animation delay property.final javafx.beans.property.ObjectProperty
<javafx.util.Duration> Returns the animation duration property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the bottom node property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> The property that is used to store a reference to the content node.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the left node property.final javafx.beans.property.ObjectProperty
<javafx.geometry.Side> Returns the pinned side property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the right node property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> The property used to store a reference to the node shown at the top side of the pane.final javafx.beans.property.DoubleProperty
The property that stores the distance to the pane's edges that will trigger the appearance of the hidden side nodes.
Setting the property to zero or a negative value will disable this functionality, so a hidden side can only be made visible withsetPinnedSide(Side)
.Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltip
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
Properties inherited from class javafx.scene.Parent
needsLayout
Properties inherited from class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
Field Summary
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new pane with no content and no side nodes.HiddenSidesPane
(javafx.scene.Node content, javafx.scene.Node top, javafx.scene.Node right, javafx.scene.Node bottom, javafx.scene.Node left) Constructs a new pane with the given content node and the four side nodes. -
Method Summary
Modifier and TypeMethodDescriptionfinal javafx.beans.property.ObjectProperty
<javafx.util.Duration> Returns the animation delay property.final javafx.beans.property.ObjectProperty
<javafx.util.Duration> Returns the animation duration property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the bottom node property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> The property that is used to store a reference to the content node.protected javafx.scene.control.Skin
<?> final javafx.util.Duration
Returns the animation delayfinal javafx.util.Duration
Returns the animation delayfinal javafx.scene.Node
Returns the value of the bottom node property.final javafx.scene.Node
Returns the value of the content node property.final javafx.scene.Node
getLeft()
Returns the value of the left node property.final javafx.geometry.Side
Returns the value of the pinned side property.final javafx.scene.Node
getRight()
Returns the value of the right node property.final javafx.scene.Node
getTop()
Returns the value of the top node property.final double
Returns the value of the trigger distance property.protected final String
getUserAgentStylesheet
(Class<?> clazz, String fileName) A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.void
hide()
Hides the currently showing sidefinal javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the left node property.final javafx.beans.property.ObjectProperty
<javafx.geometry.Side> Returns the pinned side property.final javafx.beans.property.ObjectProperty
<javafx.scene.Node> Returns the value of the right node property.final void
setAnimationDelay
(javafx.util.Duration duration) Set the animation delayfinal void
setAnimationDuration
(javafx.util.Duration duration) Set the animation delayfinal void
setBottom
(javafx.scene.Node bottom) Sets the value of the bottom node property.final void
setContent
(javafx.scene.Node content) Sets the value of the content node property.final void
setLeft
(javafx.scene.Node left) Sets the value of the left node property.final void
setPinnedSide
(javafx.geometry.Side side) Sets the value of the pinned side property.final void
setRight
(javafx.scene.Node right) Sets the value of the right node property.final void
setTop
(javafx.scene.Node top) Sets the value of the top node property.final void
setTriggerDistance
(double distance) Set the value of the trigger distance property.void
show
(javafx.geometry.Side side) Shows a specific sidefinal javafx.beans.property.ObjectProperty
<javafx.scene.Node> The property used to store a reference to the node shown at the top side of the pane.final javafx.beans.property.DoubleProperty
The property that stores the distance to the pane's edges that will trigger the appearance of the hidden side nodes.
Setting the property to zero or a negative value will disable this functionality, so a hidden side can only be made visible withsetPinnedSide(Side)
.Methods inherited from class javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Methods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
Methods inherited from class javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
triggerDistance
public final javafx.beans.property.DoubleProperty triggerDistancePropertyThe property that stores the distance to the pane's edges that will trigger the appearance of the hidden side nodes.
Setting the property to zero or a negative value will disable this functionality, so a hidden side can only be made visible withsetPinnedSide(Side)
.- See Also:
-
content
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> contentPropertyThe property that is used to store a reference to the content node. The content node will fill the entire width and height of the pane.- See Also:
-
top
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> topPropertyThe property used to store a reference to the node shown at the top side of the pane.- See Also:
-
right
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> rightPropertyReturns the value of the right node property.- See Also:
-
bottom
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> bottomPropertyReturns the value of the bottom node property.- See Also:
-
left
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> leftPropertyReturns the value of the left node property.- See Also:
-
pinnedSide
public final javafx.beans.property.ObjectProperty<javafx.geometry.Side> pinnedSidePropertyReturns the pinned side property. The value of this property determines if one of the four hidden sides stays visible all the time.- See Also:
-
animationDelay
public final javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDelayPropertyReturns the animation delay property. The value of this property determines the delay before the hidden side slide in / slide out animation starts to play.- See Also:
-
animationDuration
public final javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationPropertyReturns the animation duration property. The value of this property determines the fade in time for a hidden side to become visible.- See Also:
-
-
Constructor Details
-
HiddenSidesPane
public HiddenSidesPane(javafx.scene.Node content, javafx.scene.Node top, javafx.scene.Node right, javafx.scene.Node bottom, javafx.scene.Node left) Constructs a new pane with the given content node and the four side nodes. Each one of the side nodes may be null.- Parameters:
content
- the primary node that will fill the entire width and height of the panetop
- the hidden node on the top sideright
- the hidden node on the right sidebottom
- the hidden node on the bottom sideleft
- the hidden node on the left side
-
HiddenSidesPane
public HiddenSidesPane()Constructs a new pane with no content and no side nodes.
-
-
Method Details
-
createDefaultSkin
protected javafx.scene.control.Skin<?> createDefaultSkin()- Overrides:
createDefaultSkin
in classjavafx.scene.control.Control
-
triggerDistanceProperty
public final javafx.beans.property.DoubleProperty triggerDistanceProperty()The property that stores the distance to the pane's edges that will trigger the appearance of the hidden side nodes.
Setting the property to zero or a negative value will disable this functionality, so a hidden side can only be made visible withsetPinnedSide(Side)
.- Returns:
- the trigger distance property
- See Also:
-
getTriggerDistance
public final double getTriggerDistance()Returns the value of the trigger distance property.- Returns:
- the trigger distance property value
-
setTriggerDistance
public final void setTriggerDistance(double distance) Set the value of the trigger distance property.
Setting the property to zero or a negative value will disable this functionality, so a hidden side can only be made visible withsetPinnedSide(Side)
.- Parameters:
distance
- the new value for the trigger distance property
-
contentProperty
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> contentProperty()The property that is used to store a reference to the content node. The content node will fill the entire width and height of the pane.- Returns:
- the content node property
- See Also:
-
getContent
public final javafx.scene.Node getContent()Returns the value of the content node property.- Returns:
- the content node property value
-
setContent
public final void setContent(javafx.scene.Node content) Sets the value of the content node property.- Parameters:
content
- the new content node
-
topProperty
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> topProperty()The property used to store a reference to the node shown at the top side of the pane.- Returns:
- the hidden node at the top side of the pane
- See Also:
-
getTop
public final javafx.scene.Node getTop()Returns the value of the top node property.- Returns:
- the top node property value
-
setTop
public final void setTop(javafx.scene.Node top) Sets the value of the top node property.- Parameters:
top
- the top node value
-
rightProperty
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> rightProperty()Returns the value of the right node property.- Returns:
- the right node property value
-
getRight
public final javafx.scene.Node getRight()Returns the value of the right node property.- Returns:
- the right node property value
-
setRight
public final void setRight(javafx.scene.Node right) Sets the value of the right node property.- Parameters:
right
- the right node value
-
bottomProperty
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> bottomProperty()Returns the value of the bottom node property.- Returns:
- the bottom node property value
-
getBottom
public final javafx.scene.Node getBottom()Returns the value of the bottom node property.- Returns:
- the bottom node property value
-
setBottom
public final void setBottom(javafx.scene.Node bottom) Sets the value of the bottom node property.- Parameters:
bottom
- the bottom node value
-
leftProperty
public final javafx.beans.property.ObjectProperty<javafx.scene.Node> leftProperty()Returns the value of the left node property.- Returns:
- the left node property value
-
getLeft
public final javafx.scene.Node getLeft()Returns the value of the left node property.- Returns:
- the left node property value
-
setLeft
public final void setLeft(javafx.scene.Node left) Sets the value of the left node property.- Parameters:
left
- the left node value
-
pinnedSideProperty
public final javafx.beans.property.ObjectProperty<javafx.geometry.Side> pinnedSideProperty()Returns the pinned side property. The value of this property determines if one of the four hidden sides stays visible all the time.- Returns:
- the pinned side property
- See Also:
-
getPinnedSide
public final javafx.geometry.Side getPinnedSide()Returns the value of the pinned side property.- Returns:
- the pinned side property value
-
setPinnedSide
public final void setPinnedSide(javafx.geometry.Side side) Sets the value of the pinned side property.- Parameters:
side
- the new pinned side value
-
animationDelayProperty
public final javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDelayProperty()Returns the animation delay property. The value of this property determines the delay before the hidden side slide in / slide out animation starts to play.- Returns:
- animation delay property
- See Also:
-
getAnimationDelay
public final javafx.util.Duration getAnimationDelay()Returns the animation delay- Returns:
- animation delay
-
setAnimationDelay
public final void setAnimationDelay(javafx.util.Duration duration) Set the animation delay- Parameters:
duration
- slide in animation delay
-
animationDurationProperty
public final javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationProperty()Returns the animation duration property. The value of this property determines the fade in time for a hidden side to become visible.- Returns:
- animation delay property
- See Also:
-
getAnimationDuration
public final javafx.util.Duration getAnimationDuration()Returns the animation delay- Returns:
- animation delay
-
setAnimationDuration
public final void setAnimationDuration(javafx.util.Duration duration) Set the animation delay- Parameters:
duration
- animation duration
-
show
public void show(javafx.geometry.Side side) Shows a specific side- Parameters:
side
- the side to show
-
hide
public void hide()Hides the currently showing side -
getUserAgentStylesheet
A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once. Caches the external form of the resource.- Parameters:
clazz
- the class used for the resource lookupfileName
- the name of the user agent stylesheet- Returns:
- the external form of the user agent stylesheet (the path)
-