Lior Vernia has uploaded a new change for review. Change subject: webadmin: Render Permissions subtab columns sortable ......................................................................
webadmin: Render Permissions subtab columns sortable Implemented client-side sorting for permissions subtab column. Change-Id: Ib98e8b1f98d00d06e85fd139cd5b6ef3cb5f8c92 Signed-off-by: Lior Vernia <lver...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionWithInheritedPermissionListModelTable.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/PermissionsComparator.java 3 files changed, 71 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/28666/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java index 665fb12..95acead 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java @@ -9,6 +9,7 @@ import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundTableWidget; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.PermissionsComparator; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; import com.google.gwt.event.shared.EventBus; @@ -25,7 +26,9 @@ public void initTable(CommonApplicationConstants constants) { getTable().enableColumnResizing(); - getTable().addColumn(new PermissionTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ + PermissionTypeColumn permissionTypeColumn = new PermissionTypeColumn(); + permissionTypeColumn.makeSortable(new PermissionsComparator.ByType()); + getTable().addColumn(permissionTypeColumn, constants.empty(), "30px"); //$NON-NLS-1$ TextColumnWithTooltip<Permissions> userColumn = new TextColumnWithTooltip<Permissions>() { @Override @@ -33,6 +36,7 @@ return object.getOwnerName(); } }; + userColumn.makeSortable(new PermissionsComparator.ByUser()); getTable().addColumn(userColumn, constants.userPermission(), "300px"); //$NON-NLS-1$ TextColumnWithTooltip<Permissions> roleColumn = new TextColumnWithTooltip<Permissions>() { @@ -41,6 +45,7 @@ return object.getRoleName(); } }; + roleColumn.makeSortable(new PermissionsComparator.ByRole()); getTable().addColumn(roleColumn, constants.rolePermission(), "300px"); //$NON-NLS-1$ getTable().addActionButton(new UiCommandButtonDefinition<Permissions>(getEventBus(), constants.addPermission()) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionWithInheritedPermissionListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionWithInheritedPermissionListModelTable.java index 373fa77..95344ba 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionWithInheritedPermissionListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionWithInheritedPermissionListModelTable.java @@ -6,6 +6,7 @@ import org.ovirt.engine.ui.common.uicommon.model.SearchableTableModelProvider; import org.ovirt.engine.ui.common.widget.table.column.ObjectNameColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.comparators.PermissionsComparator; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; import com.google.gwt.event.shared.EventBus; @@ -30,6 +31,7 @@ }; } }; + permissionColumn.makeSortable(new PermissionsComparator.ByInheritedPermission(permissionColumn)); getTable().addColumn(permissionColumn, constants.inheritedPermission(), "300px"); //$NON-NLS-1$ } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/PermissionsComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/PermissionsComparator.java new file mode 100644 index 0000000..ba7a7b4 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/PermissionsComparator.java @@ -0,0 +1,63 @@ +package org.ovirt.engine.ui.uicommonweb.comparators; + +import java.util.Comparator; + +import org.ovirt.engine.core.common.businessentities.Permissions; +import org.ovirt.engine.core.common.businessentities.RoleType; +import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; + +import com.google.gwt.user.cellview.client.Column; + +public class PermissionsComparator { + + public static class ByType implements Comparator<Permissions> { + + @Override + public int compare(Permissions arg0, Permissions arg1) { + if (arg0.getRoleType() != arg1.getRoleType()) { + if (arg0.getRoleType() == RoleType.ADMIN) { + return -1; + } else if (arg1.getRoleType() == RoleType.ADMIN) { + return 1; + } + } + return 0; + } + } + + public static class ByUser implements Comparator<Permissions> { + + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + @Override + public int compare(Permissions arg0, Permissions arg1) { + return lexoNumeric.compare(arg0.getOwnerName(), arg1.getOwnerName()); + } + } + + public static class ByRole implements Comparator<Permissions> { + + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + @Override + public int compare(Permissions arg0, Permissions arg1) { + return lexoNumeric.compare(arg0.getRoleName(), arg1.getRoleName()); + } + } + + public static class ByInheritedPermission implements Comparator<Permissions> { + + private final Column<Permissions, String> renderingColumn; + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + public ByInheritedPermission(Column<Permissions, String> column) { + this.renderingColumn = column; + } + + @Override + public int compare(Permissions arg0, Permissions arg1) { + return lexoNumeric.compare(renderingColumn.getValue(arg0), renderingColumn.getValue(arg1)); + } + } + +} -- To view, visit http://gerrit.ovirt.org/28666 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib98e8b1f98d00d06e85fd139cd5b6ef3cb5f8c92 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <lver...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches