Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Dec 9, 2019
2 parents ca20dc3 + 7758634 commit cae902c
Show file tree
Hide file tree
Showing 36 changed files with 622 additions and 80 deletions.
Expand Up @@ -15,6 +15,7 @@
<suppress files="[/\\]com[/\\]evolveum[/\\]midpoint[/\\]prism[/\\]delta[/\\]builder[/\\]" checks="TypeName"/>
<suppress files="[/\\]com[/\\]evolveum[/\\]midpoint[/\\]prism[/\\]query[/\\]builder[/\\]" checks="TypeName"/>
<suppress files="[/\\]com[/\\]evolveum[/\\]midpoint[/\\]prism[/\\]impl[/\\]query[/\\]builder[/\\]" checks="TypeName"/>
<suppress files="[/\\]resources[/\\]localization[/\\]Midpoint.*.properties" checks="NewlineAtEndOfFile"/>

<!-- This will be gone anyway. Sooner or later. -->
<suppress files="[/\\]com[/\\]evolveum[/\\]midpoint[/\\]model[/\\]api[/\\]ModelPort.java$" checks="InterfaceIsType"/>
Expand Down
Expand Up @@ -12,6 +12,7 @@
import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.assignment.AssignmentPanel;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -168,11 +169,11 @@ private IModel<String> createHeaderModel() {
sb.append(objectTemplateNameValue);
return Model.of(sb.toString());
}
PrismProperty<String> name = getModelObject().asPrismContainerValue().findProperty(ObjectType.F_NAME);
PrismProperty<PolyString> name = getModelObject().asPrismContainerValue().findProperty(ObjectType.F_NAME);
if (name == null || name.isEmpty()) {
return Model.of("");
}
return Model.of(name.getRealValue());
return Model.of(WebComponentUtil.getTranslatedPolyString(name.getRealValue()));
}

private IModel<String> createIdentifierModel() {
Expand Down
Expand Up @@ -10,6 +10,7 @@
import java.util.List;
import java.util.function.Supplier;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
Expand Down Expand Up @@ -91,9 +92,7 @@ protected IColumn<SelectableBean<O>, String> createNameColumn(IModel<String> col
protected IModel createLinkModel(IModel<SelectableBean<O>> rowModel) {
IModel linkModel = new PropertyModel(rowModel, getPropertyExpression());
if (linkModel.getObject() != null && linkModel.getObject() instanceof PolyStringType){
return Model.of(getPageBase().getLocalizationService().translate(
PolyString.toPolyString((PolyStringType)linkModel.getObject()),
getPageBase().getLocale(), true));
return Model.of(WebComponentUtil.getTranslatedPolyString((PolyStringType)linkModel.getObject()));
}
return linkModel;
}
Expand Down
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, true);
}

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 All @@ -321,10 +325,15 @@ public static String getReferencedObjectDisplayNamesAndNames(List<ObjectReferenc
}

public static String getReferencedObjectDisplayNamesAndNames(Referencable ref, boolean showTypes) {
return getReferencedObjectDisplayNamesAndNames(ref, showTypes, true);
}

