diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java index dae856fce29..4d78c83963a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java @@ -16,17 +16,18 @@ package com.evolveum.midpoint.web.component.assignment; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; -import com.evolveum.midpoint.prism.PrismContainer; import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.util.exception.SchemaException; +import com.evolveum.midpoint.util.exception.TunnelException; import com.evolveum.midpoint.web.component.prism.*; import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import org.apache.commons.lang.StringUtils; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -50,7 +51,6 @@ import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; -import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.AjaxIconButton; @@ -90,6 +90,7 @@ public abstract class AssignmentPanel extends BasePanel> detailsPanelAssignmentsList = new ArrayList<>(); public AssignmentPanel(String id, IModel> assignmentContainerWrapperModel) { super(id, assignmentContainerWrapperModel); @@ -352,18 +353,15 @@ public boolean isVisible() { add(details); - IModel>> selectedAssignmnetList = new AbstractReadOnlyModel>>() { - - private static final long serialVersionUID = 1L; - - @Override - public List> getObject() { - return getModelObject().getValues().stream().filter(v -> v.isSelected()).collect(Collectors.toList()); - } - }; - ListView> assignmentDetailsView = new ListView>(ID_ASSIGNMENTS_DETAILS, - selectedAssignmnetList) { + new AbstractReadOnlyModel>>() { + private static final long serialVersionUID = 1L; + + @Override + public List> getObject() { + return detailsPanelAssignmentsList; + } + }) { private static final long serialVersionUID = 1L; @@ -388,7 +386,6 @@ protected void populateItem(ListItem> item @Override public void onClick(AjaxRequestTarget target) { assignmentDetailsVisible = false; - getSelectedAssignments().stream().forEach(a -> a.setSelected(false)); refreshTable(target); target.add(AssignmentPanel.this); } @@ -402,7 +399,6 @@ public void onClick(AjaxRequestTarget target) { @Override public void onClick(AjaxRequestTarget ajaxRequestTarget) { assignmentDetailsVisible = false; -// getSelectedAssignments().stream().forEach(a -> {a.revertChanges(); a.setSelected(false);}); ajaxRequestTarget.add(AssignmentPanel.this); } }; @@ -471,15 +467,15 @@ public void onClick(AjaxRequestTarget target) { protected void assignmentDetailsPerformed(AjaxRequestTarget target, IModel> rowModel) { assignmentDetailsVisible = true; -// getModelObject().forEach(a -> a.setSelected(false)); - rowModel.getObject().setSelected(true); + detailsPanelAssignmentsList.clear(); + detailsPanelAssignmentsList.add(rowModel.getObject()); target.add(AssignmentPanel.this); } protected void assignmentDetailsPerformed(AjaxRequestTarget target, List> rowModel) { assignmentDetailsVisible = true; -// getModelObject().forEach(a -> a.setSelected(false)); - rowModel.stream().forEach(a -> a.setSelected(true)); + detailsPanelAssignmentsList.clear(); + detailsPanelAssignmentsList.addAll(rowModel); target.add(AssignmentPanel.this); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java index 481a573211e..08b033480a1 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/PolicyRulesPanel.java @@ -149,10 +149,9 @@ private AssignmentsTabStorage getPolicyRulesTabStorage(){ @Override protected void newAssignmentClickPerformed(AjaxRequestTarget target) { PrismContainerValue newAssignment = getModelObject().getItem().createNewValue(); + newAssignment.asContainerable().setPolicyRule(new PolicyRuleType()); ContainerValueWrapper newAssignmentWrapper = createNewAssignmentContainerValueWrapper(newAssignment); assignmentDetailsPerformed(target, Arrays.asList(newAssignmentWrapper)); -// refreshTable(target); - } @Override