Skip to content

Commit

Permalink
and more member panel cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Apr 16, 2021
1 parent 829adef commit ba2ad60
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 72 deletions.
Expand Up @@ -4070,6 +4070,7 @@ public static IconType createIconType(String iconStyle, String color) {
return icon;
}

@Contract("_,_,_,null -> null")
public static CompositedIconBuilder getAssignmentRelationIconBuilder(PageBase pageBase, AssignmentObjectRelation relationSpec,
IconType relationIcon, IconType actionButtonIcon) {
CompositedIconBuilder builder = new CompositedIconBuilder();
Expand Down
Expand Up @@ -360,29 +360,23 @@ private LoadableModel<MultiFunctinalButtonDto> createAdditionalButtonsDescriptio
protected MultiFunctinalButtonDto load() {
MultiFunctinalButtonDto multiFunctinalButtonDto = new MultiFunctinalButtonDto();

CompositedIconButtonDto mainButton = new CompositedIconButtonDto();
DisplayType mainButtonDisplayType = getCreateMemberButtonDisplayType();
mainButton.setAdditionalButtonDisplayType(mainButtonDisplayType);

CompositedIconBuilder builder = new CompositedIconBuilder();
Map<IconCssStyle, IconType> layerIcons = WebComponentUtil.createMainButtonLayerIcon(mainButtonDisplayType);
for (Map.Entry<IconCssStyle, IconType> icon : layerIcons.entrySet()) {
builder.appendLayerIcon(icon.getValue(), icon.getKey());
}
mainButton.setCompositedIcon(builder.build());
CompositedIconButtonDto mainButton = createCompositedIconButtonDto(mainButtonDisplayType, null, builder.build());
multiFunctinalButtonDto.setMainButton(mainButton);

List<AssignmentObjectRelation> loadedRelations = loadMemberRelationsList();
List<CompositedIconButtonDto> additionalButtons = new ArrayList<>();
if (CollectionUtils.isNotEmpty(loadedRelations)) {
List<AssignmentObjectRelation> relations = WebComponentUtil.divideAssignmentRelationsByAllValues(loadedRelations);
relations.forEach(relation -> {
CompositedIconButtonDto buttonDto = new CompositedIconButtonDto();
DisplayType additionalButtonDisplayType = WebComponentUtil.getAssignmentObjectRelationDisplayType(getPageBase(), relation,
"abstractRoleMemberPanel.menu.createMember");
buttonDto.setAdditionalButtonDisplayType(additionalButtonDisplayType);
buttonDto.setCompositedIcon(createCompositedIcon(relation, additionalButtonDisplayType));
buttonDto.setAssignmentObjectRelation(relation);
CompositedIconButtonDto buttonDto = createCompositedIconButtonDto(additionalButtonDisplayType, relation, createCompositedIcon(relation, additionalButtonDisplayType));
additionalButtons.add(buttonDto);
});
}
Expand All @@ -395,9 +389,6 @@ protected MultiFunctinalButtonDto load() {
private CompositedIcon createCompositedIcon(AssignmentObjectRelation relation, DisplayType additionalButtonDisplayType) {
CompositedIconBuilder builder = WebComponentUtil.getAssignmentRelationIconBuilder(getPageBase(), relation,
additionalButtonDisplayType.getIcon(), WebComponentUtil.createIconType(GuiStyleConstants.CLASS_ADD_NEW_OBJECT, "green"));
if (builder == null) {
return null;
}
return builder.build();
}

Expand Down Expand Up @@ -425,40 +416,44 @@ private LoadableModel<MultiFunctinalButtonDto> createAssignmentAdditionalButtons
@Override
protected MultiFunctinalButtonDto load() {
MultiFunctinalButtonDto multiFunctinalButtonDto = new MultiFunctinalButtonDto();
CompositedIconButtonDto mainButton = new CompositedIconButtonDto();
DisplayType mainButtonDisplayType = getAssignMemberButtonDisplayType();
mainButton.setAdditionalButtonDisplayType(mainButtonDisplayType);
CompositedIconBuilder mainButtonIconBuilder = new CompositedIconBuilder();
mainButtonIconBuilder.setBasicIcon(WebComponentUtil.getIconCssClass(mainButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(mainButtonDisplayType));
mainButton.setCompositedIcon(mainButtonIconBuilder.build());

CompositedIconButtonDto mainButton = createCompositedIconButtonDto(getAssignMemberButtonDisplayType(), null, null);
multiFunctinalButtonDto.setMainButton(mainButton);

List<CompositedIconButtonDto> additionalAssignmentButtons = new ArrayList<>();
List<AssignmentObjectRelation> assignmentObjectRelations = WebComponentUtil.divideAssignmentRelationsByAllValues(loadMemberRelationsList());
if (assignmentObjectRelations == null) {
return multiFunctinalButtonDto;
}
List<CompositedIconButtonDto> additionalAssignmentButtons = new ArrayList<>();
assignmentObjectRelations.forEach(relation -> {
CompositedIconButtonDto buttonDto = new CompositedIconButtonDto();
buttonDto.setAssignmentObjectRelation(relation);

DisplayType additionalDispayType = WebComponentUtil.getAssignmentObjectRelationDisplayType(AbstractRoleMemberPanel.this.getPageBase(), relation,
"abstractRoleMemberPanel.menu.assignMember");
//TODO null additinalDisplayType
DisplayType additionalDispayType = WebComponentUtil.getAssignmentObjectRelationDisplayType(AbstractRoleMemberPanel.this.getPageBase(),
relation,"abstractRoleMemberPanel.menu.assignMember");
CompositedIconBuilder builder = WebComponentUtil.getAssignmentRelationIconBuilder(AbstractRoleMemberPanel.this.getPageBase(), relation,
additionalDispayType.getIcon(), WebComponentUtil.createIconType(GuiStyleConstants.EVO_ASSIGNMENT_ICON, "green"));
CompositedIcon icon = builder.build();
buttonDto.setAdditionalButtonDisplayType(additionalDispayType);
buttonDto.setCompositedIcon(icon);
CompositedIconButtonDto buttonDto = createCompositedIconButtonDto(additionalDispayType, relation, icon);
additionalAssignmentButtons.add(buttonDto);
});
multiFunctinalButtonDto.setAdditionalButtons(additionalAssignmentButtons);

return multiFunctinalButtonDto;
}
};
}

private CompositedIconButtonDto createCompositedIconButtonDto(DisplayType buttonDisplayType, AssignmentObjectRelation relation, CompositedIcon icon) {
CompositedIconButtonDto compositedIconButtonDto = new CompositedIconButtonDto();
compositedIconButtonDto.setAdditionalButtonDisplayType(buttonDisplayType);
if (icon != null) {
compositedIconButtonDto.setCompositedIcon(icon);
} else {
CompositedIconBuilder mainButtonIconBuilder = new CompositedIconBuilder();
mainButtonIconBuilder.setBasicIcon(WebComponentUtil.getIconCssClass(buttonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(buttonDisplayType));
compositedIconButtonDto.setCompositedIcon(mainButtonIconBuilder.build());
}
compositedIconButtonDto.setAssignmentObjectRelation(relation);
return compositedIconButtonDto;
}

protected UserProfileStorage.TableId getTableId(QName complextType) {
Expand Down Expand Up @@ -624,7 +619,7 @@ private AssignmentCandidatesSpecification loadCandidateSpecification() {
try {
spec = getPageBase().getModelInteractionService()
.determineAssignmentHolderSpecification(obj, result);
} catch (SchemaException | ConfigurationException ex) {
} catch (Throwable ex) {
result.recordPartialError(ex.getLocalizedMessage());
LOGGER.error("Couldn't load member relations list for the object {} , {}", obj.getName(), ex.getLocalizedMessage());
}
Expand Down Expand Up @@ -656,15 +651,7 @@ protected List<QName> getSupportedRelations() {

@Override
protected List<QName> getDefaultRelations() {
List<QName> defaultRelations = new ArrayList<>();
QName defaultRelation = AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation();
if (defaultRelation != null) {
defaultRelations.add(AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation());
} else {
defaultRelations.add(RelationTypes.MEMBER.getRelation());
}
return defaultRelations;

return getDefaultRelationsForActions();
}

@Override
Expand All @@ -673,7 +660,7 @@ protected boolean isFocusTypeSelectorVisible() {
}

protected void okPerformed(QName type, Collection<QName> relations, AjaxRequestTarget target) {
unassignMembersPerformed(type, SearchBoxScopeType.SUBTREE.equals(getMemberPanelStorage().getScopeSearchItem().getDefaultValue())
unassignMembersPerformed(type, getMemberPanelStorage().isSearchScope(SearchBoxScopeType.SUBTREE)
&& QueryScope.ALL.equals(scope) ? QueryScope.ALL_DIRECT : scope, relations, target);
}

Expand Down Expand Up @@ -706,6 +693,17 @@ public int getHeight() {
getPageBase().showMainPopup(chooseTypePopupContent, target);
}

private List<QName> getDefaultRelationsForActions() {
List<QName> defaultRelations = new ArrayList<>();
QName defaultRelation = AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation();
if (defaultRelation != null) {
defaultRelations.add(AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation());
} else {
defaultRelations.add(RelationTypes.MEMBER.getRelation());
}
return defaultRelations;
}

private void deleteMembersPerformed(AjaxRequestTarget target) {
QueryScope scope = getQueryScope();
StringResourceModel confirmModel;
Expand All @@ -732,15 +730,7 @@ protected List<QName> getSupportedRelations() {

@Override
protected List<QName> getDefaultRelations() {
List<QName> defaultRelations = new ArrayList<>();
QName defaultRelation = AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation();
if (defaultRelation != null) {
defaultRelations.add(AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation());
} else {
defaultRelations.add(RelationTypes.MEMBER.getRelation());
}
return defaultRelations;

return getDefaultRelationsForActions();
}

protected void okPerformed(QName type, Collection<QName> relations, AjaxRequestTarget target) {
Expand Down Expand Up @@ -802,15 +792,7 @@ protected List<QName> getSupportedRelations() {

@Override
protected List<QName> getDefaultRelations() {
List<QName> defaultRelations = new ArrayList<>();
QName defaultRelation = AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation();
if (defaultRelation != null) {
defaultRelations.add(AbstractRoleMemberPanel.this.getMemberPanelStorage().getDefaultRelation());
} else {
defaultRelations.add(RelationTypes.MEMBER.getRelation());
}
return defaultRelations;

return getDefaultRelationsForActions();
}

protected void okPerformed(QName type, Collection<QName> relations, AjaxRequestTarget target) {
Expand All @@ -820,10 +802,7 @@ protected void okPerformed(QName type, Collection<QName> relations, AjaxRequestT
target.add(getPageBase().getFeedbackPanel());
return;
}
if (relations == null || relations.isEmpty()) {
getSession().warn("No relation was selected. Cannot create member");
target.add(this);
target.add(getPageBase().getFeedbackPanel());
if (!checkRelationSelected(relations, "No relation was selected. Cannot create member", target)) {
return;
}
AbstractRoleMemberPanel.this.getPageBase().hideMainPopup(target);
Expand Down Expand Up @@ -858,20 +837,24 @@ protected boolean isFocusTypeSelectorVisible() {
}

protected void deleteMembersPerformed(QueryScope scope, Collection<QName> relations, AjaxRequestTarget target) {
if (relations == null || relations.isEmpty()) {
getSession().warn("No relation was selected. Cannot perform delete members");
target.add(this);
target.add(getPageBase().getFeedbackPanel());
if (!checkRelationSelected(relations, "No relation was selected. Cannot perform delete members", target)) {
return;
}
MemberOperationsHelper.deleteMembersPerformed(getPageBase(), scope, getActionQuery(scope, relations), target);
}

private boolean checkRelationSelected(Collection<QName> relations, String message, AjaxRequestTarget target) {
if (CollectionUtils.isNotEmpty(relations)) {
return true;
}
getSession().warn(message);
target.add(this);
target.add(getPageBase().getFeedbackPanel());
return false;
}

protected void unassignMembersPerformed(QName type, QueryScope scope, Collection<QName> relations, AjaxRequestTarget target) {
if (relations == null || relations.isEmpty()) {
getSession().warn("No relation was selected. Cannot perform unassign members");
target.add(this);
target.add(getPageBase().getFeedbackPanel());
if (!checkRelationSelected(relations, "No relation was selected. Cannot perform unassign members", target)) {
return;
}
MemberOperationsHelper.unassignMembersPerformed(getPageBase(), getModelObject(), scope, getActionQuery(scope, relations), relations, type, target);
Expand Down Expand Up @@ -982,8 +965,7 @@ protected void detailsPerformed(ObjectType object) {
}

private Collection<SelectorOptions<GetOperationOptions>> getSearchOptions() {
return SelectorOptions
.createCollection(GetOperationOptions.createDistinct());
return SelectorOptions.createCollection(GetOperationOptions.createDistinct());
}

protected Class<? extends ObjectType> getDefaultObjectType() {
Expand All @@ -1006,9 +988,7 @@ protected MemberPanelStorage getMemberPanelStorage() {
return (MemberPanelStorage) storage;
}


protected String getStorageKeyTabSuffix(){
return "";
}

}

0 comments on commit ba2ad60

Please sign in to comment.