Skip to content

Commit

Permalink
MID-7673:fix for applicable policies panel on new pages
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Mar 1, 2022
1 parent 246d789 commit 43a5806
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
package com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;
import com.evolveum.midpoint.gui.impl.page.admin.AbstractObjectMainPanel;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.FocusDetailsModels;
import com.evolveum.midpoint.web.application.PanelDisplay;
Expand Down Expand Up @@ -43,8 +45,9 @@ protected void initLayout() {
applicablePoliciesContainer.setOutputMarkupId(true);
add(applicablePoliciesContainer);

ApplicablePolicyConfigPanel applicablePolicyPanel = new ApplicablePolicyConfigPanel(ID_APPLICABLE_POLICIES_PANEL,
PrismContainerWrapperModel.fromContainerWrapper(getObjectWrapperModel(), FocusType.F_ASSIGNMENT));
ApplicablePolicyConfigPanel applicablePolicyPanel = new ApplicablePolicyConfigPanel<AR>(ID_APPLICABLE_POLICIES_PANEL,
PrismContainerWrapperModel.fromContainerWrapper(getObjectWrapperModel(), FocusType.F_ASSIGNMENT),
getObjectWrapperModel());

applicablePoliciesContainer.add(applicablePolicyPanel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
import java.util.ArrayList;
import java.util.List;

import com.evolveum.midpoint.gui.api.prism.wrapper.PrismObjectWrapper;

import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
Expand All @@ -21,16 +26,11 @@
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ArchetypePolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;

/**
* Created by honchar.
*/
public class ApplicablePolicyConfigPanel extends BasePanel<PrismContainerWrapper<AssignmentType>>{
public class ApplicablePolicyConfigPanel<F extends FocusType> extends BasePanel<PrismContainerWrapper<AssignmentType>>{
private static final long serialVersionUID = 1L;

private static final Trace LOGGER = TraceManager.getTrace(ApplicablePolicyConfigPanel.class);
Expand All @@ -41,9 +41,12 @@ public class ApplicablePolicyConfigPanel extends BasePanel<PrismContainerWrapper
private static final String ID_POLICY_GROUP_PANEL = "policyGroupPanel";

private LoadableModel<List<ObjectReferenceType>> policyGroupsListModel;
private LoadableModel<PrismObjectWrapper<F>> abstractRoleModel;

public ApplicablePolicyConfigPanel(String id, IModel<PrismContainerWrapper<AssignmentType>> model){
public ApplicablePolicyConfigPanel(String id, IModel<PrismContainerWrapper<AssignmentType>> model,
LoadableModel<PrismObjectWrapper<F>> abstractRoleModel){
super(id, model);
this.abstractRoleModel = abstractRoleModel;
}

@Override
Expand All @@ -62,7 +65,7 @@ protected List<ObjectReferenceType> load() {
List<ObjectReferenceType> policyGroupsList = new ArrayList<>();
OperationResult result = new OperationResult(OPERATION_LOAD_SYS_CONFIG);
try {
ArchetypePolicyType archetypePolicy = getPageBase().getModelInteractionService().determineArchetypePolicy(getMainPanelFocusObject(), result);
ArchetypePolicyType archetypePolicy = getPageBase().getModelInteractionService().determineArchetypePolicy(getAbstractRoleModelObject(), result);
if (archetypePolicy == null){
return policyGroupsList;
} else {
Expand All @@ -71,7 +74,7 @@ protected List<ObjectReferenceType> load() {
}
}
} catch (Exception ex){
LoggingUtils.logUnexpectedException(LOGGER, "Cannot retrieve archetype policy for " + getMainPanelFocusObject(), ex);
LoggingUtils.logUnexpectedException(LOGGER, "Cannot retrieve archetype policy for " + getAbstractRoleModelObject(), ex);
}
return policyGroupsList;
}
Expand All @@ -92,10 +95,9 @@ protected void populateItem(ListItem<ObjectReferenceType> listItem) {
add(policyGroupsPanel);
}

private PrismObject<FocusType> getMainPanelFocusObject(){
AbstractObjectMainPanel mainPanel = ApplicablePolicyConfigPanel.this.findParent(AbstractObjectMainPanel.class);
if (mainPanel != null){
return mainPanel.getObject();
private PrismObject<F> getAbstractRoleModelObject(){
if (abstractRoleModel != null && abstractRoleModel.getObject() != null){
return abstractRoleModel.getObject().getObject();
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@ private void initLayout() {
applicablePoliciesContainer.setOutputMarkupId(true);
add(applicablePoliciesContainer);

ApplicablePolicyConfigPanel applicablePolicyPanel = new ApplicablePolicyConfigPanel(ID_APPLICABLE_POLICIES_PANEL,
PrismContainerWrapperModel.fromContainerWrapper(getObjectWrapperModel(), FocusType.F_ASSIGNMENT));
ApplicablePolicyConfigPanel applicablePolicyPanel = new ApplicablePolicyConfigPanel<F>(ID_APPLICABLE_POLICIES_PANEL,
PrismContainerWrapperModel.fromContainerWrapper(getObjectWrapperModel(), FocusType.F_ASSIGNMENT),
getObjectWrapperModel());

applicablePoliciesContainer.add(applicablePolicyPanel);
}
Expand Down

0 comments on commit 43a5806

Please sign in to comment.