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<String>
com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.schemaHandling.objectType.attribute.table.SmartMappingTable<P>
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:
AssociationAttributeMappingsTable

public abstract class SmartMappingTable<P extends Containerable> extends BasePanel<String>
Base component for displaying and managing mapping definitions and suggestion in a tile/table view.

Responsibilities:

  • Holds state (direction, search, suggestion toggle, models)
  • Creates and wires the table, data provider, and search
  • Handles refresh, grouping, and mapping lifecycle operations
  • Provides extension hooks for subclasses (columns, provider, UI behavior)

Collaborators:

  • SmartMappingColumns – column definitions
  • SmartMappingMenus – inline menu composition
  • SmartMappingActions – action logic
See Also:
  • Constructor Details

    • SmartMappingTable

      public SmartMappingTable(@NotNull @NotNull String id, @NotNull @NotNull org.apache.wicket.model.IModel<MappingDirection> mappingDirectionModel, @NotNull @NotNull org.apache.wicket.model.IModel<Boolean> suggestionToggleModel, @NotNull @NotNull org.apache.wicket.model.IModel<PrismContainerValueWrapper<P>> refAttributeDefValue, @NotNull @NotNull String resourceOid)
  • Method Details

    • getTableId

      protected UserProfileStorage.TableId getTableId()
    • onInitialize

      protected void onInitialize()
      Overrides:
      onInitialize in class org.apache.wicket.MarkupContainer
    • getSearchModel

      public org.apache.wicket.model.IModel<Search> getSearchModel()
    • getColumns

      @NotNull protected @NotNull List<org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn<PrismContainerValueWrapper<MappingType>,String>> getColumns()
    • displayNoValuePanel

      protected boolean displayNoValuePanel()
    • createSearchHeader

      @NotNull protected @NotNull org.apache.wicket.Component createSearchHeader(String id)
    • createTableProvider

      @NotNull protected @NotNull GroupedMappingDataProvider createTableProvider()
    • isGroupedSuggestion

      protected boolean isGroupedSuggestion()
    • isAssociationMappingTable

      protected boolean isAssociationMappingTable()
    • getRefPath

      @Nullable protected @Nullable ItemPathType getRefPath(@NotNull @NotNull PrismContainerValueWrapper<MappingType> mappingWrapper)
    • getLifecycleState

      @Nullable protected @Nullable String getLifecycleState(@NotNull @NotNull PrismContainerValueWrapper<MappingType> mappingWrapper)
    • getTargetPath

      @Nullable protected @Nullable ItemPathType getTargetPath(@NotNull @NotNull PrismContainerValueWrapper<MappingType> mappingWrapper)
    • getNewObjectButtonCssClass

      protected String getNewObjectButtonCssClass()
    • initPanelToolbarButtons

      protected void initPanelToolbarButtons(@NotNull @NotNull org.apache.wicket.markup.repeater.RepeatingView toolbar)
    • performOnEditMapping

      protected void performOnEditMapping(@NotNull @NotNull org.apache.wicket.ajax.AjaxRequestTarget target, @NotNull @NotNull org.apache.wicket.model.IModel<PrismContainerValueWrapper<MappingType>> rowModel)
    • isValidFormComponents

      public boolean isValidFormComponents(@Nullable @Nullable org.apache.wicket.ajax.AjaxRequestTarget target)
    • getValueModel

      protected org.apache.wicket.model.IModel<PrismContainerValueWrapper<P>> getValueModel()
    • getMappingTypeDefinition

      @NotNull protected final @NotNull LoadableModel<PrismContainerDefinition<MappingType>> getMappingTypeDefinition()
    • getRefColumnDefinitionModel

      @NotNull protected @NotNull org.apache.wicket.model.IModel<? extends PrismContainerDefinition<?>> getRefColumnDefinitionModel()
    • getMappingDirectionType

      protected MappingDirection getMappingDirectionType()
    • isInbound

      protected final boolean isInbound()
    • isOutbound

      protected final boolean isOutbound()
    • getContainerModel

      protected org.apache.wicket.model.IModel<PrismContainerWrapper<MappingType>> getContainerModel()
    • createNewValue

      @Nullable protected @Nullable PrismContainerValueWrapper<MappingType> createNewValue(@Nullable @Nullable PrismContainerValue<MappingType> value, @Nullable @Nullable org.apache.wicket.ajax.AjaxRequestTarget target)
    • createDuplicateValuePerform

      protected void createDuplicateValuePerform(PrismContainerValue<MappingType> value, org.apache.wicket.ajax.AjaxRequestTarget target)
    • resolveDeletedItem

      protected void resolveDeletedItem(@NotNull @NotNull PrismContainerValueWrapper<MappingType> value)
    • deleteItemPerform

      protected void deleteItemPerform(@NotNull @NotNull PrismContainerValueWrapper<MappingType> value)
    • refreshAndDetach

      public void refreshAndDetach(@Nullable @Nullable org.apache.wicket.ajax.AjaxRequestTarget target)
    • updateTileView

      public void updateTileView(org.apache.wicket.ajax.AjaxRequestTarget target)
    • getStatusInfo

      @Nullable protected @Nullable StatusInfo<?> getStatusInfo(PrismContainerValueWrapper<MappingType> value)
    • findResourceObjectTypeDefinition

      protected PrismContainerValueWrapper<ResourceObjectTypeDefinitionType> findResourceObjectTypeDefinition()
    • getAcceptedSuggestionsCache

      @NotNull public @NotNull Set<PrismContainerValueWrapper<MappingType>> getAcceptedSuggestionsCache()
    • getSuggestionToggleModel

      protected org.apache.wicket.model.IModel<Boolean> getSuggestionToggleModel()
    • getMappingUsedForModel

      protected org.apache.wicket.model.IModel<MappingUsedFor> getMappingUsedForModel()
    • getSearchTextModel

      protected org.apache.wicket.model.IModel<String> getSearchTextModel()
    • getSearchText

      @NotNull protected @NotNull String getSearchText()
    • getResourceOid

      @NotNull protected @NotNull String getResourceOid()
    • getTable

    • getProvider

      @Nullable protected @Nullable GroupedMappingDataProvider getProvider()
    • addAdditionalNoValueToolbarButtons

      protected void addAdditionalNoValueToolbarButtons(List<org.apache.wicket.Component> toolbarButtonsList, String idButton)
    • acceptSuggestionItemPerformed

      public PrismContainerValueWrapper<MappingType> acceptSuggestionItemPerformed(@NotNull @NotNull org.apache.wicket.model.IModel<PrismContainerValueWrapper<MappingType>> rowModel, @NotNull @NotNull org.apache.wicket.ajax.AjaxRequestTarget target)
    • createMappingTypeDropdownButton

      protected org.apache.wicket.Component createMappingTypeDropdownButton(String idButton)
    • getResourceType

      protected abstract ResourceType getResourceType()
    • buildSimulationResultPanel

      protected void buildSimulationResultPanel(org.apache.wicket.ajax.AjaxRequestTarget target, org.apache.wicket.model.IModel<SimulationResultType> simulationResultTypeModel)
    • isSuggestionSwitchSupported

      protected boolean isSuggestionSwitchSupported()
    • isSimulationSupported

      protected boolean isSimulationSupported()