Class BreadCrumbBar<T>

  • All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

    public class BreadCrumbBar<T>
    extends javafx.scene.control.Control
    Represents a bread crumb bar. This control is useful to visualize and navigate a hierarchical path structure, such as file systems.

    Shown below is a screenshot of the BreadCrumbBar control:

    Screenshot of BreadCrumbBar
    • 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
      BreadCrumbBar()
      Creates an empty bread crumb bar
      BreadCrumbBar​(javafx.scene.control.TreeItem<T> selectedCrumb)
      Creates a bread crumb bar with the given TreeItem as the currently selected crumb.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.BooleanProperty autoNavigationEnabledProperty()
      Enable or disable auto navigation (default is enabled).
      static <T> javafx.scene.control.TreeItem<T> buildTreeModel​(T... crumbs)
      Construct a tree model from the flat list which then can be set as selectedCrumb node to be shown
      protected javafx.scene.control.Skin<?> createDefaultSkin()
      javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button>> crumbFactoryProperty()
      Return an ObjectProperty of the CrumbFactory.
      javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button> getCrumbFactory()
      Returns the cell factory that will be used to create BreadCrumbBar.BreadCrumbButton instances
      javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>> getOnCrumbAction()
      Return the EventHandler currently used when a user selects a crumb.
      javafx.scene.control.TreeItem<T> getSelectedCrumb()
      Get the current target path
      String getUserAgentStylesheet()
      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.
      boolean isAutoNavigationEnabled()
      Return whether auto-navigation is enabled.
      javafx.beans.property.ObjectProperty<javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>>> onCrumbActionProperty()  
      javafx.beans.property.ObjectProperty<javafx.scene.control.TreeItem<T>> selectedCrumbProperty()
      Represents the bottom-most path node (the node on the most-right side in terms of the bread crumb bar).
      void setAutoNavigationEnabled​(boolean enabled)
      Enable or disable auto navigation (default is enabled).
      void setCrumbFactory​(javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button> value)
      Sets the crumb factory to create (custom) BreadCrumbBar.BreadCrumbButton instances.
      void setOnCrumbAction​(javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>> value)
      Set a new EventHandler for when a user selects a crumb.
      void setSelectedCrumb​(javafx.scene.control.TreeItem<T> selectedCrumb)
      Select one node in the BreadCrumbBar for being the bottom-most path node.
      • 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, 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

      • BreadCrumbBar

        public BreadCrumbBar()
        Creates an empty bread crumb bar
      • BreadCrumbBar

        public BreadCrumbBar​(javafx.scene.control.TreeItem<T> selectedCrumb)
        Creates a bread crumb bar with the given TreeItem as the currently selected crumb.
    • Method Detail

      • buildTreeModel

        public static <T> javafx.scene.control.TreeItem<T> buildTreeModel​(T... crumbs)
        Construct a tree model from the flat list which then can be set as selectedCrumb node to be shown
        Parameters:
        crumbs -
      • selectedCrumbProperty

        public final javafx.beans.property.ObjectProperty<javafx.scene.control.TreeItem<T>> selectedCrumbProperty()
        Represents the bottom-most path node (the node on the most-right side in terms of the bread crumb bar). The full path is then being constructed using getParent() of the tree-items.

        Consider the following hierarchy: [Root] > [Folder] > [SubFolder] > [myfile.txt] To show the above bread crumb bar, you have to set the [myfile.txt] tree-node as selected crumb.

      • getSelectedCrumb

        public final javafx.scene.control.TreeItem<T> getSelectedCrumb()
        Get the current target path
      • setSelectedCrumb

        public final void setSelectedCrumb​(javafx.scene.control.TreeItem<T> selectedCrumb)
        Select one node in the BreadCrumbBar for being the bottom-most path node.
        Parameters:
        selectedCrumb -
      • autoNavigationEnabledProperty

        public final javafx.beans.property.BooleanProperty autoNavigationEnabledProperty()
        Enable or disable auto navigation (default is enabled). If auto navigation is enabled, it will automatically navigate to the crumb which was clicked by the user.
        Returns:
        a BooleanProperty
      • isAutoNavigationEnabled

        public final boolean isAutoNavigationEnabled()
        Return whether auto-navigation is enabled.
        Returns:
        whether auto-navigation is enabled.
      • setAutoNavigationEnabled

        public final void setAutoNavigationEnabled​(boolean enabled)
        Enable or disable auto navigation (default is enabled). If auto navigation is enabled, it will automatically navigate to the crumb which was clicked by the user.
        Parameters:
        enabled -
      • crumbFactoryProperty

        public final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button>> crumbFactoryProperty()
        Return an ObjectProperty of the CrumbFactory.
        Returns:
        an ObjectProperty of the CrumbFactory.
      • setCrumbFactory

        public final void setCrumbFactory​(javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button> value)
        Sets the crumb factory to create (custom) BreadCrumbBar.BreadCrumbButton instances. null is not allowed and will result in a fall back to the default factory.
        Parameters:
        value -
      • getCrumbFactory

        public final javafx.util.Callback<javafx.scene.control.TreeItem<T>,​javafx.scene.control.Button> getCrumbFactory()
        Returns the cell factory that will be used to create BreadCrumbBar.BreadCrumbButton instances
      • onCrumbActionProperty

        public final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>>> onCrumbActionProperty()
        Returns:
        an ObjectProperty representing the crumbAction EventHandler being used.
      • setOnCrumbAction

        public final void setOnCrumbAction​(javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>> value)
        Set a new EventHandler for when a user selects a crumb.
        Parameters:
        value -
      • getOnCrumbAction

        public final javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>> getOnCrumbAction()
        Return the EventHandler currently used when a user selects a crumb.
        Returns:
        the EventHandler currently used when a user selects a crumb.
      • createDefaultSkin

        protected javafx.scene.control.Skin<?> createDefaultSkin()
        Overrides:
        createDefaultSkin in class javafx.scene.control.Control
      • getUserAgentStylesheet

        public String getUserAgentStylesheet()
        Overrides:
        getUserAgentStylesheet in class javafx.scene.layout.Region
      • 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)