From d6df32c474e51f164cc889671dfbb7b0374b8493 Mon Sep 17 00:00:00 2001 From: kate Date: Thu, 26 Jul 2018 11:08:38 +0200 Subject: [PATCH] new relations dropdown component for assignments popup --- .../FocusTypeAssignmentPopupTabPanel.java | 28 +++++-------------- .../input/RelationDropDownChoicePanel.java | 10 ++++++- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java index af8209a8537..fe0b4aa1a8d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java @@ -15,29 +15,25 @@ */ package com.evolveum.midpoint.gui.api.component; -import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.RoleSelectionSpecification; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.constants.RelationTypes; -import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.task.api.Task; 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.input.DropDownChoicePanel; -import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; +import com.evolveum.midpoint.web.component.input.RelationDropDownChoicePanel; import com.evolveum.midpoint.web.security.SecurityUtils; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AreaCategoryType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import org.apache.commons.collections.map.HashedMap; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.panel.Fragment; -import org.apache.wicket.model.Model; import javax.xml.namespace.QName; import java.util.*; @@ -66,13 +62,7 @@ protected void initParametersPanel(Fragment parametersPanel){ relationContainer.setOutputMarkupId(true); parametersPanel.add(relationContainer); - DropDownChoicePanel relationSelector = WebComponentUtil.createEnumPanel(RelationTypes.class, ID_RELATION, - WebComponentUtil.createReadonlyModelFromEnum(RelationTypes.class), Model.of(RelationTypes.MEMBER), - FocusTypeAssignmentPopupTabPanel.this, false); - relationSelector.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior()); - relationSelector.setOutputMarkupId(true); - relationSelector.setOutputMarkupPlaceholderTag(true); - relationContainer.add(relationSelector); + relationContainer.add(new RelationDropDownChoicePanel(ID_RELATION, null, AreaCategoryType.SELF_SERVICE)); } @Override @@ -88,16 +78,12 @@ protected Map getSelectedAssignmentsMap(){ } public QName getRelationValue(){ - DropDownChoicePanel relationPanel = getRelationDropDown(); - RelationTypes relation = relationPanel.getModel().getObject(); - if (relation == null) { - return SchemaConstants.ORG_DEFAULT; - } - return relation.getRelation(); + RelationDropDownChoicePanel relationPanel = getRelationDropDown(); + return relationPanel.getRelationValue(); } - private DropDownChoicePanel getRelationDropDown(){ - return (DropDownChoicePanel)get(ID_PARAMETERS_PANEL).get(ID_RELATION_CONTAINER).get(ID_RELATION); + private RelationDropDownChoicePanel getRelationDropDown(){ + return (RelationDropDownChoicePanel)get(ID_PARAMETERS_PANEL).get(ID_RELATION_CONTAINER).get(ID_RELATION); } @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java index 78fc22d7492..db5cd0ac278 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java @@ -61,7 +61,11 @@ public RelationDropDownChoicePanel(String id, IModel model, AreaCategoryT protected void onInitialize(){ super.onInitialize(); - DropDownChoice input = new DropDownChoice<>(ID_INPUT, getModel(), Model.ofList(getChoicesList()), getRenderer()); + List choicesList = getChoicesList(); + QName defaultValue = choicesList.size() > 0 ? choicesList.get(0) : null; + + DropDownChoice input = new DropDownChoice<>(ID_INPUT, getModel() == null ? Model.of(defaultValue) : getModel(), + Model.ofList(choicesList), getRenderer()); input.setNullValid(false); input.add(new EmptyOnChangeAjaxFormUpdatingBehavior()); add(input); @@ -110,4 +114,8 @@ public String getIdValue(QName object, int index) { } }; } + + public QName getRelationValue() { + return ((DropDownChoice) get(ID_INPUT)).getModelObject(); + } }