Class TreeTable<T>
- Type Parameters:
T
- the (super) type of the items in the grid
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier
,com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.grid.Grid<T>>
,com.vaadin.flow.component.DetachNotifier
,com.vaadin.flow.component.Focusable<com.vaadin.flow.component.grid.Grid<T>>
,com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.grid.Grid<T>>
,com.vaadin.flow.component.HasElement
,com.vaadin.flow.component.HasEnabled
,com.vaadin.flow.component.HasSize
,com.vaadin.flow.component.HasStyle
,com.vaadin.flow.component.HasTheme
,com.vaadin.flow.data.event.SortEvent.SortNotifier<com.vaadin.flow.component.grid.Grid<T>,
,com.vaadin.flow.component.grid.GridSortOrder<T>> com.vaadin.flow.data.provider.HasDataGenerators<T>
,com.vaadin.flow.data.provider.HasDataView<T,
,Void, com.vaadin.flow.component.grid.dataview.GridDataView<T>> com.vaadin.flow.data.provider.HasLazyDataView<T,
,Void, com.vaadin.flow.component.grid.dataview.GridLazyDataView<T>> com.vaadin.flow.data.provider.HasListDataView<T,
,com.vaadin.flow.component.grid.dataview.GridListDataView<T>> Serializable
,FluentAttachNotifier<VGrid<T>>
,FluentBlurNotifier<com.vaadin.flow.component.grid.Grid<T>,
,VGrid<T>> FluentComponent<VGrid<T>>
,FluentDetachNotifier<VGrid<T>>
,FluentFocusable<com.vaadin.flow.component.grid.Grid<T>,
,VGrid<T>> FluentFocusNotifier<com.vaadin.flow.component.grid.Grid<T>,
,VGrid<T>> FluentHasSize<VGrid<T>>
,FluentHasStyle<VGrid<T>>
,FluentHasTheme<VGrid<T>>
Non-goals: - workaround oddities of Grid itself
The API is a bit different from TreeGrid, as it is not possible
to provide the HiearchicalDataProvider. In the same way as with the
official TreeGrid, you can provide the root items and a method to
retrieve children for each item using setRootItems(List, SerializableFunction)
.
Alternatively, you can provide the data in lazy loading mode with HasLazyDataView.setItems(CallbackDataProvider.FetchCallback)
or HasLazyDataView.setItems(CallbackDataProvider.FetchCallback, CallbackDataProvider.CountCallback)
.
With these methods you will also need to define TreeTable.TreeTableModel
(or at least TreeTable.LeafModel
and TreeTable.LevelModel
separately) that
Grid uses to visualise the hierarchy. At least TreeTable.OpenModel
should be
instance specific! The fetch callbacks need to take the current expanded state
into account and return visible subtrees as defined by the TreeTable.OpenModel
.
Whether you were using lazy loading or in-memory data set,
you can override the TreeTable.OpenModel
that controls whether
the node is open or not. TreeGrid calls the setter
TreeTable.OpenModel.setOpen(Object, boolean)
when a node is
opened/closed, so you can persist that detail to your backend
if you wish to persist the state for longer than the current session.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
class
static interface
static interface
static class
static interface
static interface
Nested classes/interfaces inherited from class org.vaadin.firitin.components.grid.VGrid
VGrid.CellFormatter<T>, VGrid.RowStyler<T>, VGrid.VColumn<T>
Nested classes/interfaces inherited from class com.vaadin.flow.component.grid.Grid
com.vaadin.flow.component.grid.Grid.AbstractGridExtension<T extends Object>, com.vaadin.flow.component.grid.Grid.Column<T extends Object>, com.vaadin.flow.component.grid.Grid.DataCommunicatorBuilder<T extends Object,
U extends com.vaadin.flow.data.provider.ArrayUpdater>, com.vaadin.flow.component.grid.Grid.MultiSortPriority, com.vaadin.flow.component.grid.Grid.NestedNullBehavior, com.vaadin.flow.component.grid.Grid.SelectionMode, com.vaadin.flow.component.grid.Grid.UpdateQueue Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
com.vaadin.flow.component.BlurNotifier.BlurEvent<C extends com.vaadin.flow.component.Component>
Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
com.vaadin.flow.component.FocusNotifier.FocusEvent<C extends com.vaadin.flow.component.Component>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncom.vaadin.flow.component.grid.Grid.Column<T>
addHierarchyColumn
(com.vaadin.flow.function.SerializableFunction<T, String> valueProvider) com.vaadin.flow.component.grid.Grid.Column<T>
addHierarchyComponentColumn
(com.vaadin.flow.function.SerializableFunction<T, com.vaadin.flow.component.Component> valueProvider) void
allowUserToToggleOpenState
(boolean allow) com.vaadin.flow.component.grid.dataview.GridLazyDataView<T>
Deprecated.com.vaadin.flow.component.grid.dataview.GridDataView<T>
Deprecated.com.vaadin.flow.component.grid.dataview.GridDataView<T>
Deprecated.com.vaadin.flow.component.grid.dataview.GridListDataView<T>
Deprecated.com.vaadin.flow.component.grid.dataview.GridListDataView<T>
setItems
(Collection<T> items) Deprecated.com.vaadin.flow.component.grid.dataview.GridListDataView<T>
Deprecated.void
setLeafModel
(TreeTable.LeafModel<T> leafModel) void
setLevelModel
(TreeTable.LevelModel<T> levelModel) void
setOpenModel
(TreeTable.OpenModel<T> openModel) void
setRootItems
(List<T> rootItems, com.vaadin.flow.function.SerializableFunction<T, List<T>> childrenProvider) Set root items for the tree table.void
Sets the tree table model (a combination ofTreeTable.OpenModel
,TreeTable.LeafModel
andTreeTable.LevelModel
.Methods inherited from class org.vaadin.firitin.components.grid.VGrid
addColumn, addColumn, getDefaultColumnFactory, hideProperties, scrollToItem, setColumns, setDataProvider, withCellFormatter, withColumnSelector, withItems, withItems, withProperties, withRowStyler, withSelectionMode, withSelectionModel, withThemeVariants
Methods inherited from class com.vaadin.flow.component.grid.Grid
addCellFocusListener, addColumn, addColumn, addColumn, addColumn, addColumn, addColumnReorderListener, addColumnResizeListener, addColumns, addComponentColumn, addContextMenu, addDataGenerator, addDragEndListener, addDragStartListener, addDropListener, addFirstHeaderRow, addItemClickListener, addItemDoubleClickListener, addSelectionListener, addSortListener, addThemeVariants, addValueProvider, appendFooterRow, appendHeaderRow, asMultiSelect, asSingleSelect, compareMaybeComparables, configureBeanType, createColumn, createColumnId, createDefaultArrayUpdater, createEditor, createSortingComparator, deselect, deselectAll, getArrayUpdater, getBeanType, getClassNameGenerator, getColumnByKey, getColumnLayers, getColumnRendering, getColumns, getDataCommunicator, getDataProvider, getDefaultHeaderRow, getDragFilter, getDropFilter, getDropMode, getEditor, getFooterRows, getGenericDataView, getHeaderRows, getLazyDataView, getListDataView, getNestedNullBehavior, getPageSize, getPartNameGenerator, getPropertySet, getSelectedItems, getSelectionMode, getSelectionModel, getSelectionPreservationMode, getSortOrder, getUniqueKeyProperty, getUniqueKeyProvider, initConnector, insertColumnLayer, isAllRowsVisible, isColumnReorderingAllowed, isDetailsVisible, isDetailsVisibleOnClick, isMultiSort, isRowsDraggable, onAttach, onDataProviderChange, onDetach, onEnabledStateChanged, prependFooterRow, prependHeaderRow, recalculateColumnWidths, removeAllColumns, removeAllFooterRows, removeAllHeaderRows, removeColumn, removeColumnByKey, removeColumnLayer, removeColumns, removeFooterRow, removeHeaderRow, removeThemeVariants, scrollToEnd, scrollToIndex, scrollToStart, select, setAllRowsVisible, setClassNameGenerator, setColumnKey, setColumnOrder, setColumnOrder, setColumnRendering, setColumnReorderingAllowed, setDataProvider, setDefaultMultiSortPriority, setDetailsVisible, setDetailsVisibleOnClick, setDragDataGenerator, setDragFilter, setDropFilter, setDropMode, setItemDetailsRenderer, setMultiSort, setMultiSort, setMultiSort, setMultiSort, setNestedNullBehavior, setPageSize, setPartNameGenerator, setRowsDraggable, setSelectionDragDetails, setSelectionMode, setSelectionModel, setSelectionPreservationMode, setSortableColumns, setTooltipGenerator, setUniqueKeyProperty, setUniqueKeyProvider, sort, updateSelectionModeOnClient
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
Methods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListener
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentAttachNotifier
withAttachListener
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentBlurNotifier
withBlurListener
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentComponent
setId, setVisible, withId, withVisible
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentDetachNotifier
withDetachListener
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentFocusable
withTabIndex
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentFocusNotifier
withFocusListener
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasSize
withFullHeight, withFullWidth, withHeight, withMaxHeight, withMaxSize, withMaxWidth, withMinHeight, withMinSize, withMinWidth, withSize, withSizeFull, withSizeUndefined, withWidth
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasStyle
withAddedClassName, withClassName, withStyle
Methods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasTheme
withThemeNames
Methods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, focus, getTabIndex, setTabIndex
Methods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListener
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled
Methods inherited from interface com.vaadin.flow.data.provider.HasLazyDataView
setItems, setItems
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
-
Constructor Details
-
TreeTable
public TreeTable() -
TreeTable
-
-
Method Details
-
addHierarchyColumn
-
addHierarchyComponentColumn
-
setTreeTableModel
Sets the tree table model (a combination ofTreeTable.OpenModel
,TreeTable.LeafModel
andTreeTable.LevelModel
. This (or separatelyTreeTable.LeafModel
andTreeTable.LevelModel
) must be set in case the rows are passed in with the lazy loading mode (using eitherHasLazyDataView.setItems(com.vaadin.flow.data.provider.CallbackDataProvider.FetchCallback)
orHasLazyDataView.setItems(com.vaadin.flow.data.provider.CallbackDataProvider.FetchCallback, com.vaadin.flow.data.provider.CallbackDataProvider.CountCallback)
).- Parameters:
model
- the tree table model.
-
setRootItems
public void setRootItems(List<T> rootItems, com.vaadin.flow.function.SerializableFunction<T, List<T>> childrenProvider) Set root items for the tree table. This is a simpler API for non-lazy loading mode. You only need to provide the root items and a method to retrieve children for each item. TreeTable will then automatically load all children recursively, when needed.When using this method, customizing
TreeTable.LeafModel
orTreeTable.LevelModel
is not needed nor supported. If you want, you can override the default in-memoryTreeTable.OpenModel
that keeps all items closed by default.- Parameters:
rootItems
- root itemschildrenProvider
- a function to retrieve children for each item
-
getOpenModel
-
setOpenModel
-
getLevelModel
-
setLevelModel
-
getLeafModel
-
setLeafModel
-
setItems
@Deprecated public com.vaadin.flow.component.grid.dataview.GridDataView<T> setItems(com.vaadin.flow.data.provider.DataProvider<T, Void> dataProvider) Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
setItems
@Deprecated public com.vaadin.flow.component.grid.dataview.GridDataView<T> setItems(com.vaadin.flow.data.provider.InMemoryDataProvider<T> inMemoryDataProvider) Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
setItems
@Deprecated public com.vaadin.flow.component.grid.dataview.GridLazyDataView<T> setItems(com.vaadin.flow.data.provider.BackEndDataProvider<T, Void> dataProvider) Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
setItems
Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
setItems
@Deprecated public com.vaadin.flow.component.grid.dataview.GridListDataView<T> setItems(com.vaadin.flow.data.provider.ListDataProvider<T> dataProvider) Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
setItems
@Deprecated public com.vaadin.flow.component.grid.dataview.GridListDataView<T> setItems(Collection<T> items) Deprecated.Not supported in TreeTable, use setRootItems or setItems instead -
allowUserToToggleOpenState
public void allowUserToToggleOpenState(boolean allow)
-