Class 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:
    Screenshot of HiddenSidesPane

    Code Sample

     HiddenSidesPane pane = new HiddenSidesPane();
     pane.setContent(new TableView());
     pane.setRight(new ListView());
     
    • 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

      Constructors 
      Constructor Description
      HiddenSidesPane()
      Constructs 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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDelayProperty()
      Returns the animation delay property.
      javafx.beans.property.ObjectProperty<javafx.util.Duration> animationDurationProperty()
      Returns the animation duration property.
      javafx.beans.property.ObjectProperty<javafx.scene.Node> bottomProperty()
      Returns the value of the bottom node property.
      javafx.beans.property.ObjectProperty<javafx.scene.Node> contentProperty()
      The property that is used to store a reference to the content node.
      protected javafx.scene.control.Skin<?> createDefaultSkin()  
      javafx.util.Duration getAnimationDelay()
      Returns the animation delay
      javafx.util.Duration getAnimationDuration()
      Returns the animation delay
      javafx.scene.Node getBottom()
      Returns the value of the bottom node property.
      javafx.scene.Node getContent()
      Returns the value of the content node property.
      javafx.scene.Node getLeft()
      Returns the value of the left node property.
      javafx.geometry.Side getPinnedSide()
      Returns the value of the pinned side property.
      javafx.scene.Node getRight()
      Returns the value of the right node property.
      javafx.scene.Node getTop()
      Returns the value of the top node property.
      double getTriggerDistance()
      Returns the value of the trigger distance property.
      protected 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 side
      javafx.beans.property.ObjectProperty<javafx.scene.Node> leftProperty()
      Returns the value of the left node property.
      javafx.beans.property.ObjectProperty<javafx.geometry.Side> pinnedSideProperty()
      Returns the pinned side property.
      javafx.beans.property.ObjectProperty<javafx.scene.Node> rightProperty()
      Returns the value of the right node property.
      void setAnimationDelay​(javafx.util.Duration duration)
      Set the animation delay
      void setAnimationDuration​(javafx.util.Duration duration)
      Set the animation delay
      void setBottom​(javafx.scene.Node bottom)
      Sets the value of the bottom node property.
      void setContent​(javafx.scene.Node content)
      Sets the value of the content node property.
      void setLeft​(javafx.scene.Node left)
      Sets the value of the left node property.
      void setPinnedSide​(javafx.geometry.Side side)
      Sets the value of the pinned side property.
      void setRight​(javafx.scene.Node right)
      Sets the value of the right node property.
      void setTop​(javafx.scene.Node top)
      Sets the value of the top node property.
      void setTriggerDistance​(double distance)
      Set the value of the trigger distance property.
      void show​(javafx.geometry.Side side)
      Shows a specific side
      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.
      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 with setPinnedSide(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 interface javafx.css.Styleable

        getStyleableNode
    • Constructor Detail

      • 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 pane
        top - the hidden node on the top side
        right - the hidden node on the right side
        bottom - the hidden node on the bottom side
        left - the hidden node on the left side
      • HiddenSidesPane

        public HiddenSidesPane()
        Constructs a new pane with no content and no side nodes.
    • Method Detail

      • createDefaultSkin

        protected javafx.scene.control.Skin<?> createDefaultSkin()
        Overrides:
        createDefaultSkin in class javafx.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 with setPinnedSide(Side).
        Returns:
        the trigger distance property
      • 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 with setPinnedSide(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
      • 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
      • 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
      • 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
      • 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
      • 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

        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. Caches the external form of the resource.
        Parameters:
        clazz - the class used for the resource lookup
        fileName - the name of the user agent stylesheet
        Returns:
        the external form of the user agent stylesheet (the path)