Alexander Wels has uploaded a new change for review.

Change subject: webadmin: Quota tab sorting
......................................................................

webadmin: Quota tab sorting

- Implemented sorting on Quota main tab.
  - Only for name and description
- Implemented sorting on Quota sub tabs.
  - Not implemented for VM/Template

Change-Id: I2740a5a15523da95b599de5b7acf688472d6df49
Signed-off-by: Alexander Wels <aw...@redhat.com>
---
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/QuotaConditionFieldAutoCompleter.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextColumnWithEditableTooltip.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaStorageComparator.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaVdsGroupComparator.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabQuotaView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaClusterView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaPermissionView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaStorageView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaUserView.java
10 files changed, 144 insertions(+), 50 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/28440/1

diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/QuotaConditionFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/QuotaConditionFieldAutoCompleter.java
index 0133b61..8934a19 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/QuotaConditionFieldAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/QuotaConditionFieldAutoCompleter.java
@@ -3,21 +3,21 @@
 import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 
 public class QuotaConditionFieldAutoCompleter extends 
BaseConditionFieldAutoCompleter {
-    private static final String name = "NAME";
-    private static final String storagePoolName = "STORAGEPOOLNAME";
-    private static final String description = "DESCRIPTION";
-    private static final String thresholdVdsGroupPercentage = 
"THRESHOLDVDSGROUPPERCENTAGE";
-    private static final String thresholdStoragePercentage = 
"THRESHOLDSTORAGEPERCENTAGE";
-    private static final String graceVdsGrouPercentage = 
"GRACEVDSGROUPPERCENTAGE";
-    private static final String graceStoragePercentage = 
"GRACESTORAGEPERCENTAGE";
+    public static final String NAME = "NAME";
+    public static final String STORAGEPOOLNAME = "STORAGEPOOLNAME";
+    public static final String DESCRIPTION = "DESCRIPTION";
+    public static final String thresholdVdsGroupPercentage = 
"THRESHOLDVDSGROUPPERCENTAGE";
+    public static final String thresholdStoragePercentage = 
"THRESHOLDSTORAGEPERCENTAGE";
+    public static final String graceVdsGrouPercentage = 
"GRACEVDSGROUPPERCENTAGE";
+    public static final String graceStoragePercentage = 
"GRACESTORAGEPERCENTAGE";
 
     private static final String enforcementType = "ENFORCEMENTTYPE";
 
     public QuotaConditionFieldAutoCompleter() {
         // Building the basic verbs dict.
-        mVerbs.add(name);
-        mVerbs.add(storagePoolName);
-        mVerbs.add(description);
+        mVerbs.add(NAME);
+        mVerbs.add(STORAGEPOOLNAME);
+        mVerbs.add(DESCRIPTION);
         mVerbs.add(thresholdStoragePercentage);
         mVerbs.add(thresholdVdsGroupPercentage);
         mVerbs.add(graceStoragePercentage);
@@ -28,9 +28,9 @@
         buildCompletions();
 
         // Building the types dict.
-        getTypeDictionary().put(name, String.class);
-        getTypeDictionary().put(storagePoolName, String.class);
-        getTypeDictionary().put(description, String.class);
+        getTypeDictionary().put(NAME, String.class);
+        getTypeDictionary().put(STORAGEPOOLNAME, String.class);
+        getTypeDictionary().put(DESCRIPTION, String.class);
         getTypeDictionary().put(thresholdStoragePercentage, Integer.class);
         getTypeDictionary().put(thresholdVdsGroupPercentage, Integer.class);
         getTypeDictionary().put(graceStoragePercentage, Integer.class);
@@ -38,9 +38,9 @@
         getTypeDictionary().put(enforcementType, 
QuotaEnforcementTypeEnum.class);
 
         // building the ColumnName dict.
-        columnNameDict.put(name, "quota_name");
-        columnNameDict.put(storagePoolName, "storage_pool_name");
-        columnNameDict.put(description, "description");
+        columnNameDict.put(NAME, "quota_name");
+        columnNameDict.put(STORAGEPOOLNAME, "storage_pool_name");
+        columnNameDict.put(DESCRIPTION, "description");
         columnNameDict.put(thresholdVdsGroupPercentage, 
"threshold_vds_group_percentage");
         columnNameDict.put(thresholdStoragePercentage, 
"threshold_storage_percentage");
         columnNameDict.put(graceStoragePercentage, "grace_storage_percentage");
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextColumnWithEditableTooltip.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextColumnWithEditableTooltip.java
index 86cea09..42838ba 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextColumnWithEditableTooltip.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/TextColumnWithEditableTooltip.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.common.widget.table.column;
 
-import com.google.gwt.user.cellview.client.Column;
 
 /**
  * Column for displaying text using {@link TextCellWithEditableTooltip}.
@@ -8,7 +7,8 @@
  * @param <T>
  *            Table row data type.
  */
-public abstract class TextColumnWithEditableTooltip<T> extends Column<T, 
String> implements ColumnWithElementId {
+public abstract class TextColumnWithEditableTooltip<T> extends 
SortableColumn<T, String>
+    implements ColumnWithElementId {
 
     public TextColumnWithEditableTooltip() {
         super(new TextCellWithEditableTooltip());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaStorageComparator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaStorageComparator.java
new file mode 100644
index 0000000..f6e94d2
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaStorageComparator.java
@@ -0,0 +1,30 @@
+package org.ovirt.engine.ui.uicommonweb.comparators;
+
+import java.util.Comparator;
+
+import org.ovirt.engine.core.common.businessentities.QuotaStorage;
+import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
+
+public class QuotaStorageComparator {
+    private static final LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+    /**
+     * Comparator for the storage name field in {@code QuotaStorage}.
+     */
+    public static final Comparator<QuotaStorage> NAME = new 
Comparator<QuotaStorage>() {
+        @Override
+        public int compare(QuotaStorage quotaStorage1, QuotaStorage 
quotaStorage2) {
+            return lexoNumeric.compare(quotaStorage1.getStorageName(), 
quotaStorage2.getStorageName());
+        }
+    };
+
+    /**
+     * Comparator for the storage name field in {@code QuotaStorage}.
+     */
+    public static final Comparator<QuotaStorage> USED = new 
Comparator<QuotaStorage>() {
+        @Override
+        public int compare(QuotaStorage quotaStorage1, QuotaStorage 
quotaStorage2) {
+            return 
quotaStorage1.getStorageSizeGBUsage().compareTo(quotaStorage2.getStorageSizeGBUsage());
+        }
+    };
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaVdsGroupComparator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaVdsGroupComparator.java
new file mode 100644
index 0000000..29dba33
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/QuotaVdsGroupComparator.java
@@ -0,0 +1,41 @@
+package org.ovirt.engine.ui.uicommonweb.comparators;
+
+import java.util.Comparator;
+
+import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup;
+import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
+
+public class QuotaVdsGroupComparator {
+    private static final LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+    /**
+     * Comparator for the vds group name field in {@code QuotaVdsGroup}.
+     */
+    public static final Comparator<QuotaVdsGroup> NAME = new 
Comparator<QuotaVdsGroup>() {
+        @Override
+        public int compare(QuotaVdsGroup quotaGroup1, QuotaVdsGroup 
quotaGroup2) {
+            return lexoNumeric.compare(quotaGroup1.getVdsGroupName(), 
quotaGroup2.getVdsGroupName());
+        }
+    };
+
+    /**
+     * Comparator for the mem size mb usage field in {@code QuotaVdsGroup}.
+     */
+    public static final Comparator<QuotaVdsGroup> MEM_USAGE = new 
Comparator<QuotaVdsGroup>() {
+        @Override
+        public int compare(QuotaVdsGroup quotaGroup1, QuotaVdsGroup 
quotaGroup2) {
+            return 
quotaGroup1.getMemSizeMBUsage().compareTo(quotaGroup2.getMemSizeMBUsage());
+        }
+    };
+
+    /**
+     * Comparator for the virtual cpu usage field in {@code QuotaVdsGroup}.
+     */
+    public static final Comparator<QuotaVdsGroup> VIRTUAL_CPU_USAGE = new 
Comparator<QuotaVdsGroup>() {
+        @Override
+        public int compare(QuotaVdsGroup quotaGroup1, QuotaVdsGroup 
quotaGroup2) {
+            return 
quotaGroup1.getVirtualCpuUsage().compareTo(quotaGroup2.getVirtualCpuUsage());
+        }
+    };
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
index 785ad18..54fcbaa 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
@@ -131,9 +131,15 @@
 
     @Override
     protected void syncSearch() {
-        SearchParameters tempVar = new SearchParameters(getSearchString(), 
SearchType.Quota, isCaseSensitiveSearch());
+        SearchParameters tempVar = new 
SearchParameters(applySortOptions(getSearchString()), SearchType.Quota,
+                isCaseSensitiveSearch());
         tempVar.setMaxCount(getSearchPageSize());
         super.syncSearch(VdcQueryType.Search, tempVar);
+    }
+
+    @Override
+    public boolean supportsServerSideSorting() {
+        return true;
     }
 
     private void updateActionAvailability() {
@@ -191,7 +197,7 @@
 
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
-                StoragePool selectedDataCenter = (StoragePool) 
qModel.getDataCenter().getSelectedItem();
+                StoragePool selectedDataCenter = 
qModel.getDataCenter().getSelectedItem();
                 if(selectedDataCenter == null){
                     return;
                 }
@@ -271,16 +277,16 @@
             return;
         }
         Quota quota = (Quota) model.getEntity();
-        quota.setQuotaName((String) model.getName().getEntity());
-        quota.setDescription((String) model.getDescription().getEntity());
-        quota.setStoragePoolId(((StoragePool) 
model.getDataCenter().getSelectedItem()).getId());
+        quota.setQuotaName(model.getName().getEntity());
+        quota.setDescription(model.getDescription().getEntity());
+        
quota.setStoragePoolId(model.getDataCenter().getSelectedItem().getId());
 
         quota.setGraceVdsGroupPercentage(model.getGraceClusterAsInteger());
         quota.setGraceStoragePercentage(model.getGraceStorageAsInteger());
         
quota.setThresholdVdsGroupPercentage(model.getThresholdClusterAsInteger());
         
quota.setThresholdStoragePercentage(model.getThresholdStorageAsInteger());
 
-        if ((Boolean) model.getGlobalClusterQuota().getEntity()) {
+        if (model.getGlobalClusterQuota().getEntity()) {
             QuotaVdsGroup quotaVdsGroup;
             for (QuotaVdsGroup iter : (ArrayList<QuotaVdsGroup>) 
model.getQuotaClusters().getItems()) {
                 quota.setGlobalQuotaVdsGroup(new QuotaVdsGroup());
@@ -301,7 +307,7 @@
             quota.setQuotaVdsGroups(quotaClusterList);
         }
 
-        if ((Boolean) model.getGlobalStorageQuota().getEntity()) {
+        if (model.getGlobalStorageQuota().getEntity()) {
             QuotaStorage quotaStorage;
             for (QuotaStorage iter : (ArrayList<QuotaStorage>) 
model.getQuotaStorages().getItems()) {
                 quota.setGlobalQuotaStorage(new QuotaStorage());
@@ -325,7 +331,7 @@
 
         QuotaCRUDParameters parameters = new QuotaCRUDParameters(quota);
         if (isClone) {
-            parameters.setCopyPermissions((Boolean) 
model.getCopyPermissions().getEntity());
+            
parameters.setCopyPermissions(model.getCopyPermissions().getEntity());
             parameters.setQuotaId(quota.getId());
             quota.setId(Guid.Empty);
         }
@@ -349,7 +355,7 @@
 
     private boolean hasUnlimitedSpecificQuota() {
         QuotaModel model = (QuotaModel) getWindow();
-        if ((Boolean)model.getSpecificClusterQuota().getEntity()) {
+        if (model.getSpecificClusterQuota().getEntity()) {
             for (QuotaVdsGroup quotaVdsGroup : (ArrayList<QuotaVdsGroup>) 
model.getAllDataCenterClusters().getItems()) {
                 if 
(QuotaVdsGroup.UNLIMITED_MEM.equals(quotaVdsGroup.getMemSizeMB())
                         || 
QuotaVdsGroup.UNLIMITED_VCPU.equals(quotaVdsGroup.getVirtualCpu())) {
@@ -358,7 +364,7 @@
             }
         }
 
-        if((Boolean)model.getSpecificStorageQuota().getEntity()) {
+        if(model.getSpecificStorageQuota().getEntity()) {
             for (QuotaStorage quotaStorage : (ArrayList<QuotaStorage>) 
model.getAllDataCenterStorages().getItems()) {
                 if 
(QuotaStorage.UNLIMITED.equals(quotaStorage.getStorageSizeGB())) {
                     return true;
@@ -439,7 +445,7 @@
 
                     @Override
                     public void eventRaised(Event ev, Object sender, EventArgs 
args) {
-                        StoragePool selectedDataCenter = (StoragePool) 
qModel.getDataCenter().getSelectedItem();
+                        StoragePool selectedDataCenter = 
qModel.getDataCenter().getSelectedItem();
                         AsyncDataProvider.getClusterList(new AsyncQuery(this, 
new INewAsyncCallback() {
 
                             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabQuotaView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabQuotaView.java
index d3ebe66..b68a5c5 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabQuotaView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabQuotaView.java
@@ -4,6 +4,7 @@
 import org.ovirt.engine.core.common.businessentities.QuotaStorage;
 import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup;
 import org.ovirt.engine.core.common.utils.SizeConverter;
+import org.ovirt.engine.core.searchbackend.QuotaConditionFieldAutoCompleter;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider;
 import org.ovirt.engine.ui.common.widget.renderer.DiskSizeRenderer;
@@ -45,19 +46,23 @@
 
         getTable().addColumn(new QuotaDcStatusColumn(), constants.empty(), 
"30px"); //$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithTooltip<Quota>() {
+        TextColumnWithTooltip<Quota> nameColumn = new 
TextColumnWithTooltip<Quota>() {
             @Override
             public String getValue(Quota object) {
                 return object.getQuotaName() == null ? "" : 
object.getQuotaName(); //$NON-NLS-1$
             }
-        }, constants.nameQuota(), "120px"); //$NON-NLS-1$
+        };
+        nameColumn.makeSortable(QuotaConditionFieldAutoCompleter.NAME);
+        getTable().addColumn(nameColumn, constants.nameQuota(), "120px"); 
//$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithTooltip<Quota>() {
+        TextColumnWithTooltip<Quota> descriptionColumn = new 
TextColumnWithTooltip<Quota>() {
             @Override
             public String getValue(Quota object) {
                 return object.getDescription() == null ? "" : 
object.getDescription(); //$NON-NLS-1$
             }
-        }, constants.descriptionQuota(), "120px"); //$NON-NLS-1$
+        };
+        
descriptionColumn.makeSortable(QuotaConditionFieldAutoCompleter.DESCRIPTION);
+        getTable().addColumn(descriptionColumn, constants.descriptionQuota(), 
"120px"); //$NON-NLS-1$
 
         getTable().addColumn(new QuotaPercentColumn<Quota>() {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaClusterView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaClusterView.java
index 8c94774..e258fec 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaClusterView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaClusterView.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.uicommonweb.comparators.QuotaVdsGroupComparator;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaClusterListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -35,17 +36,17 @@
     private void initTable(final ApplicationConstants constants, final 
ApplicationMessages messages) {
         getTable().enableColumnResizing();
 
-        getTable().addColumn(new TextColumnWithTooltip<QuotaVdsGroup>() {
+        TextColumnWithTooltip<QuotaVdsGroup> nameColumn = new 
TextColumnWithTooltip<QuotaVdsGroup>() {
             @Override
             public String getValue(QuotaVdsGroup object) {
                 return object.getVdsGroupName() == null || 
object.getVdsGroupName().equals("") ?
                         constants.ultQuotaForAllClustersQuotaPopup() : 
object.getVdsGroupName();
             }
-        },
-                constants.nameCluster(),
-                "300px"); //$NON-NLS-1$
+        };
+        nameColumn.makeSortable(QuotaVdsGroupComparator.NAME);
+        getTable().addColumn(nameColumn, constants.nameCluster(), "300px"); 
//$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithTooltip<QuotaVdsGroup>() {
+        TextColumnWithTooltip<QuotaVdsGroup> usedMemColumn = new 
TextColumnWithTooltip<QuotaVdsGroup>() {
             @Override
             public String getValue(QuotaVdsGroup object) {
                 if (object.getMemSizeMB() == null) {
@@ -56,10 +57,11 @@
                     return 
messages.limitedMemConsumption(object.getMemSizeMBUsage(), 
object.getMemSizeMB());
                 }
             }
-        },
-                constants.usedMemoryTotalCluster(), "300px"); //$NON-NLS-1$
+        };
+        usedMemColumn.makeSortable(QuotaVdsGroupComparator.MEM_USAGE);
+        getTable().addColumn(usedMemColumn, 
constants.usedMemoryTotalCluster(), "300px"); //$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithTooltip<QuotaVdsGroup>() {
+        TextColumnWithTooltip<QuotaVdsGroup> virtualCpuColumn = new 
TextColumnWithTooltip<QuotaVdsGroup>() {
             @Override
             public String getValue(QuotaVdsGroup object) {
                 if (object.getVirtualCpu() == null) {
@@ -70,8 +72,9 @@
                     return 
messages.limitedVcpuConsumption(object.getVirtualCpuUsage(), 
object.getVirtualCpu());
                 }
             }
-        },
-                constants.runningCpuTotalCluster(), "300px"); //$NON-NLS-1$
+        };
+        
virtualCpuColumn.makeSortable(QuotaVdsGroupComparator.VIRTUAL_CPU_USAGE);
+        getTable().addColumn(virtualCpuColumn, 
constants.runningCpuTotalCluster(), "300px"); //$NON-NLS-1$
     }
 
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaPermissionView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaPermissionView.java
index 38e3686..25eb174 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaPermissionView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaPermissionView.java
@@ -10,6 +10,7 @@
 import org.ovirt.engine.ui.common.widget.table.column.PermissionTypeColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.comparators.PermissionsComparator;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaPermissionListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -43,6 +44,7 @@
                 return object.getOwnerName();
             }
         };
+        userColumn.makeSortable(PermissionsComparator.OWNER_NAME);
         getTable().addColumn(userColumn, constants.userPermission());
 
         TextColumnWithTooltip<Permissions> roleColumn = new 
TextColumnWithTooltip<Permissions>() {
@@ -51,6 +53,7 @@
                 return object.getRoleName();
             }
         };
+        roleColumn.makeSortable(PermissionsComparator.ROLE_NAME);
         getTable().addColumn(roleColumn, constants.rolePermission());
 
         TextColumnWithTooltip<Permissions> permissionColumn = new 
ObjectNameColumn<Permissions>() {
@@ -61,6 +64,7 @@
                 };
             }
         };
+        permissionColumn.makeSortable(PermissionsComparator.INHERITED);
         getTable().addColumn(permissionColumn, 
constants.inheretedFromPermission());
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<Permissions>(constants.addPermission()) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaStorageView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaStorageView.java
index 0b7fc56..9b6f6c4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaStorageView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaStorageView.java
@@ -11,6 +11,7 @@
 import 
org.ovirt.engine.ui.common.widget.table.column.TextCellWithEditableTooltip;
 import 
org.ovirt.engine.ui.common.widget.table.column.TextColumnWithEditableTooltip;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.uicommonweb.comparators.QuotaStorageComparator;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaStorageListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -42,17 +43,17 @@
     private void initTable(final ApplicationConstants constants, final 
ApplicationMessages messages) {
         getTable().enableColumnResizing();
 
-        getTable().addColumn(new TextColumnWithTooltip<QuotaStorage>() {
+        TextColumnWithTooltip<QuotaStorage> nameColumn = new 
TextColumnWithTooltip<QuotaStorage>() {
             @Override
             public String getValue(QuotaStorage object) {
                 return object.getStorageName() == null || 
object.getStorageName().equals("") ? constants.utlQuotaAllStoragesQuotaPopup()
                         : object.getStorageName();
             }
-        },
-                constants.nameQuotaStorage(),
-                "400px"); //$NON-NLS-1$
+        };
+        nameColumn.makeSortable(QuotaStorageComparator.NAME);
+        getTable().addColumn(nameColumn, constants.nameQuotaStorage(), 
"400px"); //$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithEditableTooltip<QuotaStorage>() 
{
+        TextColumnWithEditableTooltip<QuotaStorage> usedColumn = new 
TextColumnWithEditableTooltip<QuotaStorage>() {
             @Override
             public String getValue(QuotaStorage object) {
                 if (object.getStorageSizeGB() == null) {
@@ -75,7 +76,8 @@
                 
textCellWithEditableTooltip.setTitle(constants.quotaCalculationsMessage());
                 return textCellWithEditableTooltip;
             }
-        },
-                constants.usedStorageTotalQuotaStorage(), "400px"); 
//$NON-NLS-1$
+        };
+        usedColumn.makeSortable(QuotaStorageComparator.USED);
+        getTable().addColumn(usedColumn, 
constants.usedStorageTotalQuotaStorage(), "400px"); //$NON-NLS-1$
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaUserView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaUserView.java
index c29b672..575423e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaUserView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/quota/SubTabQuotaUserView.java
@@ -10,6 +10,7 @@
 import org.ovirt.engine.ui.common.widget.table.column.PermissionTypeColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.comparators.PermissionsComparator;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaUserListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -45,6 +46,7 @@
                 return object.getOwnerName();
             }
         };
+        userColumn.makeSortable(PermissionsComparator.OWNER_NAME);
         getTable().addColumn(userColumn, constants.userUser(), "400px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<Permissions> permissionColumn = new 
ObjectNameColumn<Permissions>() {
@@ -55,6 +57,7 @@
                 };
             }
         };
+        permissionColumn.makeSortable(PermissionsComparator.INHERITED);
         getTable().addColumn(permissionColumn, constants.inheritedFromUser(), 
"400px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<Permissions>(constants.addUser()) {


-- 
To view, visit http://gerrit.ovirt.org/28440
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2740a5a15523da95b599de5b7acf688472d6df49
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alexander Wels <aw...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to