Package io.jmix.ui.component.impl
Class GroupTableImpl<E>
java.lang.Object
io.jmix.ui.component.impl.AbstractComponent<T>
io.jmix.ui.component.impl.AbstractActionsHolderComponent<T>
io.jmix.ui.component.impl.AbstractTable<JmixGroupTable,E>
io.jmix.ui.component.impl.GroupTableImpl<E>
- All Implemented Interfaces:
ActionsHolder,AttachNotifier,Component,Component.BelongToFrame,Component.Editable,Component.Focusable,Component.HasCaption,Component.HasDescription,Component.HasIcon,Component.HasXmlDescriptor,Component.Wrapper,GroupTable<E>,HasButtonsPanel,HasContextHelp,HasDebugId,HasHtmlCaption,HasHtmlDescription,HasHtmlSanitizer,HasInnerComponents,HasMinSize,HasPagination,HasSubParts,HasTablePresentations,ListComponent<E>,LookupComponent<E>,LookupComponent.LookupSelectionChangeNotifier<E>,SecuredActionsHolder,Table<E>,TableItemsEventsDelegate<E>,InstallTargetHandler,org.springframework.beans.factory.InitializingBean
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classprotected static classprotected static classprotected classNested classes/interfaces inherited from class io.jmix.ui.component.impl.AbstractTable
AbstractTable.AggregatableSortableDataContainer<I>, AbstractTable.AggregatableTableDataContainer<I>, AbstractTable.ColumnImpl<E>, AbstractTable.InstalledStyleProvider, AbstractTable.ItemDescriptionGenerator, AbstractTable.StyleGeneratorAdapterNested classes/interfaces inherited from interface io.jmix.ui.component.Component
Component.Alignment, Component.BelongToFrame, Component.Disposable, Component.Editable, Component.Focusable, Component.HasCaption, Component.HasDescription, Component.HasIcon, Component.HasXmlDescriptor, Component.WrapperNested classes/interfaces inherited from interface io.jmix.ui.component.GroupTable
GroupTable.GroupAggregationDistributionContext<V>, GroupTable.GroupCellContext<E>, GroupTable.GroupCellValueFormatter<E>, GroupTable.GroupColumn<E>, GroupTable.GroupStyleProvider<E>Nested classes/interfaces inherited from interface io.jmix.ui.component.HasContextHelp
HasContextHelp.ContextHelpIconClickEventNested classes/interfaces inherited from interface io.jmix.ui.component.LookupComponent
LookupComponent.LookupSelectionChangeEvent<T>, LookupComponent.LookupSelectionChangeNotifier<T>Nested classes/interfaces inherited from interface io.jmix.ui.component.Table
Table.AggregationDistributionContext<E>, Table.AggregationDistributionProvider<E>, Table.AggregationStyle, Table.Column<E>, Table.ColumnAlignment, Table.ColumnCollapseEvent<E>, Table.ColumnGenerator<E>, Table.ColumnReorderEvent<E>, Table.EmptyStateClickEvent<E>, Table.PlainTextCell, Table.Printable<E,P>, Table.PrintableColumnGenerator<E, P>, Table.RowHeaderMode, Table.SelectionEvent<E>, Table.SortDirection, Table.SortInfo, Table.StyleProvider<E> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<Table.Column,GroupTableImpl.GroupAggregationCells> protected GroupTable.GroupCellValueFormatter<E>protected booleanprotected booleanFields inherited from class io.jmix.ui.component.impl.AbstractTable
accessManager, actions, aggregatableDelegate, aggregationCells, aggregations, BOOLEAN_CELL_STYLE_FALSE, BOOLEAN_CELL_STYLE_TRUE, buttonsPanel, columnCollapseListener, columns, columnsOrder, componentComposition, componentProperties, CUSTOM_STYLE_NAME_PREFIX, dataBinding, dataComponents, datatypeRegistry, defaultTableSettings, distributionProvider, EDIT_ACTION_ID, editable, emptyStateClickLinkHandler, enterPressAction, entityStates, fieldDatasources, HAS_TOP_PANEL_STYLENAME, iconProvider, iconResolver, ignoreUnfetchedAttributes, internalStyles, itemClickAction, itemDescriptionProvider, locale, MAX_TEXT_LENGTH_GAP, messages, messageTools, metadata, metadataTools, pagination, presentations, printables, requiredColumns, ROW_HEADER_PROPERTY_ID, settingsRegistry, sortable, styleProviders, topPanel, uiComponentsGenerator, uiTestIdsSupport, userSettingsTools, VALUE_PROVIDER_GENERATOR, VIEW_ACTION_ID, viewRepository, VOID_COLUMN_GENERATORFields inherited from class io.jmix.ui.component.impl.AbstractActionsHolderComponent
actionButtons, actionList, actionPropertyChangeListener, actionsPermissions, contextMenuPopup, shortcutsDelegate, showIconsForPopupMenuActionsFields inherited from class io.jmix.ui.component.impl.AbstractComponent
alignment, applicationContext, component, contextHelpIconClickHandler, contextHelpIconClickListener, descriptionAsHtml, element, frame, htmlSanitizerEnabled, icon, ICON_STYLE, id, parentFields inherited from interface io.jmix.ui.component.Component
AUTO_SIZE, AUTO_SIZE_PX, FULL_SIZEFields inherited from interface io.jmix.ui.component.GroupTable
NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription__handleAggregationResults(AggregationContainer.Context context, Map<Object, Object> results) voidvoidprotected voidcollectItemIds(GroupInfo groupId, List<Object> itemIds) collectPropertiesByColumns(String... columnIds) protected AbstractTable.ColumnImpl<E>createColumn(Object id, AbstractTable<?, E> owner) protected JmixGroupTableprotected TableDataContainer<E>createTableDataContainer(TableItems<E> tableItems) protected booleanvoidvoidprotected voidexpandGroupsFor(Collection<GroupInfo> groupSlice, Object itemId) voidexpandPath(Object item) Expand all groups for specified item.protected StringformatAggregatableGroupPropertyValue(GroupInfo<MetaPropertyPath> groupId, Object value) protected StringformatGroupPropertyValue(GroupInfo<MetaPropertyPath> groupId, Object value) Returns a map with aggregation results for the given group info instance, where keys are table column ids and values are aggregation value.getAllItemIds(GroupTableItems<E> tableSource) protected Table.ColumngetColumnNN(String columnId) protected StringgetGeneratedCellStyle(Object itemId, Object propertyId) protected Object[]getNewColumnOrder(Object[] newGroupProperties) protected ComponentSettingsBindervoidPerforms grouping by the givenproperties.voidgroupByColumns(String... columnIds) Performs grouping by the given ids of table columns.protected voidinitComponent(JmixGroupTable component) booleanisExpanded(GroupInfo groupId) booleanbooleanvoidMarks all the items in the current data source as selected.voidsetAggregationDistributionProvider(Table.AggregationDistributionProvider<E> distributionProvider) Sets aggregation distribution provider to handle distribution of data on rows.voidsetFixedGrouping(boolean fixedGrouping) voidvoidsetItems(TableItems<E> tableItems) Sets an instance ofTableItemsas the Table data source.voidsetShowItemsCountForGroup(boolean showItemsCountForGroup) Show or hide items count for GroupTable groups.voidungroup()Resets grouping at all.voidungroupByColumns(String... columnIds) Resets grouping by the given ids of table columns.protected booleanuselessGrouping(Object[] newGroupProperties) protected voidvalidateProperties(Object[] properties) Methods inherited from class io.jmix.ui.component.impl.AbstractTable
__aggregate, __aggregateValues, addAggregationCell, addColumn, addColumn, addColumn, addColumn, addColumnCollapseListener, addColumnInternal, addColumnReorderListener, addGeneratedColumn, addGeneratedColumn, addGeneratedColumn, addGeneratedColumnInternal, addLookupValueChangeListener, addPrintable, addSelectionListener, addStyleProvider, afterPropertiesSet, applyPresentation, applyPresentation, applyPresentationAsDefault, applyPresentationSettings, attachAction, attached, beforeComponentPaint, beforeContextMenuButtonHandlerPerformed, canBeSorted, checkAggregation, clearFieldDatasources, convertAggregationKeyMapToColumnIdKeyMap, createColumns, createContextMenuButton, createFieldFactory, createInstallHandler, createLinkCellClickListener, createStubsForGeneratedColumns, createStyleGenerator, createTablePresentations, createTablePresentationsLayout, createTopPanel, detached, disableEditableColumns, distributeAggregation, enableEditableColumns, fireSelectionEvent, focus, formatCellValue, formatFileRef, generateCellDescription, generateCellStyle, generateClickableCellStyles, generateDefaultCellStyle, getAggregatableDelegate, getAggregationDistributionProvider, getAggregationInfos, getAggregationResults, getAggregationStyle, getAutowiredProperties, getButtonsPanel, getCaption, getColumn, getColumnCaption, getColumnCaption, getColumnControlVisible, getColumnReorderingAllowed, getColumns, getColumnsInternal, getColumnsOrderInternal, getColumnType, getComposition, getDefaultPresentationId, getDefaultSettings, getEmptyStateLinkClickHandler, getEmptyStateLinkMessage, getEmptyStateMessage, getEnterAction, getEnterPressAction, getFormattedValue, getInitialVisibleColumnIds, getInnerComponents, getInstanceContainer, getItemClickAction, getItemDescriptionProvider, getItemIcon, getItems, getLookupSelectedItems, getMinHeight, getMinHeightSizeUnit, getMinWidth, getMinWidthSizeUnit, getNotCollapsedColumns, getPagination, getParsedAggregationValue, getPresentations, getPrintable, getPrintable, getPropertyColumns, getRequiredColumnsInternal, getRowHeaderWidth, getSelected, getSelectedItemIds, getSettingsFromPresentation, getSingleSelected, getSortInfo, getStyleName, getTabIndex, getValueExIgnoreUnfetched, handleAggregation, handleClickAction, handleColumnCollapsed, handlePresentationVariables, handleSpecificVariables, initEmptyState, internalRemoveColumnCollapseListener, isAggregatable, isCaptionAsHtml, isColumnHeaderVisible, isContextMenuEnabled, isEditable, isMultiLineCells, isMultiSelect, isSettingsAvailable, isShowSelection, isShowTotalAggregation, isSortable, isTextSelectionEnabled, isValueGeneratedColumn, loadPresentations, needUpdatePresentation, onAfterUnregisterComponent, onBeforeRefreshRowCache, onColumnCollapseStateChange, onColumnReorder, refreshActionsState, removeAggregationCell, removeAllClickListeners, removeColumn, removeGeneratedColumn, removeGeneratedColumnInternal, removePrintable, removeStyleProvider, repaint, requestFocus, resetPresentation, scrollTo, setAccessManager, setActions, setAggregatable, setAggregations, setAggregationStyle, setButtonsPanel, setCaption, setCaptionAsHtml, setClientCaching, setColumnAggregationDescriptionByType, setColumnControlVisible, setColumnHeader, setColumnHeaderVisible, setColumnReorderingAllowed, setContextMenuEnabled, setCurrentAuthentication, setDataComponents, setDatatypeRegistry, setDebugId, setDefaultSettings, setEditable, setEditableColumns, setEmptyStateLinkClickHandler, setEmptyStateLinkMessage, setEmptyStateMessage, setEnterPressAction, setEntityStates, setIconProvider, setIconResolver, setId, setItemClickAction, setItemDescriptionProvider, setLookupSelectHandler, setMessages, setMessageTools, setMetadata, setMetadataTools, setMinHeight, setMinWidth, setMultiLineCells, setMultiSelect, setPagination, setRequired, setRowHeaderMode, setRowHeaderWidth, setSelected, setSelected, setSelectedIds, setSettingsRegistry, setShowSelection, setShowTotalAggregation, setSortable, setStyleName, setStyleProvider, setTabIndex, setTablePresentationsLayout, setTextSelectionEnabled, setUiComponentProperties, setUiComponentsGenerator, setUiTestId, setUiTestIdsSupport, setupAutowiredColumns, setupColumnSettings, setupPaginationDataSourceProvider, setUserSettingsTools, setViewRepository, setVisibleColumns, showCustomPopup, showCustomPopupActions, showEmptyStateIfPossible, showParseErrorNotification, sort, tableSelectionChanged, tableSourceItemSetChanged, tableSourcePropertyValueChanged, tableSourceSelectedItemChanged, tableSourceStateChanged, updateCompositionStylesTopPanelVisible, updatePresentationSettingsMethods inherited from class io.jmix.ui.component.impl.AbstractActionsHolderComponent
actionPropertyChanged, addAction, addAction, createContextMenuPopup, createShortcutsDelegate, getAction, getActions, getActionsPermissions, initContextMenuButton, initContextMenuPopup, removeAction, removeAction, removeAllActions, setContextMenuButtonAction, setContextMenuButtonCaption, setContextMenuButtonIcon, setThemeConstantsManagerMethods inherited from class io.jmix.ui.component.impl.AbstractComponent
addAttachListener, addDetachListener, addStyleName, assignDebugId, getAlignment, getComponent, getContextHelpIconClickHandler, getContextHelpText, getDebugId, getDescription, getEventHub, getFrame, getHeight, getHeightSizeUnit, getHtmlSanitizer, getIcon, getIconName, getIconResource, getId, getParent, getUiComponentProperties, getUiProperties, getWidth, getWidthSizeUnit, getXmlDescriptor, hasSubscriptions, hasValidationError, isAttached, isContextHelpTextHtmlEnabled, isDescriptionAsHtml, isEnabled, isEnabledRecursive, isHtmlSanitizerEnabled, isResponsive, isVisible, isVisibleRecursive, onContextHelpIconClick, publish, removeStyleName, sanitize, setAlignment, setApplicationContext, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabled, setDescription, setDescriptionAsHtml, setEnabled, setFrame, setHeight, setHtmlSanitizerEnabled, setIcon, setIconFromSet, setParent, setResponsive, setValidationError, setVisible, setWidth, setXmlDescriptor, unsubscribe, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.ui.component.ActionsHolder
addAction, addAction, getAction, getActionNN, getActions, removeAction, removeAction, removeAllActionsMethods inherited from interface io.jmix.ui.component.Component
addStyleName, getAlignment, getHeight, getHeightSizeUnit, getId, getParent, getStyleName, getWidth, getWidthSizeUnit, isEnabled, isEnabledRecursive, isResponsive, isVisible, isVisibleRecursive, removeStyleName, setAlignment, setEnabled, setHeight, setHeightAuto, setHeightFull, setId, setParent, setResponsive, setSizeAuto, setSizeFull, setStyleName, setVisible, setWidth, setWidthAuto, setWidthFull, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from interface io.jmix.ui.component.Component.BelongToFrame
getFrame, setFrameMethods inherited from interface io.jmix.ui.component.Component.Editable
isEditable, isEditableWithParent, setEditableMethods inherited from interface io.jmix.ui.component.Component.Focusable
focus, getTabIndex, isFocusable, setFocusable, setTabIndexMethods inherited from interface io.jmix.ui.component.Component.HasCaption
getCaption, setCaptionMethods inherited from interface io.jmix.ui.component.Component.HasDescription
getDescription, setDescriptionMethods inherited from interface io.jmix.ui.component.Component.HasIcon
getIcon, setIcon, setIconFromSetMethods inherited from interface io.jmix.ui.component.GroupTable
getColumnsMethods inherited from interface io.jmix.ui.component.HasButtonsPanel
getButtonsPanel, setButtonsPanelMethods inherited from interface io.jmix.ui.component.HasContextHelp
getContextHelpIconClickHandler, getContextHelpText, isContextHelpTextHtmlEnabled, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabledMethods inherited from interface io.jmix.ui.component.HasHtmlCaption
isCaptionAsHtml, setCaptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlDescription
isDescriptionAsHtml, setDescriptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlSanitizer
isHtmlSanitizerEnabled, setHtmlSanitizerEnabledMethods inherited from interface io.jmix.ui.component.HasPagination
getPagination, setPaginationMethods inherited from interface io.jmix.ui.component.HasTablePresentations
applyPresentation, applyPresentationAsDefault, getDefaultPresentationId, getDefaultSettings, getPresentations, loadPresentations, resetPresentation, setDefaultSettingsMethods inherited from interface io.jmix.ui.component.ListComponent
getSelected, getSingleSelected, isMultiSelect, setSelected, setSelectedMethods inherited from interface io.jmix.ui.component.LookupComponent
getLookupSelectedItems, setLookupSelectHandlerMethods inherited from interface io.jmix.ui.component.Table
addColumn, addColumn, addColumn, addColumn, addColumnCollapseListener, addColumnReorderListener, addGeneratedColumn, addGeneratedColumn, addGeneratedColumn, addPrintable, addSelectionListener, addStyleProvider, getAggregationDistributionProvider, getAggregationResults, getAggregationStyle, getColumn, getColumnControlVisible, getColumnReorderingAllowed, getEmptyStateLinkClickHandler, getEmptyStateLinkMessage, getEmptyStateMessage, getEnterPressAction, getInstanceContainer, getItemClickAction, getItemDescriptionProvider, getItems, getMinHeight, getMinHeightSizeUnit, getMinWidth, getMinWidthSizeUnit, getNotCollapsedColumns, getPrintable, getPrintable, getRowHeaderWidth, getSortInfo, getSubPart, isAggregatable, isColumnHeaderVisible, isContextMenuEnabled, isMultiLineCells, isShowSelection, isShowTotalAggregation, isSortable, isTextSelectionEnabled, removeColumn, removeGeneratedColumn, removePrintable, removeStyleProvider, repaint, requestFocus, scrollTo, setAggregatable, setAggregationStyle, setColumnControlVisible, setColumnHeaderVisible, setColumnReorderingAllowed, setContextMenuEnabled, setEmptyStateLinkClickHandler, setEmptyStateLinkMessage, setEmptyStateMessage, setEnterPressAction, setIconProvider, setItemClickAction, setItemDescriptionProvider, setMinHeight, setMinWidth, setMultiLineCells, setMultiSelect, setRequired, setRowHeaderMode, setRowHeaderWidth, setShowSelection, setShowTotalAggregation, setSortable, setStyleProvider, setTextSelectionEnabled, showCustomPopup, showCustomPopupActions, sort
-
Field Details
-
groupAggregationCells
-
rerender
protected boolean rerender -
showItemsCountForGroup
protected boolean showItemsCountForGroup -
groupCellValueFormatter
-
-
Constructor Details
-
GroupTableImpl
public GroupTableImpl()
-
-
Method Details
-
setItems
Description copied from interface:TableSets an instance ofTableItemsas the Table data source.- Specified by:
setItemsin interfaceTable<E>- Overrides:
setItemsin classAbstractTable<JmixGroupTable,E> - Parameters:
tableItems- the Table data source
-
createTableDataContainer
- Overrides:
createTableDataContainerin classAbstractTable<JmixGroupTable,E>
-
initComponent
- Overrides:
initComponentin classAbstractTable<JmixGroupTable,E>
-
createComponent
-
getSettingsBinder
- Overrides:
getSettingsBinderin classAbstractTable<JmixGroupTable,E>
-
__handleAggregationResults
protected Map<Object,Object> __handleAggregationResults(AggregationContainer.Context context, Map<Object, Object> results) - Overrides:
__handleAggregationResultsin classAbstractTable<JmixGroupTable,E>
-
getNewColumnOrder
-
collectPropertiesByColumns
-
validateProperties
-
groupBy
Description copied from interface:GroupTablePerforms grouping by the givenproperties.- Specified by:
groupByin interfaceGroupTable<E>- Parameters:
properties- an array ofMetaPropertyPath
-
groupByColumns
Description copied from interface:GroupTablePerforms grouping by the given ids of table columns.- Specified by:
groupByColumnsin interfaceGroupTable<E>- Parameters:
columnIds- column ids
-
ungroupByColumns
Description copied from interface:GroupTableResets grouping by the given ids of table columns.- Specified by:
ungroupByColumnsin interfaceGroupTable<E>- Parameters:
columnIds- column ids
-
ungroup
public void ungroup()Description copied from interface:GroupTableResets grouping at all.- Specified by:
ungroupin interfaceGroupTable<E>
-
uselessGrouping
-
getColumnNN
-
getGroupCellValueFormatter
- Specified by:
getGroupCellValueFormatterin interfaceGroupTable<E>
-
setGroupCellValueFormatter
- Specified by:
setGroupCellValueFormatterin interfaceGroupTable<E>
-
expandAll
public void expandAll()- Specified by:
expandAllin interfaceGroupTable<E>
-
expand
- Specified by:
expandin interfaceGroupTable<E>
-
expandPath
Description copied from interface:GroupTableExpand all groups for specified item.- Specified by:
expandPathin interfaceGroupTable<E>
-
expandGroupsFor
-
collapseAll
public void collapseAll()- Specified by:
collapseAllin interfaceGroupTable<E>
-
collapse
- Specified by:
collapsein interfaceGroupTable<E>
-
isExpanded
- Specified by:
isExpandedin interfaceGroupTable<E>
-
isFixedGrouping
public boolean isFixedGrouping()- Specified by:
isFixedGroupingin interfaceGroupTable<E>
-
setFixedGrouping
public void setFixedGrouping(boolean fixedGrouping) - Specified by:
setFixedGroupingin interfaceGroupTable<E>
-
isShowItemsCountForGroup
public boolean isShowItemsCountForGroup()- Specified by:
isShowItemsCountForGroupin interfaceGroupTable<E>- Returns:
- true if GroupTable shows items count for group
-
setShowItemsCountForGroup
public void setShowItemsCountForGroup(boolean showItemsCountForGroup) Description copied from interface:GroupTableShow or hide items count for GroupTable groups.
Default value is true.- Specified by:
setShowItemsCountForGroupin interfaceGroupTable<E>
-
getGeneratedCellStyle
- Overrides:
getGeneratedCellStylein classAbstractTable<JmixGroupTable,E>
-
getAggregationResults
Description copied from interface:GroupTableReturns a map with aggregation results for the given group info instance, where keys are table column ids and values are aggregation value.- Specified by:
getAggregationResultsin interfaceGroupTable<E>- Parameters:
info- the group info instance- Returns:
- aggregation results for the given group info instance
-
selectAll
public void selectAll()Description copied from interface:TableMarks all the items in the current data source as selected.- Specified by:
selectAllin interfaceTable<E>- Overrides:
selectAllin classAbstractTable<JmixGroupTable,E>
-
getAllItemIds
-
collectItemIds
-
setAggregationDistributionProvider
public void setAggregationDistributionProvider(@Nullable Table.AggregationDistributionProvider<E> distributionProvider) Description copied from interface:TableSets aggregation distribution provider to handle distribution of data on rows. Supports only TOP aggregation style.- Specified by:
setAggregationDistributionProviderin interfaceTable<E>- Overrides:
setAggregationDistributionProviderin classAbstractTable<JmixGroupTable,E> - Parameters:
distributionProvider- distribution provider
-
distributeGroupAggregation
protected boolean distributeGroupAggregation(JmixEnhancedTable.AggregationInputValueChangeContext context) -
formatAggregatableGroupPropertyValue
protected String formatAggregatableGroupPropertyValue(GroupInfo<MetaPropertyPath> groupId, @Nullable Object value) -
formatGroupPropertyValue
@Nullable protected String formatGroupPropertyValue(GroupInfo<MetaPropertyPath> groupId, @Nullable Object value) -
createColumn
- Overrides:
createColumnin classAbstractTable<JmixGroupTable,E>
-