Skip to content

Commit

Permalink
improvements for display type of assign buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Apr 25, 2019
1 parent 10125c4 commit 3b9f0bb
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 38 deletions.
Expand Up @@ -64,6 +64,7 @@
import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty;
import com.evolveum.midpoint.prism.util.PolyStringUtils;
import com.evolveum.midpoint.schema.*;
import com.evolveum.midpoint.schema.constants.RelationTypes;
import com.evolveum.midpoint.schema.processor.ResourceSchema;
import com.evolveum.midpoint.schema.util.LocalizationUtil;
import com.evolveum.midpoint.task.api.Task;
Expand Down Expand Up @@ -3477,18 +3478,13 @@ public static List<AssignmentObjectRelation> divideAssignmentRelationsByAllValue
return resultList;
}

public static DisplayType getAssignmentObjectRelationDisplayType(PageBase pageBase, AssignmentObjectRelation assignmentTargetRelation, String defaultTitle){
public static DisplayType getAssignmentObjectRelationDisplayType(PageBase pageBase, AssignmentObjectRelation assignmentTargetRelation,
String defaultTitleKey){
if (assignmentTargetRelation == null){
return createDisplayType("", "", defaultTitle);
}
QName relation = !CollectionUtils.isEmpty(assignmentTargetRelation.getRelations()) ?
assignmentTargetRelation.getRelations().get(0) : null;
StringBuilder titleValue = new StringBuilder();
titleValue.append(defaultTitle);
if (relation != null) {
titleValue.append(" " + relation.getLocalPart());
titleValue.append(" " + pageBase.createStringResource("roleMemberPanel.relation").getString().toLowerCase());
return createDisplayType("", "", pageBase.createStringResource(defaultTitleKey, "", "").getString());
}

String typeTitle = "";
if (CollectionUtils.isNotEmpty(assignmentTargetRelation.getArchetypeRefs())){
OperationResult result = new OperationResult(pageBase.getClass().getSimpleName() + "." + "loadArchetypeObject");
try {
Expand All @@ -3497,12 +3493,12 @@ public static DisplayType getAssignmentObjectRelationDisplayType(PageBase pageBa
if (archetype != null) {
DisplayType archetypeDisplayType = archetype.getArchetypePolicy() != null ? archetype.getArchetypePolicy().getDisplay() : null;
String archetypeTooltip = archetypeDisplayType != null && archetypeDisplayType.getLabel() != null &&
StringUtils.isNotEmpty(archetypeDisplayType.getLabel().getNorm()) ?
archetypeDisplayType.getLabel().getNorm() :
(archetype.getName() != null && StringUtils.isNotEmpty(archetype.getName().getNorm()) ?
archetype.getName().getNorm() : null);
titleValue.append(StringUtils.isNotEmpty(archetypeTooltip) ? (" " + archetypeTooltip + " " +
pageBase.createStringResource("abstractRoleMemberPanel.type").getString().toLowerCase()) : "");
StringUtils.isNotEmpty(archetypeDisplayType.getLabel().getOrig()) ?
archetypeDisplayType.getLabel().getOrig() :
(archetype.getName() != null && StringUtils.isNotEmpty(archetype.getName().getOrig()) ?
archetype.getName().getOrig() : null);
typeTitle = StringUtils.isNotEmpty(archetypeTooltip) ?
pageBase.createStringResource("abstractRoleMemberPanel.withType", archetypeTooltip).getString() : "";
}
} catch (Exception ex){
LOGGER.error("Couldn't load archetype object. " + ex.getLocalizedMessage());
Expand All @@ -3511,26 +3507,45 @@ public static DisplayType getAssignmentObjectRelationDisplayType(PageBase pageBa
QName type = !CollectionUtils.isEmpty(assignmentTargetRelation.getObjectTypes()) ?
assignmentTargetRelation.getObjectTypes().get(0) : null;
String typeName = type != null ? pageBase.createStringResource("ObjectTypeLowercase." + type.getLocalPart()).getString() : null;
titleValue.append(StringUtils.isNotEmpty(typeName) ? (" " + typeName + " " +
pageBase.createStringResource("abstractRoleMemberPanel.type").getString().toLowerCase()) : "");
typeTitle = StringUtils.isNotEmpty(typeName) ?
pageBase.createStringResource("abstractRoleMemberPanel.withType", typeName).getString() : "";
}


QName relation = !CollectionUtils.isEmpty(assignmentTargetRelation.getRelations()) ?
assignmentTargetRelation.getRelations().get(0) : null;

String relationValue = "";
String relationTitle = "";
if (relation != null){
RelationDefinitionType def = WebComponentUtil.getRelationDefinition(relation);
if (def != null){
DisplayType displayType = def.getDisplay();

if (displayType == null || displayType.getIcon() == null){
displayType = createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green", titleValue.toString());
if (displayType == null){
displayType = new DisplayType();
}
if (displayType.getLabel() != null && StringUtils.isNotEmpty(displayType.getLabel().getOrig())){
relationValue = pageBase.createStringResource(displayType.getLabel().getOrig()).getString();
} else {
String relationKey = "RelationTypes." + RelationTypes.getRelationTypeByRelationValue(relation);
relationValue = pageBase.createStringResource(relationValue).getString();
if (relationKey.equals(relationValue)){
relationValue = relation.getLocalPart();
}
}
if (PolyStringUtils.isEmpty(displayType.getTooltip())){
displayType.setTooltip(createPolyFromOrigString(titleValue.toString()));

relationTitle = pageBase.createStringResource("abstractRoleMemberPanel.withRelation", relationValue).getString();


if (displayType.getIcon() == null){
displayType = createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green",
pageBase.createStringResource(defaultTitleKey, typeTitle, relationTitle).getString());
}
displayType.setTooltip(createPolyFromOrigString(pageBase.createStringResource(defaultTitleKey, typeTitle, relationTitle).getString()));
return displayType;
}
}
return createDisplayType("", "", titleValue.toString());
return createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green", pageBase.createStringResource(defaultTitleKey, typeTitle, relationTitle).getString());
}

public static void saveTask(PrismObject<TaskType> oldTask, OperationResult result, PageBase pageBase){
Expand Down
Expand Up @@ -176,14 +176,13 @@ protected CompositedIconBuilder getAdditionalIconBuilder(AssignmentObjectRelatio
protected DisplayType getNewObjectButtonDisplayType() {
return WebComponentUtil.createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green",
AssignmentPanel.this.createStringResource(isInducement() ?
"AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle").getString());
"AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle", "", "").getString());
}

@Override
protected DisplayType getNewObjectAdditionalButtonDisplayType(AssignmentObjectRelation assignmentTargetRelation) {
return WebComponentUtil.getAssignmentObjectRelationDisplayType(AssignmentPanel.this.getPageBase(), assignmentTargetRelation,
AssignmentPanel.this.createStringResource(isInducement() ?
"AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle").getString());
isInducement() ? "AssignmentPanel.newInducementTitle" : "AssignmentPanel.newAssignmentTitle");
}

@Override
Expand Down
Expand Up @@ -227,7 +227,7 @@ protected List<AssignmentObjectRelation> getNewObjectInfluencesList() {
@Override
protected DisplayType getNewObjectButtonAdditionalDisplayType(AssignmentObjectRelation relationSpec){
return WebComponentUtil.getAssignmentObjectRelationDisplayType(AbstractRoleMemberPanel.this.getPageBase(), relationSpec,
createStringResource("abstractRoleMemberPanel.menu.createMember").getString());
"abstractRoleMemberPanel.menu.createMember");
}

@Override
Expand All @@ -238,7 +238,7 @@ protected DisplayType getNewObjectButtonSpecialDisplayType(){
@Override
protected DisplayType getNewObjectButtonStandardDisplayType(){
return WebComponentUtil.createDisplayType(GuiStyleConstants.CLASS_ADD_NEW_OBJECT, "green",
createStringResource("abstractRoleMemberPanel.menu.createMember").getString());
createStringResource("abstractRoleMemberPanel.menu.createMember", "", "").getString());
}

@Override
Expand Down Expand Up @@ -278,7 +278,7 @@ protected DisplayType getMainButtonDisplayType(){
@Override
protected DisplayType getAdditionalButtonDisplayType(AssignmentObjectRelation assignmentTargetRelation){
return WebComponentUtil.getAssignmentObjectRelationDisplayType(AbstractRoleMemberPanel.this.getPageBase(), assignmentTargetRelation,
createStringResource("abstractRoleMemberPanel.menu.assignMember").getString());
"abstractRoleMemberPanel.menu.assignMember");
}

@Override
Expand Down Expand Up @@ -367,12 +367,12 @@ protected QName getComplexTypeQName() {

private DisplayType getCreateMemberButtonDisplayType(){
return WebComponentUtil.createDisplayType(GuiStyleConstants.CLASS_ADD_NEW_OBJECT, "green",
AbstractRoleMemberPanel.this.createStringResource("abstractRoleMemberPanel.menu.createMember").getString());
AbstractRoleMemberPanel.this.createStringResource("abstractRoleMemberPanel.menu.createMember", "", "").getString());
}

private DisplayType getAssignMemberButtonDisplayType(){
return WebComponentUtil.createDisplayType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green",
AbstractRoleMemberPanel.this.createStringResource("abstractRoleMemberPanel.menu.assignMember").getString());
AbstractRoleMemberPanel.this.createStringResource("abstractRoleMemberPanel.menu.assignMember", "", "").getString());
}

private List<InlineMenuItem> createRowActions() {
Expand Down
Expand Up @@ -3520,7 +3520,7 @@ chooseMemberForOrgPopup.otherTypesLabel=Others
AssignmentPanel.newAssignmentParameters=Parameters
AssignmentPanel.allLabel=All
AssignmentPanel.viewTargetObject=View target object
AssignmentPanel.newAssignmentTitle=New assignment
AssignmentPanel.newAssignmentTitle=New {0} assignment {1}
AssignmentPanel.newInducementTitle=New inducement
SearchPanel.more=More...
SearchPanel.add=Add
Expand Down Expand Up @@ -4292,8 +4292,10 @@ chooseFocusTypeAndRelationDialogPanel.relation=Relation:
chooseFocusTypeAndRelationDialogPanel.type=Type
chooseFocusTypeAndRelationDialogPanel.tooltip.type=Assignment holder/target object type
abstractRoleMemberPanel.menu.assign=Assign
abstractRoleMemberPanel.menu.assignMember=Assign member
abstractRoleMemberPanel.menu.createMember=Create member
abstractRoleMemberPanel.menu.assignMember=Assign {0} member {1}
abstractRoleMemberPanel.menu.createMember=Create {0} member {1}
abstractRoleMemberPanel.withRelation=with {0} relation
abstractRoleMemberPanel.withType={0} type
abstractRoleMemberPanel.menu.unassign=Unassign
abstractRoleMemberPanel.menu.recompute=Recompute
abstractRoleMemberPanel.menu.create=Create
Expand Down
Expand Up @@ -3509,7 +3509,7 @@ chooseMemberForOrgPopup.otherTypesLabel=Others
AssignmentPanel.newAssignmentParameters=Parameters
AssignmentPanel.allLabel=All
AssignmentPanel.viewTargetObject=View target object
AssignmentPanel.newAssignmentTitle=New 'assignment' constraint
AssignmentPanel.newAssignmentTitle=New {0} assignment {1}
AssignmentPanel.newInducementTitle=New inducement
SearchPanel.more=More...
SearchPanel.add=Add
Expand Down Expand Up @@ -4248,8 +4248,10 @@ chooseFocusTypeAndRelationDialogPanel.relation=Relation:
chooseFocusTypeAndRelationDialogPanel.type=Type
chooseFocusTypeAndRelationDialogPanel.tooltip.type=Assignment holder/target object type
abstractRoleMemberPanel.menu.assign=Assign
abstractRoleMemberPanel.menu.assignMember=Assign member
abstractRoleMemberPanel.menu.createMember=Create member
abstractRoleMemberPanel.menu.assignMember=Assign {0} member {1}
abstractRoleMemberPanel.menu.createMember=Create {0} member {1}
abstractRoleMemberPanel.withRelation=with {0} relation
abstractRoleMemberPanel.withType={0} type
abstractRoleMemberPanel.menu.unassign=Unassign
abstractRoleMemberPanel.menu.recompute=Recompute
abstractRoleMemberPanel.menu.create=Create
Expand Down
Expand Up @@ -16,6 +16,7 @@

package com.evolveum.midpoint.schema.constants;

import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AreaCategoryType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RelationKindType;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -92,4 +93,13 @@ public AreaCategoryType[] getCategories() {
public String getDefaultIconStyle() {
return defaultIconStyle;
}

public static RelationTypes getRelationTypeByRelationValue(QName relation){
for (RelationTypes relationType : values()) {
if (relationType.getRelation().equals(relation)) {
return relationType;
}
}
return null;
}
}

0 comments on commit 3b9f0bb

Please sign in to comment.