Skip to content

Commit

Permalink
MID-8401:fix for get display type of archetype
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Mar 28, 2023
1 parent cd6de54 commit 64117a3
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,16 @@

import com.evolveum.midpoint.gui.impl.page.admin.abstractrole.PageAbstractRole;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.FocusDetailsModels;
import com.evolveum.midpoint.gui.impl.page.admin.focus.PageFocusDetails;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.PageAssignmentHolderDetails;
import com.evolveum.midpoint.authentication.api.util.AuthConstants;

import com.evolveum.midpoint.util.exception.SchemaException;

import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;

import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentHolderType;

import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
Expand Down Expand Up @@ -41,6 +48,8 @@
})
public class PageArchetype extends PageAbstractRole<ArchetypeType, FocusDetailsModels<ArchetypeType>> {

private static final Trace LOGGER = TraceManager.getTrace(PageAssignmentHolderDetails.class);

private static final long serialVersionUID = 1L;

public PageArchetype() {
Expand All @@ -62,7 +71,23 @@ public Class<ArchetypeType> getType() {

@Override
protected Panel createSummaryPanel(String id, IModel<ArchetypeType> summaryModel) {
return new ArchetypeSummaryPanel(id, summaryModel, getSummaryPanelSpecification());
return new ArchetypeSummaryPanel(id, getModelObjectWithApplicableDelta(), summaryModel, getSummaryPanelSpecification());
}

private IModel<ArchetypeType> getModelObjectWithApplicableDelta() {
return () -> {
PrismObject<ArchetypeType> object = getObjectForResolvingArchetypePolicyDisplayType();
return object != null ? object.asObjectable() : null;
};
}

@Override
protected PrismObject<ArchetypeType> getObjectForResolvingArchetypePolicyDisplayType() {
try {
return getModelWrapperObject().getObjectApplyDelta();
} catch (SchemaException e) {
LOGGER.error("Couldn't apply deltas for archetypes " + getModelWrapperObject().getObject(), e);
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ private String getObjectCollectionName() {
return null;
}

PrismObject<AH> assignmentHolderObj = getModelWrapperObject().getObject();
PrismObject<AH> assignmentHolderObj = getObjectForResolvingArchetypePolicyDisplayType();
DisplayType displayType = GuiDisplayTypeUtil.getArchetypePolicyDisplayType(assignmentHolderObj, PageAssignmentHolderDetails.this);
if (displayType == null || displayType.getLabel() == null) {
return null;
Expand All @@ -253,6 +253,10 @@ private String getObjectCollectionName() {
return null;
}

protected PrismObject<AH> getObjectForResolvingArchetypePolicyDisplayType() {
return getModelWrapperObject().getObject();
}

public List<Breadcrumb> getWizardBreadcrumbs() {
return wizardBreadcrumbs;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,28 +330,38 @@ public Component getTag(String id) {

private String getArchetypePolicyAdditionalCssClass() {
if (getModelObject() instanceof AssignmentHolderType) {
DisplayType displayType = GuiDisplayTypeUtil.getArchetypePolicyDisplayType((AssignmentHolderType) getModelObject(), getPageBase());
DisplayType displayType = getArchetypePolicyDisplayType();
return GuiDisplayTypeUtil.getIconColor(displayType);
}
return "";
}

private String getArchetypeLabel() {
if (getModelObject() instanceof AssignmentHolderType) {
DisplayType displayType = GuiDisplayTypeUtil.getArchetypePolicyDisplayType((AssignmentHolderType) getModelObject(), getPageBase());
DisplayType displayType = getArchetypePolicyDisplayType();
return displayType == null || displayType.getLabel() == null ? "" : displayType.getLabel().getOrig();
}
return "";
}

private String getArchetypeIconCssClass() {
if (getModelObject() instanceof AssignmentHolderType) {
DisplayType displayType = GuiDisplayTypeUtil.getArchetypePolicyDisplayType((AssignmentHolderType) getModelObject(), getPageBase());
DisplayType displayType = getArchetypePolicyDisplayType();
return GuiDisplayTypeUtil.getIconCssClass(displayType);
}
return "";
}

private DisplayType getArchetypePolicyDisplayType(){
return GuiDisplayTypeUtil.getArchetypePolicyDisplayType(
getAssignmentHolderTypeObjectForArchetypeDisplayType(),
getPageBase());
}

protected AssignmentHolderType getAssignmentHolderTypeObjectForArchetypeDisplayType() {
return (AssignmentHolderType) getModelObject();
}

protected abstract String getDefaultIconCssClass();

protected abstract String getIconBoxAdditionalCssClass();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentHolderType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SummaryPanelSpecificationType;

import org.apache.wicket.model.IModel;
Expand All @@ -21,9 +22,12 @@ public class ArchetypeSummaryPanel extends FocusSummaryPanel<ArchetypeType>{

private static final long serialVersionUID = 1L;

public ArchetypeSummaryPanel(String id, IModel<ArchetypeType> model,
private final IModel<ArchetypeType> modelWithApplyDelta;

public ArchetypeSummaryPanel(String id, IModel<ArchetypeType> modelWithApplyDelta, IModel<ArchetypeType> model,
SummaryPanelSpecificationType summaryPanelSpecificationType) {
super(id, ArchetypeType.class, model, summaryPanelSpecificationType);
this.modelWithApplyDelta = modelWithApplyDelta;
}


Expand Down Expand Up @@ -52,4 +56,8 @@ protected String getBoxAdditionalCssClass() {
return "summary-panel-user";
}

@Override
protected AssignmentHolderType getAssignmentHolderTypeObjectForArchetypeDisplayType() {
return modelWithApplyDelta.getObject();
}
}

0 comments on commit 64117a3

Please sign in to comment.