Skip to content

Commit

Permalink
MID-3977 some more refactoring
Browse files Browse the repository at this point in the history
# Conflicts:
#	gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java
  • Loading branch information
KaterynaHonchar committed Oct 16, 2018
1 parent d0d12f4 commit 68d8f5b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 97 deletions.
Expand Up @@ -30,9 +30,12 @@
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.TaskCategory;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.search.Search;
import com.evolveum.midpoint.web.component.search.SearchFactory;
import com.evolveum.midpoint.web.page.admin.roles.RoleGovernanceRelationsPanel;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
Expand Down Expand Up @@ -113,11 +116,6 @@ protected enum MemberOperation {
protected List<RelationTypes> relations = new ArrayList<>();
private TableId tableId;

private LoadableModel<List<String>> approverRelationObjectsModel;
private LoadableModel<List<String>> ownerRelationObjectsModel;
private LoadableModel<List<String>> managerRelationObjectsModel;
protected LoadableModel<List<String>> memberRelationObjectsModel;

private boolean areModelsInitialized = false;

public AbstractRoleMemberPanel(String id, TableId tableId, IModel<T> model) {
Expand All @@ -144,7 +142,6 @@ private void initLayout() {

initSearch(form);

loadAllRelationModels();
initMemberTable(form);

initCustomLayout(form, getPageBase());
Expand Down Expand Up @@ -663,68 +660,6 @@ protected Form getFormComponent(){
return (Form) get(ID_FORM);
}

protected void loadAllRelationModels(){
if (approverRelationObjectsModel != null) {
approverRelationObjectsModel.reset();
} else {
initApproverRelationObjectsModel();
}
if (managerRelationObjectsModel != null) {
managerRelationObjectsModel.reset();
} else {
initManagerRelationObjectsModel();
}
if (ownerRelationObjectsModel != null) {
ownerRelationObjectsModel.reset();
} else {
initOwnerRelationObjectsModel();
}
if (memberRelationObjectsModel != null) {
memberRelationObjectsModel.reset();
} else {
initMemberRelationObjectsModel();
}
}

private void initApproverRelationObjectsModel(){
approverRelationObjectsModel = new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
OperationResult result = new OperationResult(OPERATION_LOAD_APPROVER_RELATION_OBJECTS);
return getObjectOidsList(loadMemberObjectsByRelation(result, RelationTypes.APPROVER.getRelation()));
}
};
}

private void initOwnerRelationObjectsModel(){
ownerRelationObjectsModel = new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
OperationResult result = new OperationResult(OPERATION_LOAD_OWNER_RELATION_OBJECTS);
return getObjectOidsList(loadMemberObjectsByRelation(result, RelationTypes.OWNER.getRelation()));
}
};
}

private void initManagerRelationObjectsModel(){
managerRelationObjectsModel = new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
OperationResult result = new OperationResult(OPERATION_LOAD_MANAGER_RELATION_OBJECTS);
return getObjectOidsList(loadMemberObjectsByRelation(result, RelationTypes.MANAGER.getRelation()));
}
};
}

protected void initMemberRelationObjectsModel(){
memberRelationObjectsModel = new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
return new ArrayList<>();
}
};
}

protected List<PrismObject<FocusType>> loadMemberObjectsByRelation(OperationResult result, QName relation){
PrismReferenceValue rv = new PrismReferenceValue(getModelObject().getOid());
rv.setRelation(relation);
Expand All @@ -741,29 +676,31 @@ protected QName[] getMemberRelationQueryItem(){
}

private String getRelationValue(FocusType focusObject){
StringBuilder relations = new StringBuilder();
if (focusObject == null){
return "";
String relation = "";
if (FocusType.class.isAssignableFrom(focusObject.getClass())) {
for (AssignmentType assignmentType : ((FocusType) focusObject).getAssignment()) {
relation = buildRelation(assignmentType, relation);
}
}
return relation;
}

if (approverRelationObjectsModel.getObject().contains(focusObject.getOid())){
relations.append(createStringResource("RelationTypes.APPROVER").getString());
}
if (ownerRelationObjectsModel.getObject().contains(focusObject.getOid())){
relations.append(relations.length() > 0 ? ", " : "");
relations.append(createStringResource("RelationTypes.OWNER").getString());
}
if (managerRelationObjectsModel.getObject().contains(focusObject.getOid())){
relations.append(relations.length() > 0 ? ", " : "");
relations.append(createStringResource("RelationTypes.MANAGER").getString());
}
if (memberRelationObjectsModel.getObject().contains(focusObject.getOid())){
relations.append(relations.length() > 0 ? ", " : "");
relations.append(createStringResource("RelationTypes.MEMBER").getString());
private String buildRelation(AssignmentType assignment, String relation) {
if (assignment.getTargetRef() != null && assignment.getTargetRef().getOid().equals(getModelObject().getOid())) {
QName assignmentRelation = assignment.getTargetRef().getRelation();
for (RelationTypes relationType : RelationTypes.values()) {
if (QNameUtil.match(relationType.getRelation(), assignmentRelation)) {
if (!StringUtils.isBlank(relation)) {
relation += ",";
}
relation += assignmentRelation.getLocalPart();
}
}
}
return relations.toString();
return relation;
}


protected List<String> getObjectOidsList(List<PrismObject<FocusType>> objectList){
List<String> oidsList = new ArrayList<>();
if (objectList == null){
Expand Down
Expand Up @@ -217,17 +217,6 @@ protected void initCustomLayout(Form form, ModelServiceLocator serviceLocator) {
form.addOrReplace(managerContainer);
}

@Override
protected void initMemberRelationObjectsModel(){
memberRelationObjectsModel = new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
OperationResult result = new OperationResult(OPERATION_LOAD_MEMBER_RELATION_OBJECTS);
return getObjectOidsList(loadMemberObjectsByRelation(result, RelationTypes.MEMBER.getRelation()));
}
};
}

private WebMarkupContainer createManagerContainer(ModelServiceLocator serviceLocator) {
WebMarkupContainer managerContainer = new WebMarkupContainer(ID_CONTAINER_MANAGER);
managerContainer.setOutputMarkupId(true);
Expand Down

0 comments on commit 68d8f5b

Please sign in to comment.