Class ContainerableListPanel<C extends Serializable,PO extends SelectableRow> 
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
com.evolveum.midpoint.gui.api.component.BasePanel<C>
com.evolveum.midpoint.gui.impl.component.ContainerableListPanel<C,PO> 
- Type Parameters:
- C- the container of displayed objects in table
- PO- the type of the object processed by provider
- All Implemented Interfaces:
- Serializable,- Iterable<org.apache.wicket.Component>,- org.apache.wicket.event.IEventSink,- org.apache.wicket.event.IEventSource,- org.apache.wicket.feedback.IFeedbackContributor,- org.apache.wicket.IConverterLocator,- org.apache.wicket.IMetadataContext<Serializable,,- org.apache.wicket.Component> - org.apache.wicket.IQueueRegion,- org.apache.wicket.markup.html.IHeaderContributor,- org.apache.wicket.request.component.IRequestableComponent,- org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>,- org.apache.wicket.util.io.IClusterable
- Direct Known Subclasses:
- AuditLogViewerPanel,- CaseWorkItemsPanel,- CertificationCasesPanel,- CertificationWorkItemTable,- MultivalueContainerListPanel,- ObjectListPanel,- ProcessedObjectsPanel,- ReportObjectsListPanel
public abstract class ContainerableListPanel<C extends Serializable,PO extends SelectableRow> 
extends BasePanel<C>
- Author:
- skublik Abstract class for List panels with table.
- See Also:
- 
Field SummaryFields inherited from class org.apache.wicket.markup.html.panel.PanelPANELFields inherited from class org.apache.wicket.ComponentENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
- 
Constructor SummaryConstructorsConstructorDescriptionContainerableListPanel(String id, Class<C> defaultType) ContainerableListPanel(String id, Class<C> defaultType, ContainerPanelConfigurationType configurationType) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidaddBasicActions(List<InlineMenuItem> menuItems) Method define basic menu action that is default for all subclasses and will be added on end of menu items list.protected voidaddCustomActions(@NotNull List<InlineMenuItem> actionsList, SerializableSupplier<Collection<? extends C>> objectsSupplier) voidaddPerformed(org.apache.wicket.ajax.AjaxRequestTarget target, List<C> selected) voidprotected SearchContextcreateCustomExportableColumn(org.apache.wicket.model.IModel<String> columnDisplayModel, GuiObjectColumnType customColumn, ExpressionType expression) protected CsvDownloadButtonPanelcreateDownloadButton(String buttonId) protected org.apache.wicket.ComponentcreateHeader(String headerId) protected List<InlineMenuItem>createNameColumn(org.apache.wicket.model.IModel<String> displayModel, GuiObjectColumnType customColumn, ExpressionType expression) protected List<CompositedIconButtonDto>protected abstract ISelectableDataProvider<PO>protected voidcreateReportPerformed(org.apache.wicket.ajax.AjaxRequestTarget target) org.apache.wicket.model.StringResourceModelcreateStringResource(String resourceKey, Object... objects) protected List<org.apache.wicket.Component>createToolbarButtonsList(String idButton) protected voidcustomProcessNewRowItem(org.apache.wicket.markup.repeater.Item<PO> item, org.apache.wicket.model.IModel<PO> model) protected booleanprotected booleanprotected AbstractGuiColumn<?,?> findPredefinedColumn(GuiObjectColumnType customColumn) protected intprotected <T extends ChartConfiguration>
 org.apache.wicket.model.IModel<ChartedHeaderDto<T>>protected Stringprotected ColumnTypeConfigContextprotected ItemDefinition<?>protected ISelectableDataProviderprotected GuiObjectListViewTypeprotected Stringprotected Stringprotected LoadableModel<org.apache.wicket.request.mapper.parameter.PageParameters>protected PageStoragegetPageStorage(String storageKey) protected Stringintprotected StringgetSortProperty(GuiObjectColumnType customColumn, ExpressionType expressionType) protected StringgetTable()org.apache.wicket.Componentprotected abstract UserProfileStorage.TableIdgetType()getViewColumnsTransformed(List<GuiObjectColumnType> customColumns) getViewColumnsTransformed(List<GuiObjectColumnType> customColumns, boolean shouldCheckForNameColumn) protected booleanprotected RoleAnalysisCollapsableTablePanel<PO>NOTE: This method is experimental and may be removed in the future.protected BoxedTablePanel<PO>protected SearchPanelinitSearch(String headerId) protected booleanChecks if the table is collapsible.protected booleanprotected booleanprotected booleanprotected booleanprotected booleanprotected booleanprotected booleanprotected booleanisMenuItemVisible(org.apache.wicket.model.IModel<PO> rowModel) protected booleanprotected booleanprotected booleanprotected booleanbooleanbooleanisValidFormComponents(org.apache.wicket.ajax.AjaxRequestTarget target) booleanisValidFormComponentsOfRow(org.apache.wicket.model.IModel<PO> rowModel, org.apache.wicket.ajax.AjaxRequestTarget target) protected org.apache.wicket.markup.repeater.Item<PO>newRowItem(String id, int index, org.apache.wicket.markup.repeater.Item<PO> item, @NotNull org.apache.wicket.model.IModel<PO> rowModel) protected booleannotContainsNameColumn(@NotNull List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO, String>> columns) protected voidvoidrefreshTable(org.apache.wicket.ajax.AjaxRequestTarget target) voidvoidresetTable(org.apache.wicket.ajax.AjaxRequestTarget target) protected voidsaveSearchModel(ObjectPaging paging) voidsetAdditionalBoxCssClasses(String boxCssClasses) protected voidsetDefaultSorting(ISelectableDataProvider<PO> provider) voidsetManualRefreshEnabled(Boolean manualRefreshEnabled) voidsetUseCollectionView(boolean useCollectionView) This is to avoid using the object collection in search defined in page as it's loaded automagically.protected booleanprotected booleanMethods inherited from class com.evolveum.midpoint.gui.api.component.BasePanelcreateComponentPath, createModel, createStringResource, createStringResource, createStringResource, createStringResource, createStringResource, createStringResource, getFeedbackPanel, getMidpointConfiguration, getModel, getModelObject, getPageBase, getParentPage, getPrismContext, getRegistry, getSchemaService, getSession, getString, getString, getSubscriptionState, getWebApplicationConfiguration, showResultMethods inherited from class org.apache.wicket.markup.html.panel.PanelgetRegionMarkup, newMarkupSourcingStrategyMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainergetWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods inherited from class org.apache.wicket.MarkupContaineradd, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onDetach, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildrenMethods inherited from class org.apache.wicket.Componentadd, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrapMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IQueueRegiondequeue, newDequeueContextMethods inherited from interface java.lang.IterableforEach, spliterator
