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 tablePO- 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 Summary
Fields inherited from class org.apache.wicket.markup.html.panel.Panel
PANELFields inherited from class org.apache.wicket.Component
ENABLE, 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 Summary
ConstructorsConstructorDescriptionContainerableListPanel(String id, Class<C> defaultType) ContainerableListPanel(String id, Class<C> defaultType, ContainerPanelConfigurationType configurationType) -
Method Summary
Modifier 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.BasePanel
createComponentPath, 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.Panel
getRegionMarkup, newMarkupSourcingStrategyMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods inherited from class org.apache.wicket.MarkupContainer
add, 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.Component
add, 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.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
ContainerableListPanel
- Parameters:
defaultType- specifies type of the object that will be selected by default. It can be changed.
-
ContainerableListPanel
public ContainerableListPanel(String id, Class<C> defaultType, ContainerPanelConfigurationType configurationType)
-
-
Method Details
-
onInitialize
protected void onInitialize()- Overrides:
onInitializein classorg.apache.wicket.MarkupContainer
-
getSearchByNameParameterValue
-
setUseCollectionView
public 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-
-
isFulltextEnabled
protected boolean isFulltextEnabled() -
createAdditionalSearchContext
-
isCollapsableTable
protected boolean isCollapsableTable()Checks if the table is collapsible.- Returns:
trueif the table is collapsible,falseotherwise.
-
isListPanelVisible
protected boolean isListPanelVisible() -
createHeader
-
getChartedHeaderDtoModel
protected <T extends ChartConfiguration> org.apache.wicket.model.IModel<ChartedHeaderDto<T>> getChartedHeaderDtoModel() -
initItemTable
-
showTableAsCard
protected boolean showTableAsCard() -
initCollapsableItemTable
NOTE: 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
-
isPagingVisible
protected boolean isPagingVisible() -
getTableId
-
isHeaderVisible
protected boolean isHeaderVisible() -
isPreview
protected boolean isPreview() -
getPageStorage
-
getPageStorage
-
createNewButtonDescription
-
isNewObjectButtonEnabled
protected boolean isNewObjectButtonEnabled() -
getTable
-
getTableComponent
public org.apache.wicket.Component getTableComponent() -
getType
-
getDefaultType
-
enableSavePageSize
protected boolean enableSavePageSize() -
createActionsColumn
-
addBasicActions
Method define basic menu action that is default for all subclasses and will be added on end of menu items list. -
getInlineMenuCssClass
-
isMenuItemVisible
-
shouldCheckForNameColumn
protected boolean shouldCheckForNameColumn() -
getViewColumnsTransformed
protected List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String>> getViewColumnsTransformed(List<GuiObjectColumnType> customColumns) -
getViewColumnsTransformed
protected List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO,String>> getViewColumnsTransformed(List<GuiObjectColumnType> customColumns, boolean shouldCheckForNameColumn) -
findPredefinedColumn
-
getColumnTypeConfigContext
-
getContainerDefinitionForColumns
-
createCustomExportableColumn
protected 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
-
createNameColumn
protected 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
-
getSelectedObjectsCount
public int getSelectedObjectsCount() -
getSelectedObjects
-
getSelectedRealObjects
-
getPreselectedObjectList
-
initSearch
-
getAdditionalBoxCssClasses
-
setAdditionalBoxCssClasses
-
createToolbarButtonsList
-
createDownloadButton
-
getStorageKey
-
isRefreshEnabled
protected boolean isRefreshEnabled() -
getAutoRefreshInterval
protected int getAutoRefreshInterval() -
getObjectCollectionView
-
getCollectionNameFromPageParameters
-
isCollectionViewPanelForWidget
protected boolean isCollectionViewPanelForWidget() -
isCollectionViewPanelForCompiledView
protected boolean isCollectionViewPanelForCompiledView() -
isCollectionViewPanel
protected boolean isCollectionViewPanel() -
defaultCollectionExists
protected boolean defaultCollectionExists() -
getDataProvider
-
refreshTable
public void refreshTable(org.apache.wicket.ajax.AjaxRequestTarget target) -
resetTable
public void resetTable(org.apache.wicket.ajax.AjaxRequestTarget target) -
resetSearchModel
public void resetSearchModel() -
saveSearchModel
-
clearCache
public void clearCache() -
createStringResource
public org.apache.wicket.model.StringResourceModel createStringResource(String resourceKey, Object... objects) - Overrides:
createStringResourcein classBasePanel<C extends Serializable>
-
addCustomActions
protected void addCustomActions(@NotNull @NotNull List<InlineMenuItem> actionsList, SerializableSupplier<Collection<? extends C>> objectsSupplier) -
addPerformed
-
getCurrentTablePaging
-
isDataTableVisible
protected boolean isDataTableVisible() -
setManualRefreshEnabled
-
getSearchModel
-
createReportPerformed
protected void createReportPerformed(org.apache.wicket.ajax.AjaxRequestTarget target) -
getDefaultView
-
setDefaultSorting
-
getPanelConfiguration
-
isValidFormComponents
public boolean isValidFormComponents(org.apache.wicket.ajax.AjaxRequestTarget target) -
isValidFormComponentsOfRow
public boolean isValidFormComponentsOfRow(org.apache.wicket.model.IModel<PO> rowModel, org.apache.wicket.ajax.AjaxRequestTarget target) -
isValidFormComponents
public boolean isValidFormComponents() -
getInlineMenuItemCssClass
-