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 6d2a5d8a707..aeb07f067a3 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 @@ -305,8 +305,12 @@ public static String getTypeLocalized(ObjectReferenceType ref) { } public static String getReferencedObjectNames(List refs, boolean showTypes) { + return getReferencedObjectNames(refs, showTypes, false); + } + + public static String getReferencedObjectNames(List refs, boolean showTypes, boolean translate) { return refs.stream() - .map(ref -> emptyIfNull(getName(ref)) + (showTypes ? (" (" + emptyIfNull(getTypeLocalized(ref)) + ")") : "")) + .map(ref -> emptyIfNull(getName(ref, translate)) + (showTypes ? (" (" + emptyIfNull(getTypeLocalized(ref)) + ")") : "")) .collect(Collectors.joining(", ")); } @@ -1046,32 +1050,45 @@ public static String getName(ObjectType object, boolean translate) { } public static String getEffectiveName(ObjectType object, QName propertyName) { + return getEffectiveName(object, propertyName, false); + } + + public static String getEffectiveName(ObjectType object, QName propertyName, boolean translate) { if (object == null) { return null; } - return getEffectiveName(object.asPrismObject(), propertyName); + return getEffectiveName(object.asPrismObject(), propertyName, translate); } public static String getEffectiveName(PrismObject object, QName propertyName) { + return getEffectiveName(object, propertyName, false); + } + + public static String getEffectiveName(PrismObject object, QName propertyName, boolean translate) { if (object == null) { return null; } PrismProperty prop = object.findProperty(ItemName.fromQName(propertyName)); + MidPointApplication application = MidPointApplication.get(); if (prop != null) { Object realValue = prop.getRealValue(); if (prop.getDefinition().getTypeName().equals(DOMUtil.XSD_STRING)) { return (String) realValue; } else if (realValue instanceof PolyString) { - return WebComponentUtil.getOrigStringFromPoly((PolyString) realValue); + return translate ? application.getLocalizationService().translate((PolyString) realValue, getCurrentLocale(), true) + : WebComponentUtil.getOrigStringFromPoly((PolyString) realValue); } } PolyString name = getValue(object, ObjectType.F_NAME, PolyString.class); - - return name != null ? name.getOrig() : null; + if (name == null){ + return null; + } + return translate ? application.getLocalizationService().translate(name, getCurrentLocale(), true) + : WebComponentUtil.getOrigStringFromPoly(name); } public static String getName(ObjectReferenceType ref, PageBase pageBase, String operation) { @@ -1130,7 +1147,7 @@ public static String getName(ObjectReferenceType ref, boolean translate) { if (translate){ MidPointApplication application = MidPointApplication.get(); return application.getLocalizationService().translate(PolyString.toPolyString(ref.getTargetName()), - WebComponentUtil.getCurrentLocale(), true); + getCurrentLocale(), true); } return getOrigStringFromPoly(ref.getTargetName()); } @@ -1154,7 +1171,7 @@ public static String getName(PrismObject object, boolean translate) { } if (translate){ MidPointApplication application = MidPointApplication.get(); - return application.getLocalizationService().translate(name, WebComponentUtil.getCurrentLocale(), true); + return application.getLocalizationService().translate(name, getCurrentLocale(), true); } return name.getOrig(); } @@ -1342,7 +1359,7 @@ public static String getDisplayName(ObjectReferenceType ref, boolean translate) if (translate){ MidPointApplication application = MidPointApplication.get(); return application.getLocalizationService().translate(PolyString.toPolyString(ObjectTypeUtil.getDisplayName(ref)), - WebComponentUtil.getCurrentLocale(), true); + getCurrentLocale(), true); } else { return PolyString.getOrig(ObjectTypeUtil.getDisplayName(ref)); } @@ -1356,7 +1373,7 @@ public static String getDisplayName(PrismObject object, boolean translate) { if (translate){ MidPointApplication application = MidPointApplication.get(); return application.getLocalizationService().translate(PolyString.toPolyString(ObjectTypeUtil.getDisplayName(object)), - WebComponentUtil.getCurrentLocale(), true); + getCurrentLocale(), true); } else { return PolyString.getOrig(ObjectTypeUtil.getDisplayName(object)); } @@ -1609,7 +1626,7 @@ public static String getLocalizedDate(Date date, String style) { return null; } PatternDateConverter converter = new PatternDateConverter(getLocalizedDatePattern(style), true); - return converter.convertToString(date, WebComponentUtil.getCurrentLocale()); + return converter.convertToString(date, getCurrentLocale()); } public static String getShortDateTimeFormattedValue(XMLGregorianCalendar date, PageBase pageBase) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java index 6da5683fc43..591a281f104 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java @@ -91,16 +91,25 @@ public class WebModelServiceUtils { private static final String OPERATION_LOAD_FLOW_POLICY = DOT_CLASS + "loadFlowPolicy"; public static String resolveReferenceName(ObjectReferenceType ref, PageBase page) { + return resolveReferenceName(ref, page, false); + } + + public static String resolveReferenceName(ObjectReferenceType ref, PageBase page, boolean translate) { Task task = page.createSimpleTask(WebModelServiceUtils.class.getName() + ".resolveReferenceName"); - return resolveReferenceName(ref, page, task, task.getResult()); + return resolveReferenceName(ref, page, task, task.getResult(), translate); } public static String resolveReferenceName(ObjectReferenceType ref, PageBase page, Task task, OperationResult result) { + return resolveReferenceName(ref, page, task, result, false); + } + + public static String resolveReferenceName(ObjectReferenceType ref, PageBase page, Task task, OperationResult result, boolean translate) { if (ref == null) { return null; } if (ref.getTargetName() != null) { - return ref.getTargetName().getOrig(); + return translate ? page.getLocalizationService().translate(ref.getTargetName().toPolyString(), page.getLocale(), true) + : ref.getTargetName().getOrig(); } if (StringUtils.isEmpty(ref.getOid()) || ref.getType() == null){ return null; @@ -110,7 +119,7 @@ public static String resolveReferenceName(ObjectReferenceType ref, PageBase page return ref.getOid(); } else { ref.asReferenceValue().setObject(object); - return WebComponentUtil.getName(object); + return WebComponentUtil.getName(object, translate); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java index a56b030bcf7..e6b1c2aa44d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java @@ -109,7 +109,7 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) { add(nameLink); Label nameLinkText = new Label(ID_NAME_TEXT, Model.of(WebComponentUtil.getEffectiveName(referencedObjectModel.getObject(), - AbstractRoleType.F_DISPLAY_NAME))); + AbstractRoleType.F_DISPLAY_NAME, true))); nameLinkText.setOutputMarkupId(true); nameLink.add(nameLinkText); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java index bf46d85dada..3cfa22ec29e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ColumnUtils.java @@ -499,9 +499,9 @@ protected IModel createLinkModel(IModel createLinkModel(IModel> rowModel) { CaseWorkItemType caseWorkItemType = unwrapRowModel(rowModel); CaseType caseType = CaseTypeUtil.getCase(caseWorkItemType); - return Model.of(WebModelServiceUtils.resolveReferenceName(caseType.getTargetRef(), pageBase)); + return Model.of(WebModelServiceUtils.resolveReferenceName(caseType.getTargetRef(), pageBase, true)); } @Override @@ -577,9 +577,10 @@ public void populateItem(Item>> cellItem, String componentId, IModel> rowModel) { - String assignee = WebComponentUtil.getReferencedObjectNames(unwrapRowModel(rowModel).getAssigneeRef(), false); + String assignee = WebComponentUtil.getReferencedObjectNames(unwrapRowModel(rowModel).getAssigneeRef(), false, true); cellItem.add(new Label(componentId, - assignee != null ? assignee : WebComponentUtil.getReferencedObjectNames(unwrapRowModel(rowModel).getCandidateRef(), true))); + assignee != null ? assignee + : WebComponentUtil.getReferencedObjectNames(unwrapRowModel(rowModel).getCandidateRef(), true, true))); } @Override