- 
Constructor Details- 
ContainerableListPanel- Parameters:
- defaultType- specifies type of the object that will be selected by default. It can be changed.
 
- 
ContainerableListPanelpublic ContainerableListPanel(String id, Class<C> defaultType, ContainerPanelConfigurationType configurationType) 
 
- 
- 
Method Details- 
onInitializeprotected void onInitialize()- Overrides:
- onInitializein class- org.apache.wicket.MarkupContainer
 
- 
getSearchByNameParameterValue
- 
setUseCollectionViewpublic void setUseCollectionView(boolean useCollectionView) This is to avoid using the object collection in search defined in page as it's loaded automagically. E.g. on popup where we want to do complete different search - withoutuseCollectionViewqual false, search builder will load collection from underlying page no matter what.- Parameters:
- useCollectionView-
 
- 
isFulltextEnabledprotected boolean isFulltextEnabled()
- 
createAdditionalSearchContext
- 
isCollapsableTableprotected boolean isCollapsableTable()Checks if the table is collapsible.- Returns:
- trueif the table is collapsible,- falseotherwise.
 
- 
isListPanelVisibleprotected boolean isListPanelVisible()
- 
createHeader
- 
getChartedHeaderDtoModelprotected <T extends ChartConfiguration> org.apache.wicket.model.IModel<ChartedHeaderDto<T>> getChartedHeaderDtoModel()
- 
initItemTable
- 
showTableAsCardprotected boolean showTableAsCard()
- 
initCollapsableItemTableNOTE: This method is experimental and may be removed in the future. Initializes a collapsible table for displaying items.When using this method, ensure that specific IDs are used for the collapsible components, as defined in the RoleAnalysisCollapsableTablePanel class. These IDs are required for proper functionality of collapsible elements. An example of how to utilize this method is provided below: Component firstCollapseContainer = cellItem.findParent(Item.class).get(ID_FIRST_COLLAPSABLE_CONTAINER); Component secondCollapseContainer = cellItem.findParent(Item.class).get(ID_SECOND_COLLAPSABLE_CONTAINER); // Assuming there's a button in the table header with the ID "headerActionButton" AjaxButton headerActionButton = new AjaxButton("headerActionButton") { @Override public void onSubmit(AjaxRequestTarget target) { // Your action logic here target.appendJavaScript(getCollapseScript(firstCollapseContainer, secondCollapseContainer)); } }; add(headerActionButton);You can customize components further by overriding the newRowItemmethod, as shown below:@Override protected Item<SelectableBean<RoleAnalysisClusterType>> newRowItem(String id, int index, IModel<SelectableBean<RoleAnalysisClusterType>> model) { // Customization logic here }- Returns:
- The initialized RoleAnalysisCollapsableTablePanel instance.
 
