Class BreadCrumbBar<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.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
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.BooleanProperty
    Enable or disable auto navigation (default is enabled).
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TreeItem<T>,javafx.scene.control.Button>>
    Return an ObjectProperty of the CrumbFactory.
    final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>>>
     
    final javafx.beans.property.ObjectProperty<javafx.scene.control.TreeItem<T>>
    Represents the bottom-most path node (the node on the most-right side in terms of the bread crumb bar).

    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
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Represents an Event which is fired when a bread crumb was activated.
    static class 
    Represents a BreadCrumb Button
  • 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
    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

    Modifier and Type
    Method
    Description
    final javafx.beans.property.BooleanProperty
    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<?>
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TreeItem<T>,javafx.scene.control.Button>>
    Return an ObjectProperty of the CrumbFactory.
    final javafx.util.Callback<javafx.scene.control.TreeItem<T>,javafx.scene.control.Button>
    Returns the cell factory that will be used to create BreadCrumbBar.BreadCrumbButton instances
    final javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>>
    Return the EventHandler currently used when a user selects a crumb.
    final javafx.scene.control.TreeItem<T>
    Get the current target path
    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.
    final boolean
    Return whether auto-navigation is enabled.
    final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>>>
     
    final javafx.beans.property.ObjectProperty<javafx.scene.control.TreeItem<T>>
    Represents the bottom-most path node (the node on the most-right side in terms of the bread crumb bar).
    final void
    setAutoNavigationEnabled(boolean enabled)
    Enable or disable auto navigation (default is enabled).
    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.
    final void
    setOnCrumbAction(javafx.event.EventHandler<BreadCrumbBar.BreadCrumbActionEvent<T>> value)
    Set a new EventHandler for when a user selects a crumb.
    final 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 class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

  • Constructor Details

    • 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 Details

    • 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.

      Returns:
      the selectedCrumb property
      See Also:
    • 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
      See Also:
    • 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.
      See Also:
    • 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.
      See Also:
    • 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)