Skip to content

Commit

Permalink
fix for MID-5088 (accounts column in the popup)
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Feb 28, 2019
1 parent 3d0e41d commit 7729666
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 21 deletions.
Expand Up @@ -21,22 +21,26 @@
import com.evolveum.midpoint.prism.query.OrFilter;
import com.evolveum.midpoint.prism.query.RefFilter;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.web.component.data.column.ColumnUtils;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentHolderType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

/**
Expand Down Expand Up @@ -74,6 +78,17 @@ true, getPageBase()) {

private static final long serialVersionUID = 1L;

@Override
protected List<IColumn<SelectableBean<O>, String>> createColumns() {
if (AbstractRoleType.class.isAssignableFrom(getType())){
List<IColumn<SelectableBean<O>, String>> columns = new ArrayList<>();
columns.addAll((Collection)ColumnUtils.getDefaultAbstractRoleColumns(false));
return columns;
} else {
return super.createColumns();
}
}

@Override
protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
onSelectionPerformed(target, rowModel);
Expand Down
Expand Up @@ -342,28 +342,28 @@ public static <T extends ObjectType> List<IColumn<SelectableBean<T>, String>> ge
List<IColumn<SelectableBean<T>, String>> columns = new ArrayList<>();


columns.addAll((Collection)getDefaultAbstractRoleColumns(RoleType.COMPLEX_TYPE));
columns.addAll((Collection)getDefaultAbstractRoleColumns(true));

return columns;
}

public static <T extends ObjectType> List<IColumn<SelectableBean<T>, String>> getDefaultServiceColumns() {
List<IColumn<SelectableBean<T>, String>> columns = new ArrayList<>();

columns.addAll((Collection)getDefaultAbstractRoleColumns(ServiceType.COMPLEX_TYPE));
columns.addAll((Collection)getDefaultAbstractRoleColumns(true));

return columns;
}

public static <T extends ObjectType> List<IColumn<SelectableBean<T>, String>> getDefaultOrgColumns() {
List<IColumn<SelectableBean<T>, String>> columns = new ArrayList<>();

columns.addAll((Collection)getDefaultAbstractRoleColumns(OrgType.COMPLEX_TYPE));
columns.addAll((Collection)getDefaultAbstractRoleColumns(true));

return columns;
}

private static <T extends AbstractRoleType> List<IColumn<SelectableBean<T>, String>> getDefaultAbstractRoleColumns(QName type) {
public static <T extends AbstractRoleType> List<IColumn<SelectableBean<T>, String>> getDefaultAbstractRoleColumns(boolean showAccounts) {

String sortByDisplayName = null;
String sortByIdentifer = null;
Expand All @@ -381,28 +381,30 @@ private static <T extends AbstractRoleType> List<IColumn<SelectableBean<T>, Stri

);
List<IColumn<SelectableBean<T>, String>> columns = createColumns(columnsDefs);

IColumn<SelectableBean<T>, String> column = new AbstractExportableColumn<SelectableBean<T>, String>(
createStringResource("pageUsers.accounts")) {

@Override
public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
String componentId, IModel<SelectableBean<T>> model) {
cellItem.add(new Label(componentId,
model.getObject().getValue() != null ?
model.getObject().getValue().getLinkRef().size() : null));
}
if (showAccounts) {
IColumn<SelectableBean<T>, String> column = new AbstractExportableColumn<SelectableBean<T>, String>(
createStringResource("pageUsers.accounts")) {

@Override
public IModel<String> getDataModel(IModel<SelectableBean<T>> rowModel) {
return Model.of(rowModel.getObject().getValue() != null ?
Integer.toString(rowModel.getObject().getValue().getLinkRef().size()) : "");
}
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
String componentId, IModel<SelectableBean<T>> model) {
cellItem.add(new Label(componentId,
model.getObject().getValue() != null ?
model.getObject().getValue().getLinkRef().size() : null));
}

@Override
public IModel<String> getDataModel(IModel<SelectableBean<T>> rowModel) {
return Model.of(rowModel.getObject().getValue() != null ?
Integer.toString(rowModel.getObject().getValue().getLinkRef().size()) : "");
}

};

columns.add(column);
};

columns.add(column);
}
return columns;

}
Expand Down

0 comments on commit 7729666

Please sign in to comment.