Class StatusAwareContainerListPanel<C extends Containerable>
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,PrismContainerValueWrapper<C>>
com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanel<C>
com.evolveum.midpoint.gui.impl.component.StatusAwareContainerListPanel<C>
- 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
public abstract class StatusAwareContainerListPanel<C extends Containerable>
extends MultivalueContainerListPanel<C>
An extension of
MultivalueContainerListPanel that is aware of
StatusInfo-based suggestion states. It automatically applies
custom row styles and auto-refresh behavior for items that have status information.
Subclasses can override getStatusInfo(PrismContainerValueWrapper) to provide
StatusInfo resolution logic (e.g. using a StatusAwareDataProvider).
This panel does not depend on a specific domain object, so it can be reused anywhere suggestion/status-based rendering is needed.
- 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
ConstructorsModifierConstructorDescriptionprotectedStatusAwareContainerListPanel(String id, Class<C> type, Class<?> statusResultClass) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAutoRefreshBehavior(PrismContainerValueWrapper<C> value, org.apache.wicket.markup.repeater.Item<PrismContainerValueWrapper<C>> item) Adds periodic Ajax-based refresh for rows that are "in progress" or need updates.protected booleanprotected booleanDetermines whether the panel should display aNoValuePanel) UI component when there are no values present in the container.protected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PrismContainerValueWrapper<C>,String> protected ButtonInlineMenuItemprotected List<InlineMenuItem>protected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PrismContainerValueWrapper<C>,String> createNameColumn(org.apache.wicket.model.IModel<String> displayModel, GuiObjectColumnType customColumn, ExpressionType expression) protected ISelectableDataProvider<PrismContainerValueWrapper<C>>protected List<org.apache.wicket.Component>createToolbarButtonsList(String idButton) protected voidcustomizeInlineMenuItems(@NotNull List<InlineMenuItem> inlineMenuItems) protected voidcustomProcessNewRowItem(org.apache.wicket.markup.repeater.Item<PrismContainerValueWrapper<C>> item, @NotNull org.apache.wicket.model.IModel<PrismContainerValueWrapper<C>> model) Applies visual styling and optional auto-refresh behavior for rows that haveStatusInfo.voiddeleteItemPerformed(org.apache.wicket.ajax.AjaxRequestTarget target, List<PrismContainerValueWrapper<C>> toDelete) booleanDetermines whether the panel should display a special UI component (e.g.protected Stringprotected @NotNull String@NotNull List<InlineMenuItem>protected ItemPathprotected @Nullable StatusInfo<C>getStatusInfo(@NotNull PrismContainerValueWrapper<?> value) Retrieves theStatusInfofor the given container value.protected abstract StatusAwareDataFactory.SuggestionsModelDto<C>protected org.apache.wicket.model.IModel<Boolean>protected booleanprotected booleanprotected booleanprotected booleanprotected booleanprotected booleanperformOnDeleteSuggestion(@NotNull PageBase pageBase, org.apache.wicket.ajax.AjaxRequestTarget target, PrismContainerValueWrapper<C> valueWrapper, @Nullable StatusInfo<?> statusInfo) protected voidperformOnReview(@NotNull org.apache.wicket.ajax.AjaxRequestTarget target, @NotNull PrismContainerValueWrapper<C> valueWrapper, @NotNull StatusInfo<?> statusInfo) voidrefreshTable(org.apache.wicket.ajax.AjaxRequestTarget target) protected booleanprotected booleanprotected @Nullable OperationResultStatusTypestatusFor(PrismContainerValueWrapper<?> wrapper) Methods inherited from class com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanel
addBasicActions, createDeleteButtonInlineMenu, createDeleteColumnAction, createDeleteInlineMenu, createEditColumnAction, createIconColumn, createNewItemContainerValueWrapper, createStyleClassModelForNewObjectIcon, deleteSingleItem, editItemPerformed, getContainerModel, getDefaultMenuActions, getFocusObject, getKeyOfTitleForNewObjectButton, getPerformedSelectedItems, getSelectedItems, getSelectedRealObjects, getTypeDefinitionForSearch, isDuplicationSupported, isFulltextEnabled, isListPanelVisible, newItemPerformed, newItemPerformedMethods inherited from class com.evolveum.midpoint.gui.impl.component.ContainerableListPanel
addCustomActions, addPerformed, clearCache, collectColumns, createActionsColumn, createAdditionalSearchContext, createCollapsibleContent, createCustomExportableColumn, createCustomExportableColumn, createDefaultColumns, createHeader, createNewButtonDescription, createPanelForNoValue, createReportPerformed, createSearch, createStringResource, createTableButtonToolbar, defaultCollectionExists, displayIsolatedNoValuePanel, enableSavePageSize, findPredefinedColumn, getAutoRefreshInterval, getAvailablePageSizes, getChartedHeaderDtoModel, getCollapsibleToggleColumnIndex, getCollectionNameFromPageParameters, getColumnTypeConfigContext, getContainerDefinitionForColumns, getCurrentTablePaging, getDataProvider, getDefaultObjectListConfiguration, getDefaultPageSize, getDefaultType, getDefaultView, getInlineMenuCssClass, getInlineMenuItemCssClass, getNavigationParametersModel, getNoValuePanel, getNoValuePanelCustomSubTitleModel, getObjectCollectionView, getPageStorage, getPageStorage, getPanelConfiguration, getPreselectedObjectList, getRowObjectName, getSearchByNameParameterValue, getSearchModel, getSelectedObjects, getSelectedObjectsCount, getSortProperty, getStorageKey, getTable, getTableComponent, getTableContainerAdditionalCssClasses, getTableId, getType, getViewColumnsTransformed, getViewColumnsTransformed, getWidgetNameOfCollection, hideFooterIfSinglePage, initCollapsableItemTable, initItemTable, initSearch, isCollapsableTable, isCollapseToggleColumnVisible, isCollectionViewPanel, isCollectionViewPanelForCompiledView, isCollectionViewPanelForWidget, isDataTableVisible, isFooterVisible, isMenuItemVisible, isNewObjectButtonEnabled, isPagingVisible, isPreview, isRefreshEnabled, isSearchResultInfoVisible, isUseStorageSearch, isValidFormComponents, isValidFormComponents, isValidFormComponentsOfRow, loadSearch, notContainsNameColumn, onInitialize, resetSearchModel, resetTable, resetTableColumns, saveSearchModel, setAdditionalBoxCssClasses, setDefaultSorting, setDefaultSorting, setManualRefreshEnabled, setUseCollectionView, shouldCheckForNameColumn, showTableAsCardMethods inherited from class com.evolveum.midpoint.gui.api.component.BasePanel
createComponentPath, createModel, createStringResource, createStringResource, createStringResource, createStringResource, createStringResource, createStringResource, getBrowserTabSessionStorage, getFeedbackPanel, getMidpointConfiguration, getModel, getModelObject, getPageBase, getParentPage, getPrismContext, getRegistry, getSchemaService, getSession, getSessionStorage, 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
-
StatusAwareContainerListPanel
-
-
Method Details
-
createProvider
- Overrides:
createProviderin classMultivalueContainerListPanel<C extends Containerable>
-
createCheckboxColumn
protected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PrismContainerValueWrapper<C>,String> createCheckboxColumn()- Overrides:
createCheckboxColumnin classMultivalueContainerListPanel<C extends Containerable>
-
createNameColumn
protected org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PrismContainerValueWrapper<C>,String> createNameColumn(org.apache.wicket.model.IModel<String> displayModel, GuiObjectColumnType customColumn, ExpressionType expression) - Overrides:
createNameColumnin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
refreshTable
public void refreshTable(org.apache.wicket.ajax.AjaxRequestTarget target) - Overrides:
refreshTablein classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
getStatusInfo
@Nullable protected @Nullable StatusInfo<C> getStatusInfo(@NotNull @NotNull PrismContainerValueWrapper<?> value) Retrieves theStatusInfofor the given container value. -
statusFor
@Nullable protected @Nullable OperationResultStatusType statusFor(PrismContainerValueWrapper<?> wrapper) -
customProcessNewRowItem
protected void customProcessNewRowItem(org.apache.wicket.markup.repeater.Item<PrismContainerValueWrapper<C>> item, @NotNull @NotNull org.apache.wicket.model.IModel<PrismContainerValueWrapper<C>> model) Applies visual styling and optional auto-refresh behavior for rows that haveStatusInfo.- Overrides:
customProcessNewRowItemin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
addAutoRefreshBehavior
protected void addAutoRefreshBehavior(PrismContainerValueWrapper<C> value, org.apache.wicket.markup.repeater.Item<PrismContainerValueWrapper<C>> item) Adds periodic Ajax-based refresh for rows that are "in progress" or need updates. -
getInlineMenuItems
- Overrides:
getInlineMenuItemsin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
createInlineMenu
- Overrides:
createInlineMenuin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
customizeInlineMenuItems
-
createEditInlineMenu
- Overrides:
createEditInlineMenuin classMultivalueContainerListPanel<C extends Containerable>
-
performOnReview
protected void performOnReview(@NotNull @NotNull org.apache.wicket.ajax.AjaxRequestTarget target, @NotNull @NotNull PrismContainerValueWrapper<C> valueWrapper, @NotNull @NotNull StatusInfo<?> statusInfo) -
createToolbarButtonsList
- Overrides:
createToolbarButtonsListin classMultivalueContainerListPanel<C extends Containerable>
-
deleteItemPerformed
public void deleteItemPerformed(org.apache.wicket.ajax.AjaxRequestTarget target, List<PrismContainerValueWrapper<C>> toDelete) - Overrides:
deleteItemPerformedin classMultivalueContainerListPanel<C extends Containerable>
-
performOnDeleteSuggestion
protected boolean performOnDeleteSuggestion(@NotNull @NotNull PageBase pageBase, org.apache.wicket.ajax.AjaxRequestTarget target, PrismContainerValueWrapper<C> valueWrapper, @Nullable @Nullable StatusInfo<?> statusInfo) -
getIconForNewObjectButton
- Overrides:
getIconForNewObjectButtonin classMultivalueContainerListPanel<C extends Containerable>
-
getAdditionalBoxCssClasses
- Overrides:
getAdditionalBoxCssClassesin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
isHeaderVisible
protected boolean isHeaderVisible()- Overrides:
isHeaderVisiblein classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
allowEditMultipleValuesAtOnce
protected boolean allowEditMultipleValuesAtOnce()- Overrides:
allowEditMultipleValuesAtOncein classMultivalueContainerListPanel<C extends Containerable>
-
isCreateNewObjectVisible
protected boolean isCreateNewObjectVisible()- Specified by:
isCreateNewObjectVisiblein classMultivalueContainerListPanel<C extends Containerable>
-
displayNoValuePanel
public boolean displayNoValuePanel()Description copied from class:ContainerableListPanelDetermines whether the panel should display a special UI component (e.g.NoValuePanel) when there are no values present in the container.- Overrides:
displayNoValuePanelin classContainerableListPanel<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
allowNoValuePanel
protected boolean allowNoValuePanel()Determines whether the panel should display aNoValuePanel) UI component when there are no values present in the container. -
hasNoValues
protected boolean hasNoValues() -
isCheckboxColumn
protected boolean isCheckboxColumn() -
showLifecycleStatesInlineMenu
protected boolean showLifecycleStatesInlineMenu() -
showEditInlineMenu
protected boolean showEditInlineMenu() -
isToggleSuggestionVisible
protected boolean isToggleSuggestionVisible() -
getSwitchSuggestion
-
getPathForDisplayName
-
getSuggestionsModelDto
-