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
Nested ClassesModifier and TypeClassDescriptionstatic classclassstatic interfacestatic interfacestatic classstatic interfacestatic interfaceNested classes/interfaces inherited from class org.vaadin.firitin.components.grid.VGrid
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
Constructors -
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) voidallowUserToToggleOpenState(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.voidsetLeafModel(TreeTable.LeafModel<T> leafModel) voidsetLevelModel(TreeTable.LevelModel<T> levelModel) voidsetOpenModel(TreeTable.OpenModel<T> openModel) voidsetRootItems(List<T> rootItems, com.vaadin.flow.function.SerializableFunction<T, List<T>> childrenProvider) Set root items for the tree table.voidSets the tree table model (a combination ofTreeTable.OpenModel,TreeTable.LeafModelandTreeTable.LevelModel.Methods inherited from class org.vaadin.firitin.components.grid.VGrid
getDefaultColumnFactory, scrollToItem, setDataProvider, withColumnSelector, withItems, withItems, withProperties, withSelectionMode, withSelectionModel, withThemeVariantsMethods inherited from class com.vaadin.flow.component.grid.Grid
addCellFocusListener, addColumn, addColumn, 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, getSelectionModel, getSortOrder, getUniqueKeyProperty, getUniqueKeyProvider, initConnector, insertColumnLayer, isAllRowsVisible, isColumnReorderingAllowed, isDetailsVisible, isDetailsVisibleOnClick, isMultiSort, isRowsDraggable, onAttach, onDataProviderChange, onDetach, onEnabledStateChanged, prependFooterRow, prependHeaderRow, recalculateColumnWidths, removeAllColumns, removeColumn, removeColumnByKey, removeColumnLayer, removeColumns, removeThemeVariants, scrollToEnd, scrollToIndex, scrollToStart, select, setAllRowsVisible, setClassNameGenerator, setColumnKey, setColumnOrder, setColumnOrder, setColumnRendering, setColumnReorderingAllowed, setColumns, setDataProvider, setDefaultMultiSortPriority, setDetailsVisible, setDetailsVisibleOnClick, setDragDataGenerator, setDragFilter, setDropFilter, setDropMode, setItemDetailsRenderer, setMultiSort, setMultiSort, setMultiSort, setMultiSort, setNestedNullBehavior, setPageSize, setPartNameGenerator, setRowsDraggable, setSelectionDragDetails, setSelectionMode, setSelectionModel, setSortableColumns, setTooltipGenerator, setUniqueKeyProperty, setUniqueKeyProvider, sort, updateSelectionModeOnClientMethods 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, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentAttachNotifier
withAttachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentBlurNotifier
withBlurListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentComponent
setId, setVisible, withId, withVisibleMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentDetachNotifier
withDetachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentFocusable
withTabIndexMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentFocusNotifier
withFocusListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasSize
withFullHeight, withFullWidth, withHeight, withMaxHeight, withMaxSize, withMaxWidth, withMinHeight, withMinSize, withMinWidth, withSize, withSizeFull, withSizeUndefined, withWidthMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasStyle
withAddedClassName, withClassName, withStyleMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasTheme
withThemeNamesMethods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, focus, getTabIndex, setTabIndexMethods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListenerMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabledMethods inherited from interface com.vaadin.flow.data.provider.HasLazyDataView
setItems, setItemsMethods 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, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods 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.LeafModelandTreeTable.LevelModel. This (or separatelyTreeTable.LeafModelandTreeTable.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.LeafModelorTreeTable.LevelModelis not needed nor supported. If you want, you can override the default in-memoryTreeTable.OpenModelthat 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)
-