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
PANEL
Fields 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
ConstructorDescriptionContainerableListPanel
(String id, Class<C> defaultType) ContainerableListPanel
(String id, Class<C> defaultType, ContainerPanelConfigurationType configurationType) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addBasicActions
(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 void
addCustomActions
(@NotNull List<InlineMenuItem> actionsList, SerializableSupplier<Collection<? extends C>> objectsSupplier) void
addPerformed
(org.apache.wicket.ajax.AjaxRequestTarget target, List<C> selected) void
protected SearchContext
createCustomExportableColumn
(org.apache.wicket.model.IModel<String> columnDisplayModel, GuiObjectColumnType customColumn, ExpressionType expression) protected CsvDownloadButtonPanel
createDownloadButton
(String buttonId) protected org.apache.wicket.Component
createHeader
(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 void
createReportPerformed
(org.apache.wicket.ajax.AjaxRequestTarget target) org.apache.wicket.model.StringResourceModel
createStringResource
(String resourceKey, Object... objects) protected List<org.apache.wicket.Component>
createToolbarButtonsList
(String idButton) protected void
customProcessNewRowItem
(org.apache.wicket.markup.repeater.Item<PO> item, org.apache.wicket.model.IModel<PO> model) protected boolean
protected boolean
protected AbstractGuiColumn<?,
?> findPredefinedColumn
(GuiObjectColumnType customColumn) protected int
protected <T extends com.evolveum.wicket.chartjs.ChartConfiguration>
org.apache.wicket.model.IModel<ChartedHeaderDto<T>>protected String
protected ColumnTypeConfigContext
protected ItemDefinition<?>
protected ISelectableDataProvider
protected GuiObjectListViewType
protected String
protected String
protected LoadableModel<org.apache.wicket.request.mapper.parameter.PageParameters>
protected PageStorage
getPageStorage
(String storageKey) protected String
int
protected String
getSortProperty
(GuiObjectColumnType customColumn, ExpressionType expressionType) protected String
getTable()
org.apache.wicket.Component
protected abstract UserProfileStorage.TableId
getType()
getViewColumnsTransformed
(List<GuiObjectColumnType> customColumns) getViewColumnsTransformed
(List<GuiObjectColumnType> customColumns, boolean shouldCheckForNameColumn) protected boolean
protected RoleAnalysisCollapsableTablePanel<PO>
NOTE: This method is experimental and may be removed in the future.protected BoxedTablePanel<PO>
protected SearchPanel
initSearch
(String headerId) protected boolean
Checks if the table is collapsible.protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
isMenuItemVisible
(org.apache.wicket.model.IModel<PO> rowModel) protected boolean
protected boolean
protected boolean
protected boolean
boolean
boolean
isValidFormComponents
(org.apache.wicket.ajax.AjaxRequestTarget target) boolean
isValidFormComponentsOfRow
(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 boolean
notContainsNameColumn
(@NotNull List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PO, String>> columns) protected void
void
refreshTable
(org.apache.wicket.ajax.AjaxRequestTarget target) void
void
resetTable
(org.apache.wicket.ajax.AjaxRequestTarget target) protected void
saveSearchModel
(ObjectPaging paging) void
setAdditionalBoxCssClasses
(String boxCssClasses) protected void
setDefaultSorting
(ISelectableDataProvider<PO> provider) void
setManualRefreshEnabled
(Boolean manualRefreshEnabled) void
setUseCollectionView
(boolean useCollectionView) This is to avoid using the object collection in search defined in page as it's loaded automagically.protected boolean
protected boolean
Methods 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, showResult
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
getRegionMarkup, newMarkupSourcingStrategy
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
Methods 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, visitChildren
Methods 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, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContext
Methods 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:
onInitialize
in 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 - withoutuseCollectionView
qual 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:
true
if the table is collapsible,false
otherwise.
-
isListPanelVisible
protected boolean isListPanelVisible() -
createHeader
-
getChartedHeaderDtoModel
protected <T extends com.evolveum.wicket.chartjs.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
newRowItem
method, 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:
createStringResource
in 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
-