diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/PropertySearchItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/PropertySearchItem.java index c50a7425ef1..a4ab6c812c6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/PropertySearchItem.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/PropertySearchItem.java @@ -11,6 +11,9 @@ import java.util.List; import javax.xml.namespace.QName; +import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; + import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.wicket.model.StringResourceModel; @@ -36,8 +39,9 @@ public class PropertySearchItem extends SearchItem { private final List allowedRelations; private DisplayableValue value; + private PolyStringType displayName; - public PropertySearchItem(Search search, ItemPath path, ItemDefinition definition, List allowedRelations) { + public PropertySearchItem(Search search, ItemPath path, ItemDefinition definition, List allowedRelations, PolyStringType displayName) { super(search); Validate.notNull(path, "Item path must not be null."); Validate.notNull(definition, "Item definition must not be null."); @@ -50,6 +54,7 @@ public PropertySearchItem(Search search, ItemPath path, ItemDefinition definitio this.path = path; this.definition = definition; this.allowedRelations = allowedRelations; + this.displayName = displayName; } public ItemDefinition getDefinition() { @@ -86,6 +91,9 @@ public ItemPath getPath() { @Override public String getName() { + if (displayName != null){ + return WebComponentUtil.getTranslatedPolyString(displayName); + } String key = definition.getDisplayName(); if (StringUtils.isEmpty(key)) { key = getSearch().getType().getSimpleName() + '.' + definition.getItemName().getLocalPart(); @@ -123,6 +131,14 @@ public Type getType() { return Type.TEXT; } + public PolyStringType getDisplayName() { + return displayName; + } + + public void setDisplayName(PolyStringType displayName) { + this.displayName = displayName; + } + @Override public String toString() { return "PropertySearchItem{" + diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java index 24918967016..256817c62e7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java @@ -143,7 +143,8 @@ public SearchItem addItem(ItemDefinition def) { return null; } - PropertySearchItem item = new PropertySearchItem(this, itemToRemove.getPath(), def, itemToRemove.getAllowedValues()); + PropertySearchItem item = new PropertySearchItem(this, itemToRemove.getPath(), def, itemToRemove.getAllowedValues(), + itemToRemove.getDisplayName()); if (def instanceof PrismReferenceDefinition) { ObjectReferenceType ref = new ObjectReferenceType(); List supportedTargets = WebComponentUtil.createSupportedTargetTypeList(((PrismReferenceDefinition) def).getTargetTypeName()); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java index 1a8a18e8768..0facdf7666f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java @@ -205,6 +205,7 @@ public static Search createSearch( if (searchItemDef.getPath() != null) { ItemDefinition def = objDef.findItemDefinition(searchItemDef.getPath()); item = search.addItem(def); + ((PropertySearchItem) item).setDisplayName(searchItemDef.getDisplayName()); } else if (searchItemDef.getPredefinedFilter() != null) { item = search.addItem(searchItemDef.getPredefinedFilter()); } @@ -260,6 +261,7 @@ private static List getConfigure for (SearchItemDefinition def : availableDefinitions) { ItemPathType searchItemPath = new ItemPathType(def.getPath()); if (searchItem.getPath() != null && searchItem.getPath().equivalent(searchItemPath)) { + def.setDisplayName(searchItem.getDisplayName()); configuredSearchItemList.add(def); return; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchItemDefinition.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchItemDefinition.java index f3754066d52..568f496a26e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchItemDefinition.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchItemDefinition.java @@ -12,12 +12,14 @@ import com.evolveum.midpoint.prism.ItemDefinition; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchItemType; +import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; public class SearchItemDefinition implements Serializable { private ItemPath path; private ItemDefinition def; private SearchItemType predefinedFilter; + private PolyStringType displayName; private List allowedValues; public SearchItemDefinition(ItemPath path, ItemDefinition def, List allowedValues) { @@ -49,4 +51,12 @@ public SearchItemType getPredefinedFilter() { public void setPredefinedFilter(SearchItemType predefinedFilter) { this.predefinedFilter = predefinedFilter; } + + public PolyStringType getDisplayName() { + return displayName; + } + + public void setDisplayName(PolyStringType displayName) { + this.displayName = displayName; + } }