Class XalTreeView<T>
- All Implemented Interfaces:
javafx.css.Styleable,javafx.event.EventTarget
- Direct Known Subclasses:
AcceleratorTreeView,ComboSequencesTreeView,PowerSuppliesTreeView
It implements methods to add, remove, find, and select elements in the TreeView.
The title bar can be used to add a title referring to the TreeView, and buttons for functions like filters.
The bottom bar is intended for buttons to add/remove elements.
The widget can be used independently or coupled to the application document.
In the first case, use the update
method to set the accelerator that will be used to get the data.
For integration with the application document, use the
setDocument method. It will
update the tree every time either the accelerator is changed.
One can also define listener for single and double click events.
- Author:
- Juan F. Esteban Müller <JuanF.EstebanMuller@ess.eu>
-
Property Summary
PropertiesTypePropertyDescriptionjavafx.beans.property.ReadOnlyObjectProperty<javafx.scene.control.TreeItem<T>>Returns the selected item property of the TreeView.Properties inherited from class javafx.scene.layout.VBox
alignment, fillWidth, spacingProperties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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, focusVisible, focusWithin, 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
FieldsModifier and TypeFieldDescriptionprotected final javafx.scene.layout.HBoxprotected booleanprotected booleanprotected final javafx.scene.layout.HBoxprotected final javafx.scene.layout.HBoxprotected final javafx.scene.control.TreeViewFields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDoubleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Adds a new double-click event handler to the TreeView TreeCell objects.abstract javafx.scene.control.TreeItem<T>addElement(T node) This method allows to add a node in the TreeView after adding it to the accelerator, avoiding to reload the full treeview.protected javafx.scene.control.TreeItem<T>addElement(T node, javafx.scene.control.TreeItem<T> parentItem) protected voidvoidaddSingleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Adds a new single-click event handler to the TreeView TreeCell objects.voidClear the selection.voidDisables the default click event handler in the TreeView.protected voiddoubleClickEventHandler(javafx.scene.input.MouseEvent event) voidEnables the default click event handler in the TreeView.javafx.scene.control.TreeItem<T>findElement(String nodeId) Find the TreeItem element with the following node ID.protected javafx.scene.control.TreeItem<T>findElement(javafx.scene.control.TreeItem<T> parentNode, String nodeId) javafx.scene.layout.HBoxGet the HBox object that is defined below the TreeView.protected javafx.scene.image.ImageViewprotected abstract StringThis method should be implemented by subclasses to get the node ID corresponding to a TreeItem object.javafx.scene.control.TreeItem<T>Returns the TreeItem object corresponding to the selected item.Returns the object represented by the selected TreeItem.Returns the node ID of the selected item.javafx.scene.control.MultipleSelectionModel<javafx.scene.control.TreeItem<T>>javafx.scene.layout.HBoxGet the HBox object that is defined above the TreeView.javafx.scene.control.TreeViewprotected javafx.scene.control.TreeItem<T>voidrefresh()voidremoveDoubleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Removes a double-click event handler from the TreeView TreeCell objects.voidremoveSingleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Removes a single-click event handler from the TreeView TreeCell objects.javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.control.TreeItem<T>>Returns the selected item property of the TreeView.booleanselectElement(String nodeId) Select the node with the given node ID, if found on the TreeView.protected booleanselectElement(javafx.scene.control.TreeItem<T> parentNode, String nodeId) abstract voidsetDocument(XalFxDocument document) This method uses the accelerator property to update the tree every time the accelerator is changed, and vice versa.protected voidsingleClickEventHandler(javafx.scene.input.MouseEvent event) abstract voidupdate(Accelerator accelerator) The method should repopulate the TreeView using the data from the Accelerator object passed as an argument.Methods inherited from class javafx.scene.layout.VBox
alignmentProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, fillWidthProperty, getAlignment, getClassCssMetaData, getContentBias, getCssMetaData, getMargin, getSpacing, getVgrow, isFillWidth, layoutChildren, requestLayout, setAlignment, setFillWidth, setMargin, setSpacing, setVgrow, spacingPropertyMethods inherited from class javafx.scene.layout.Pane
getChildrenMethods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, 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, widthPropertyMethods inherited from class javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, isFocusVisible, isFocusWithin, 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, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
selectedItem
public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.control.TreeItem<T>> selectedItemPropertyReturns the selected item property of the TreeView.- See Also:
-
-
Field Details
-
treeView
protected final javafx.scene.control.TreeView treeView -
titlebar
protected final javafx.scene.layout.HBox titlebar -
titlebox
protected final javafx.scene.layout.HBox titlebox -
bottombar
protected final javafx.scene.layout.HBox bottombar -
enabledDefaultSingleClickEventHandler
protected boolean enabledDefaultSingleClickEventHandler -
enabledDefaultDoubleClickEventHandler
protected boolean enabledDefaultDoubleClickEventHandler
-
-
Constructor Details
-
XalTreeView
public XalTreeView()
-
-
Method Details
-
getTreeView
public javafx.scene.control.TreeView getTreeView() -
getTitlebar
public javafx.scene.layout.HBox getTitlebar()Get the HBox object that is defined above the TreeView.- Returns:
-
getBottombar
public javafx.scene.layout.HBox getBottombar()Get the HBox object that is defined below the TreeView.- Returns:
-
addSingleClickEventHandler
public void addSingleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Adds a new single-click event handler to the TreeView TreeCell objects.- Parameters:
eventHandler-
-
removeSingleClickEventHandler
public void removeSingleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Removes a single-click event handler from the TreeView TreeCell objects.- Parameters:
eventHandler-
-
addDoubleClickEventHandler
public void addDoubleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Adds a new double-click event handler to the TreeView TreeCell objects.- Parameters:
eventHandler-
-
removeDoubleClickEventHandler
public void removeDoubleClickEventHandler(javafx.event.EventHandler<javafx.scene.input.MouseEvent> eventHandler) Removes a double-click event handler from the TreeView TreeCell objects.- Parameters:
eventHandler-
-
enableDefaultClickEventHandler
public void enableDefaultClickEventHandler()Enables the default click event handler in the TreeView. The default click event handler must be initialized by the subclass constructor. -
disableDefaultClickEventHandler
public void disableDefaultClickEventHandler()Disables the default click event handler in the TreeView. -
singleClickEventHandler
protected void singleClickEventHandler(javafx.scene.input.MouseEvent event) -
doubleClickEventHandler
protected void doubleClickEventHandler(javafx.scene.input.MouseEvent event) -
selectedItemProperty
public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.control.TreeItem<T>> selectedItemProperty()Returns the selected item property of the TreeView.- See Also:
-
setDocument
This method uses the accelerator property to update the tree every time the accelerator is changed, and vice versa.Use this method for full integration with the document. If the TreeView is expected to be decoupled from the document, then use the update method.
-
update
The method should repopulate the TreeView using the data from the Accelerator object passed as an argument.- Parameters:
accelerator-
-
refresh
public void refresh() -
addElement
This method allows to add a node in the TreeView after adding it to the accelerator, avoiding to reload the full treeview.- Parameters:
node-- Returns:
-
addElement
-
newItem
-
addItem
-
getIcon
-
getSelectedItem
Returns the TreeItem object corresponding to the selected item.- Returns:
- The TreeItem or null if none selected.
-
getSelectionModel
public javafx.scene.control.MultipleSelectionModel<javafx.scene.control.TreeItem<T>> getSelectionModel() -
getSelectedNode
Returns the object represented by the selected TreeItem.- Returns:
- The object or null if none selected.
-
getSelectedNodeId
Returns the node ID of the selected item.- Returns:
- The node ID or null if none selected.
-
getId
This method should be implemented by subclasses to get the node ID corresponding to a TreeItem object.- Parameters:
selectedItem-- Returns:
-
clearSelection
public void clearSelection()Clear the selection. -
selectElement
Select the node with the given node ID, if found on the TreeView. It automatically expand all parent node and scroll to make the selected node visible, if needed.If called right after the TreeView is updated, make sure it is called using Platform.runLater() to make sure it is executed after the TreeView is updated.
- Parameters:
nodeId- The element's node ID.- Returns:
- True if the element has been found.
-
selectElement
-
findElement
Find the TreeItem element with the following node ID.- Parameters:
nodeId- The element's node ID.- Returns:
- TreeItem of the element with the given node ID or null if not found.
-
findElement
-