diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 376154ebb47..11dcde86957 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -23,6 +23,8 @@ import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; +import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringEscapeUtils; @@ -836,6 +838,13 @@ private static String translate(ObjectTypeGuiDescriptor descriptor) { return translatedValue != null ? translatedValue : descriptor.getLocalizationKey(); } + public static List createContainerableTypesQnameList() { + List objectTypeList = createObjectTypesList().stream().map(type -> type.getTypeQName()).collect(Collectors.toList()); + //todo create enum for containerable types? + objectTypeList.add(AuditEventRecordType.COMPLEX_TYPE); + return objectTypeList; + } + public static List createAssignmentHolderTypeQnamesList() { List objectTypes = createAssignmentHolderTypesList(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/factory/panel/DropDownChoicePanelFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/factory/panel/DropDownChoicePanelFactory.java index 6076ea382da..e00bf278e73 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/factory/panel/DropDownChoicePanelFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/factory/panel/DropDownChoicePanelFactory.java @@ -7,12 +7,9 @@ package com.evolveum.midpoint.gui.impl.factory.panel; import java.util.List; - import javax.annotation.PostConstruct; import javax.xml.namespace.QName; -import com.evolveum.midpoint.web.component.prism.InputPanel; - import org.apache.wicket.model.Model; import org.springframework.stereotype.Component; @@ -21,8 +18,10 @@ import com.evolveum.midpoint.util.DOMUtil; import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; import com.evolveum.midpoint.web.component.input.QNameObjectTypeChoiceRenderer; +import com.evolveum.midpoint.web.component.prism.InputPanel; import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType; /** * @author katkav @@ -43,9 +42,15 @@ public boolean match(IW wrapper) { @Override protected InputPanel getPanel(PrismPropertyPanelContext panelCtx) { - List typesList = WebComponentUtil.createObjectTypeList(); - if (AssignmentType.F_FOCUS_TYPE.equals(panelCtx.getDefinitionName())){ + List typesList; + if (AssignmentType.F_FOCUS_TYPE.equals(panelCtx.getDefinitionName())) { typesList = WebComponentUtil.createFocusTypeList(); + } else if (ObjectCollectionType.F_TYPE.equals(panelCtx.getDefinitionName()) && + panelCtx.unwrapWrapperModel().getParent().getDefinition() != null && + ObjectCollectionType.class.equals(panelCtx.unwrapWrapperModel().getParent().getDefinition().getTypeClass())) { + typesList = WebComponentUtil.createContainerableTypesQnameList(); + } else { + typesList = WebComponentUtil.createObjectTypeList(); } DropDownChoicePanel typePanel = new DropDownChoicePanel(panelCtx.getComponentId(), panelCtx.getRealValueModel(),