- java.lang.Object
-
- com.iamsoft.util.ui.javafx.TreeItemUtil
-
public final class TreeItemUtil extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TreeItemUtil.StreamOrder
Order of tree traversal.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>>
ancestorObservableList(javafx.scene.control.TreeItem<T> pTreeItem)
ObservableList starting with specified node and ending at root.static <T> boolean
childrenLoaded(javafx.scene.control.TreeItem<T> pItem)
If the specified item is a LazyTreeItem, determines whether its child elements are loaded.static <T> javafx.beans.property.ReadOnlyObjectProperty<Integer>
descendantCountProperty(javafx.scene.control.TreeItem<T> pTreeItem)
Property providing the count of argument node and all descendants.static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>>
descendantObservableList(javafx.scene.control.TreeItem<T> pTreeItem)
static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>>
descendantObservableList(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pStreamOrder)
List containing argument node and all descendants.static int
getDepth(javafx.scene.control.TreeItem<?> pItem)
static <T> String
getPath(javafx.scene.control.TreeItem<T> pItem, Function<T,String> pToStringFunction)
Returns the path of the specified item, excluding root.static <T> javafx.scene.control.TreeItem<T>
getRoot(javafx.scene.control.TreeItem<T> pItem)
static <T> Map<javafx.scene.control.TreeItem<T>,List<javafx.scene.control.TreeItem<T>>>
groupByParent(Collection<javafx.scene.control.TreeItem<T>> pTreeItems)
Group into lists of siblings.static boolean
isVisible(javafx.scene.control.TreeItem<?> pTreeItem)
Determines whether all ancestors are expanded.static <T> Iterator<javafx.scene.control.TreeItem<T>>
parentIterator(javafx.scene.control.TreeItem<T> pTreeItem)
Iterator from argument tree item up to and including root tree item.static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>>
peekChildren(javafx.scene.control.TreeItem<T> pItem)
If the specified item is a LazyTreeItem, this method provides access to children without triggering child elements loading in case they are not loaded, yet.static <T> Stream<javafx.scene.control.TreeItem<T>>
peekStream(javafx.scene.control.TreeItem<T> pItem)
Stream containing specified tree item and all of its already loaded descendants.static <T> Stream<javafx.scene.control.TreeItem<T>>
peekStream(javafx.scene.control.TreeItem<T> pItem, Predicate<javafx.scene.control.TreeItem<T>> pProcessDescendants)
Stream containing specified tree item and all of its already loaded descendants.static <T> void
setupTreeItemSelection(javafx.scene.control.TreeItem<T> pRoot, Function<javafx.scene.control.TreeItem<T>,javafx.beans.property.Property<Boolean>> pSelectionSupplier, boolean pLazySelection)
static <T> javafx.scene.control.TreeItem<T>
snapshot(javafx.scene.control.TreeItem<T> pTreeItem)
Make copy of tree item with identical hierarchy.static <T> Stream<javafx.scene.control.TreeItem<T>>
visitorStream(javafx.scene.control.TreeItem<T> pTreeItem)
Stream containing specified tree item and all of its descendants.static <T> Stream<javafx.scene.control.TreeItem<T>>
visitorStream(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pOrder)
Stream containing specified tree item and all of its descendants.static <T> Stream<javafx.scene.control.TreeItem<T>>
visitorStream(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pOrder, Predicate<javafx.scene.control.TreeItem<T>> pProcessDescendants)
Stream containing specified tree item and all of its descendants.
-
-
-
Method Detail
-
getDepth
public static int getDepth(javafx.scene.control.TreeItem<?> pItem)
-
getRoot
public static <T> javafx.scene.control.TreeItem<T> getRoot(javafx.scene.control.TreeItem<T> pItem)
-
visitorStream
public static <T> Stream<javafx.scene.control.TreeItem<T>> visitorStream(javafx.scene.control.TreeItem<T> pTreeItem)
Stream containing specified tree item and all of its descendants. Depth-first visitor in TreeItemUtil.StreamOrder.ABDC order.
-
visitorStream
public static <T> Stream<javafx.scene.control.TreeItem<T>> visitorStream(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pOrder)
Stream containing specified tree item and all of its descendants. Depth-first visitor.
-
visitorStream
public static <T> Stream<javafx.scene.control.TreeItem<T>> visitorStream(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pOrder, Predicate<javafx.scene.control.TreeItem<T>> pProcessDescendants)
Stream containing specified tree item and all of its descendants. Depth-first visitor.- Parameters:
pProcessDescendants
- Specifies whether to process the descendants of a tree item.
-
ancestorObservableList
public static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>> ancestorObservableList(javafx.scene.control.TreeItem<T> pTreeItem)
ObservableList starting with specified node and ending at root.
-
descendantObservableList
public static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>> descendantObservableList(javafx.scene.control.TreeItem<T> pTreeItem)
-
descendantObservableList
public static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>> descendantObservableList(javafx.scene.control.TreeItem<T> pTreeItem, TreeItemUtil.StreamOrder pStreamOrder)
List containing argument node and all descendants. Automatically updated when children are added/removed. List is in TreeItemUtil.StreamOrder.ABDC order.- See Also:
visitorStream(TreeItem)
-
descendantCountProperty
public static <T> javafx.beans.property.ReadOnlyObjectProperty<Integer> descendantCountProperty(javafx.scene.control.TreeItem<T> pTreeItem)
Property providing the count of argument node and all descendants. Count changes are delayed to improve performance and to prevent too frequent updates.
-
parentIterator
public static <T> Iterator<javafx.scene.control.TreeItem<T>> parentIterator(javafx.scene.control.TreeItem<T> pTreeItem)
Iterator from argument tree item up to and including root tree item.- Parameters:
pTreeItem
- First item returned by iterator.- See Also:
TreeItem.getParent()
-
isVisible
public static boolean isVisible(javafx.scene.control.TreeItem<?> pTreeItem)
Determines whether all ancestors are expanded.- Returns:
true
if all ancestors are expanded.
-
getPath
public static <T> String getPath(javafx.scene.control.TreeItem<T> pItem, Function<T,String> pToStringFunction)
Returns the path of the specified item, excluding root.
-
setupTreeItemSelection
public static <T> void setupTreeItemSelection(javafx.scene.control.TreeItem<T> pRoot, Function<javafx.scene.control.TreeItem<T>,javafx.beans.property.Property<Boolean>> pSelectionSupplier, boolean pLazySelection)
-
peekStream
public static <T> Stream<javafx.scene.control.TreeItem<T>> peekStream(javafx.scene.control.TreeItem<T> pItem)
Stream containing specified tree item and all of its already loaded descendants.
-
peekStream
public static <T> Stream<javafx.scene.control.TreeItem<T>> peekStream(javafx.scene.control.TreeItem<T> pItem, Predicate<javafx.scene.control.TreeItem<T>> pProcessDescendants)
Stream containing specified tree item and all of its already loaded descendants.- Parameters:
pProcessDescendants
- Specifies whether to process the descendants of a tree item.
-
childrenLoaded
public static <T> boolean childrenLoaded(javafx.scene.control.TreeItem<T> pItem)
If the specified item is a LazyTreeItem, determines whether its child elements are loaded. Otherwise,true
is returned.- See Also:
LazyTreeItem.peekChildren()
-
peekChildren
public static <T> javafx.collections.ObservableList<javafx.scene.control.TreeItem<T>> peekChildren(javafx.scene.control.TreeItem<T> pItem)
If the specified item is a LazyTreeItem, this method provides access to children without triggering child elements loading in case they are not loaded, yet.- See Also:
LazyTreeItem.peekChildren()
-
groupByParent
public static <T> Map<javafx.scene.control.TreeItem<T>,List<javafx.scene.control.TreeItem<T>>> groupByParent(Collection<javafx.scene.control.TreeItem<T>> pTreeItems)
Group into lists of siblings.
-
snapshot
public static <T> javafx.scene.control.TreeItem<T> snapshot(javafx.scene.control.TreeItem<T> pTreeItem)
Make copy of tree item with identical hierarchy.
-
-