public static String getReferencedObjectDisplayNamesAndNames(Referencable ref, boolean showTypes, boolean translate) {
if (ref == null){
return "";
}
String name = ref.getTargetName() == null ? "" : ref.getTargetName().getOrig();
String name = ref.getTargetName() == null ? "" :
(translate ? ref.getTargetName().getOrig() : "");
StringBuilder sb = new StringBuilder(name);
if(showTypes) {
sb.append(" (");
Expand Down Expand Up @@ -1034,7 +1043,7 @@ private static <T> List<DisplayableValue> getDisplayableValues(Collection<T> all
}

public static String getName(ObjectType object) {
return getName(object, false);
return getName(object, true);
}

public static String getName(ObjectType object, boolean translate) {
Expand All @@ -1046,14 +1055,22 @@ public static String getName(ObjectType object, boolean translate) {
}

public static String getEffectiveName(ObjectType object, QName propertyName) {
return getEffectiveName(object, propertyName, true);
}

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, true);
}

public static <O extends ObjectType> String getEffectiveName(PrismObject<O> object, QName propertyName, boolean translate) {
if (object == null) {
return null;
}
Expand All @@ -1065,13 +1082,26 @@ public static <O extends ObjectType> String getEffectiveName(PrismObject<O> obje
if (prop.getDefinition().getTypeName().equals(DOMUtil.XSD_STRING)) {
return (String) realValue;
} else if (realValue instanceof PolyString) {
return WebComponentUtil.getOrigStringFromPoly((PolyString) realValue);
return translate ? getTranslatedPolyString((PolyString) realValue)
: WebComponentUtil.getOrigStringFromPoly((PolyString) realValue);
}
}

PolyString name = getValue(object, ObjectType.F_NAME, PolyString.class);
if (name == null){
return null;
}
return translate ? getTranslatedPolyString(name)
: WebComponentUtil.getOrigStringFromPoly(name);
}

return name != null ? name.getOrig() : null;
public static String getTranslatedPolyString(PolyStringType value){
return getTranslatedPolyString(PolyString.toPolyString(value));
}

public static String getTranslatedPolyString(PolyString value){
MidPointApplication application = MidPointApplication.get();
return application.getLocalizationService().translate(value, getCurrentLocale(), true);
}

public static <O extends ObjectType> String getName(ObjectReferenceType ref, PageBase pageBase, String operation) {
Expand All @@ -1091,7 +1121,12 @@ public static <O extends ObjectType> String getName(ObjectReferenceType ref, Pag
}

public static <O extends ObjectType> String getDisplayNameOrName(ObjectReferenceType ref, PageBase pageBase, String operation) {
String name = getName(ref);
return getDisplayNameOrName(ref, pageBase, operation, true);
}

public static <O extends ObjectType> String getDisplayNameOrName(ObjectReferenceType ref, PageBase pageBase,
String operation, boolean translate) {
String name = getName(ref, translate);
if (StringUtils.isEmpty(name) || name.equals(ref.getOid())) {
String oid = ref.getOid();
Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions
Expand All @@ -1100,26 +1135,31 @@ public static <O extends ObjectType> String getDisplayNameOrName(ObjectReference
PrismObject<O> object = WebModelServiceUtils.loadObject(type, oid, pageBase,
pageBase.createSimpleTask(operation), new OperationResult(operation));
if (object != null) {
name = getDisplayNameOrName(object);
name = getDisplayNameOrName(object, true);
}
}
return name;
}

public static <O extends ObjectType> String getEffectiveName(ObjectReferenceType ref, QName propertyName, PageBase pageBase, String operation) {
public static <O extends ObjectType> String getEffectiveName(ObjectReferenceType ref, QName propertyName,
PageBase pageBase, String operation) {
return getEffectiveName(ref, propertyName, pageBase, operation, true);
}
public static <O extends ObjectType> String getEffectiveName(ObjectReferenceType ref, QName propertyName,
PageBase pageBase, String operation, boolean translate) {
PrismObject<O> object = WebModelServiceUtils.loadObject(ref, pageBase,
pageBase.createSimpleTask(operation), new OperationResult(operation));

if (object == null) {
return "Not Found";
}

return getEffectiveName(object, propertyName);
return getEffectiveName(object, propertyName, translate);

}

public static String getName(ObjectReferenceType ref) {
return getName(ref, false);
return getName(ref, true);
}

public static String getName(ObjectReferenceType ref, boolean translate) {
Expand All @@ -1128,9 +1168,7 @@ public static String getName(ObjectReferenceType ref, boolean translate) {
}
if (ref.getTargetName() != null) {
if (translate){
MidPointApplication application = MidPointApplication.get();
return application.getLocalizationService().translate(PolyString.toPolyString(ref.getTargetName()),
WebComponentUtil.getCurrentLocale(), true);
return getTranslatedPolyString(ref.getTargetName());
}
return getOrigStringFromPoly(ref.getTargetName());
}
Expand All @@ -1141,7 +1179,7 @@ public static String getName(ObjectReferenceType ref, boolean translate) {
}

public static String getName(PrismObject object) {
return getName(object, false);
return getName(object, true);
}

public static String getName(PrismObject object, boolean translate) {
Expand All @@ -1153,8 +1191,7 @@ public static String getName(PrismObject object, boolean translate) {
return null;
}
if (translate){
MidPointApplication application = MidPointApplication.get();
return application.getLocalizationService().translate(name, WebComponentUtil.getCurrentLocale(), true);
return getTranslatedPolyString(name);
}
return name.getOrig();
}
Expand Down Expand Up @@ -1296,7 +1333,7 @@ public static QName normalizeRelation(QName relation) {
}

public static String getDisplayNameOrName(PrismObject object) {
return getDisplayNameOrName(object, false);
return getDisplayNameOrName(object, true);
}

public static String getDisplayNameOrName(PrismObject object, boolean translate) {
Expand All @@ -1309,7 +1346,7 @@ public static String getDisplayNameOrName(PrismObject object, boolean translate)
}

public static String getDisplayNameOrName(ObjectReferenceType ref) {
return getDisplayNameOrName(ref, false);
return getDisplayNameOrName(ref, true);
}

public static String getDisplayNameOrName(ObjectReferenceType ref, boolean translate) {
Expand All @@ -1322,7 +1359,7 @@ public static String getDisplayNameOrName(ObjectReferenceType ref, boolean trans

// <display-name> (<name>) OR simply <name> if there's no display name
private static String getDisplayNameAndName(ObjectReferenceType ref) {
return getDisplayNameOrName(ref, false);
return getDisplayNameOrName(ref, true);
}

private static String getDisplayNameAndName(ObjectReferenceType ref, boolean translate) {
Expand All @@ -1335,28 +1372,24 @@ private static String getDisplayNameAndName(ObjectReferenceType ref, boolean tra
}

public static String getDisplayName(ObjectReferenceType ref) {
return getDisplayName(ref, false);
return getDisplayName(ref, true);
}

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);
return getTranslatedPolyString(ObjectTypeUtil.getDisplayName(ref));
} else {
return PolyString.getOrig(ObjectTypeUtil.getDisplayName(ref));
}
}

public static String getDisplayName(PrismObject object) {
return getDisplayName(object, false);
return getDisplayName(object, true);
}

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);
return getTranslatedPolyString(ObjectTypeUtil.getDisplayName(object));
} else {
return PolyString.getOrig(ObjectTypeUtil.getDisplayName(object));
}
Expand Down Expand Up @@ -1609,7 +1642,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 @@ -41,7 +41,7 @@ public class PrismReferenceWrapperColumnPanel<R extends Referencable> extends Ab

@Override
protected String createLabel(PrismValueWrapper<R, PrismReferenceValue> object) {
return WebComponentUtil.getReferencedObjectDisplayNamesAndNames(object.getRealValue(), false);
return WebComponentUtil.getReferencedObjectDisplayNamesAndNames(object.getRealValue(), false, true);
}

@Override
Expand Down
Expand Up @@ -263,7 +263,7 @@ public static String getName(PrismContainerValueWrapper<AssignmentType> assignme
if (constraints != null && constraints.getExclusion() != null && constraints.getExclusion().size() > 0){
sb.append(pageBase.createStringResource("PolicyConstraintsType.exclusion").getString() + ": ");
constraints.getExclusion().forEach(exclusion -> {
sb.append(WebComponentUtil.getName(exclusion.getTargetRef()));
sb.append(WebComponentUtil.getName(exclusion.getTargetRef(), true));
sb.append("; ");
});
}
Expand All @@ -277,7 +277,7 @@ public static String getName(PrismContainerValueWrapper<AssignmentType> assignme
// account assignment through account construction
ConstructionType construction = assignment.getConstruction();
if (construction.getResourceRef() != null) {
sb.append(WebComponentUtil.getName(construction.getResourceRef()));
sb.append(WebComponentUtil.getName(construction.getResourceRef(), true));
}
return sb.toString();
}
Expand All @@ -299,7 +299,8 @@ public static String getName(PrismContainerValueWrapper<AssignmentType> assignme
}

if (isNotEmptyRef(assignment.getTargetRef())) {
sb.append(WebComponentUtil.getEffectiveName(assignment.getTargetRef(), OrgType.F_DISPLAY_NAME, pageBase, "loadTargetName"));
sb.append(WebComponentUtil.getEffectiveName(assignment.getTargetRef(), OrgType.F_DISPLAY_NAME, pageBase,
"loadTargetName", true));
}

// appendTenantAndOrgName(assignment, pageBase);
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

0 comments on commit cae902c

Please sign in to comment.