- 
newRowItem
- 
customProcessNewRowItem
- 
isPagingVisibleprotected boolean isPagingVisible()
- 
getTableId
- 
isHeaderVisibleprotected boolean isHeaderVisible()
- 
isPreviewprotected boolean isPreview()
- 
getPageStorage
- 
getPageStorage
- 
createNewButtonDescription
- 
isNewObjectButtonEnabledprotected boolean isNewObjectButtonEnabled()
- 
getTable
- 
getTableComponentpublic org.apache.wicket.Component getTableComponent()
- 
getType
- 
getDefaultType
- 
enableSavePageSizeprotected boolean enableSavePageSize()
- 
createActionsColumn
- 
addBasicActionsMethod define basic menu action that is default for all subclasses and will be added on end of menu items list.
- 
getInlineMenuCssClass
- 
isMenuItemVisible
- 
shouldCheckForNameColumnprotected boolean shouldCheckForNameColumn()
- 
getViewColumnsTransformedprotected List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String>> getViewColumnsTransformed(List<GuiObjectColumnType> customColumns) 
- 
getViewColumnsTransformedprotected List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String>> getViewColumnsTransformed(List<GuiObjectColumnType> customColumns, boolean shouldCheckForNameColumn) 
- 
findPredefinedColumn
- 
getColumnTypeConfigContext
- 
getContainerDefinitionForColumns
- 
createCustomExportableColumnprotected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String> createCustomExportableColumn(org.apache.wicket.model.IModel<String> columnDisplayModel, GuiObjectColumnType customColumn, ExpressionType expression) 
- 
getSortProperty
- 
notContainsNameColumn
- 
createCheckboxColumn
- 
createIconColumn
- 
createNameColumnprotected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String> createNameColumn(org.apache.wicket.model.IModel<String> displayModel, GuiObjectColumnType customColumn, ExpressionType expression) 
- 
createDefaultColumns
- 
createInlineMenu
- 
createProvider
- 
getSelectedObjectsCountpublic int getSelectedObjectsCount()
- 
getSelectedObjects
- 
getSelectedRealObjects
- 
getPreselectedObjectList
- 
initSearch
- 
getAdditionalBoxCssClasses
- 
setAdditionalBoxCssClasses
- 
createToolbarButtonsList
- 
createDownloadButton
- 
getStorageKey
- 
isRefreshEnabledprotected boolean isRefreshEnabled()
- 
getAutoRefreshIntervalprotected int getAutoRefreshInterval()
- 
getObjectCollectionView
- 
getCollectionNameFromPageParameters
- 
isCollectionViewPanelForWidgetprotected boolean isCollectionViewPanelForWidget()
- 
isCollectionViewPanelForCompiledViewprotected boolean isCollectionViewPanelForCompiledView()
- 
isCollectionViewPanelprotected boolean isCollectionViewPanel()
- 
defaultCollectionExistsprotected boolean defaultCollectionExists()
- 
getDataProvider
- 
refreshTablepublic void refreshTable(org.apache.wicket.ajax.AjaxRequestTarget target) 
- 
resetTablepublic void resetTable(org.apache.wicket.ajax.AjaxRequestTarget target) 
- 
resetSearchModelpublic void resetSearchModel()
- 
saveSearchModel
- 
clearCachepublic void clearCache()
- 
createStringResourcepublic org.apache.wicket.model.StringResourceModel createStringResource(String resourceKey, Object... objects) - Overrides:
- createStringResourcein class- BasePanel<C extends Serializable>
 
- 
addCustomActionsprotected void addCustomActions(@NotNull @NotNull List<InlineMenuItem> actionsList, SerializableSupplier<Collection<? extends C>> objectsSupplier) 
- 
addPerformed
- 
getCurrentTablePaging
- 
isDataTableVisibleprotected boolean isDataTableVisible()
- 
setManualRefreshEnabled
- 
getSearchModel
- 
createReportPerformedprotected void createReportPerformed(org.apache.wicket.ajax.AjaxRequestTarget target) 
- 
getDefaultView
- 
setDefaultSorting
- 
getPanelConfiguration
- 
isValidFormComponentspublic boolean isValidFormComponents(org.apache.wicket.ajax.AjaxRequestTarget target) 
- 
isValidFormComponentsOfRowpublic boolean isValidFormComponentsOfRow(org.apache.wicket.model.IModel<PO> rowModel, org.apache.wicket.ajax.AjaxRequestTarget target) 
- 
isValidFormComponentspublic boolean isValidFormComponents()
- 
getInlineMenuItemCssClass
 
-