Interface HasHierarchicalDataProvider<T>
- Type Parameters:
T
- the item data type
- All Superinterfaces:
Serializable
- Since:
- 1.2
- Author:
- Vaadin Ltd
-
Method Summary
Modifier and TypeMethodDescriptionGets the backingTreeData
instance of the data provider, if the data provider is aTreeDataProvider
.void
setDataProvider
(HierarchicalDataProvider<T, ?> hierarchicalDataProvider) Sets the hierarchical data provider for this listing.default void
setItems
(Collection<T> rootItems, ValueProvider<T, Collection<T>> childItemProvider) Sets the root data items of this component provided as a collection and recursively populates them with child items with the given value provider.default void
Sets the root data items of this component provided as a stream and recursively populates them with child items with the given value provider.default void
setTreeData
(TreeData<T> treeData) Sets a newTreeDataProvider
wrapping the givenTreeData
.
-
Method Details
-
getDataProvider
HierarchicalDataProvider<T,SerializablePredicate<T>> getDataProvider() -
setTreeData
Sets a newTreeDataProvider
wrapping the givenTreeData
.- Parameters:
treeData
- the tree data to set
-
getTreeData
Gets the backingTreeData
instance of the data provider, if the data provider is aTreeDataProvider
.- Returns:
- the TreeData instance used by the data provider
- Throws:
IllegalStateException
- if the type of the data provider is notTreeDataProvider
-
setItems
Sets the root data items of this component provided as a collection and recursively populates them with child items with the given value provider.The provided items are wrapped into a
TreeDataProvider
backed by a flatTreeData
structure. The data provider instance is used as a parameter for thesetDataProvider(HierarchicalDataProvider)
method. It means that the items collection can be accessed later on viagetTreeData()
:Collection<Person> grandParents = getGrandParents(); HasHierarchicalDataProvider<Person> treeGrid = new TreeGrid<>(); treeGrid.setItems(grandParents, Person::getChildren); ... TreeData<Person> data = treeGrid.getTreeData();
The returned
TreeData
instance may be used as-is to add, remove or modify items in the hierarchy. These modifications to the object are not automatically reflected back to the TreeGrid. Items modified should be refreshed withDataProvider.refreshItem(Object)
and when adding or removing itemsDataProvider.refreshAll()
should be called.- Parameters:
rootItems
- the root items to display, notnull
childItemProvider
- the value provider used to recursively populate the given root items with child items, notnull
-
setItems
Sets the root data items of this component provided as a stream and recursively populates them with child items with the given value provider.The provided items are wrapped into a
TreeDataProvider
backed by a flatTreeData
structure. The data provider instance is used as a parameter for thesetDataProvider(HierarchicalDataProvider)
method. It means that the items collection can be accessed later on viagetTreeData()
:Stream<Person> grandParents = getGrandParents(); HasHierarchicalDataProvider<Person> treeGrid = new TreeGrid<>(); treeGrid.setItems(grandParents, Person::getChildren); ... TreeData<Person> data = treeGrid.getTreeData();
The returned
TreeData
instance may be used as-is to add, remove or modify items in the hierarchy. These modifications to the object are not automatically reflected back to the TreeGrid. Items modified should be refreshed withDataProvider.refreshItem(Object)
and when adding or removing itemsDataProvider.refreshAll()
should be called.- Parameters:
rootItems
- the root items to display, notnull
childItemProvider
- the value provider used to recursively populate the given root items with child items, notnull
-
setDataProvider
Sets the hierarchical data provider for this listing. The data provider provides the items and the hierarchy as needed.- Parameters:
hierarchicalDataProvider
- the hierarchical data provider to use, notnull
-