Skip to content

Commit

Permalink
some more translations for polystring
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Dec 3, 2019
1 parent 12a406d commit 4a2a7fb
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 19 deletions.
Expand Up @@ -305,8 +305,12 @@ public static String getTypeLocalized(ObjectReferenceType ref) {
}

public static String getReferencedObjectNames(List<ObjectReferenceType> refs, boolean showTypes) {
return getReferencedObjectNames(refs, showTypes, false);
}

public static String getReferencedObjectNames(List<ObjectReferenceType> 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(", "));
}

Expand Down Expand Up @@ -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 <O extends ObjectType> String getEffectiveName(PrismObject<O> object, QName propertyName) {
return getEffectiveName(object, propertyName, false);
}

public static <O extends ObjectType> String getEffectiveName(PrismObject<O> 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 <O extends ObjectType> String getName(ObjectReferenceType ref, PageBase pageBase, String operation) {
Expand Down Expand Up @@ -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());
}
Expand All @@ -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();
}
Expand Down Expand Up @@ -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));
}
Expand All @@ -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));
}
Expand Down Expand Up @@ -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) {
Expand Down
Expand Up @@ -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;
Expand All @@ -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);
}
}

Expand Down
Expand Up @@ -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);

Expand Down
Expand Up @@ -499,9 +499,9 @@ protected IModel<String> createLinkModel(IModel<PrismContainerValueWrapper<CaseW
String name;
AssignmentHolderType object = WebComponentUtil.getObjectFromAddDeltyForCase(caseType);
if (object == null) {
name = WebModelServiceUtils.resolveReferenceName(caseType.getObjectRef(), pageBase);
name = WebModelServiceUtils.resolveReferenceName(caseType.getObjectRef(), pageBase, true);
} else {
name = WebComponentUtil.getEffectiveName(object, AbstractRoleType.F_DISPLAY_NAME);
name = WebComponentUtil.getEffectiveName(object, AbstractRoleType.F_DISPLAY_NAME, true);
}
return Model.of(name);
}
Expand Down Expand Up @@ -543,7 +543,7 @@ public void populateItem(Item<ICellPopulator<PrismContainerValueWrapper<CaseWork
protected IModel<String> createLinkModel(IModel<PrismContainerValueWrapper<CaseWorkItemType>> 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
Expand Down Expand Up @@ -577,9 +577,10 @@ public void populateItem(Item<ICellPopulator<PrismContainerValueWrapper<CaseWork
public void populateItem(Item<ICellPopulator<PrismContainerValueWrapper<CaseWorkItemType>>> cellItem,
String componentId, IModel<PrismContainerValueWrapper<CaseWorkItemType>> 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
Expand Down

0 comments on commit 4a2a7fb

Please sign in to comment.