Daniel Erez has uploaded a new change for review.

Change subject: webadmin: Storage main-tab - support column sorting
......................................................................

webadmin: Storage main-tab - support column sorting

Applied 'makeSortable' method to columns that are
supported by search mechanism.

ToDo: implement custom comparators for columns that
are not supported by search (e.g. 'Total Space').

Change-Id: I689c86d2fb0e0b9070434d17aa4977a64d660cc1
Signed-off-by: Daniel Erez <[email protected]>
---
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java
3 files changed, 54 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/27658/1

diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java
index aec46fe..6520e21 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java
@@ -5,41 +5,52 @@
 import org.ovirt.engine.core.common.businessentities.StorageType;
 
 public class StorageDomainFieldAutoCompleter extends 
BaseConditionFieldAutoCompleter {
+    public static final String NAME = "NAME";
+    public static final String STATUS = "STATUS";
+    public static final String DATACENTER = "DATACENTER";
+    public static final String TYPE = "TYPE";
+    public static final String SIZE = "SIZE";
+    public static final String USED = "USED";
+    public static final String COMMITTED = "COMMITTED";
+    public static final String COMMENT = "COMMENT";
+    public static final String DESCRIPTION = "DESCRIPTION";
+
+
     public StorageDomainFieldAutoCompleter() {
         // Building the basic vervs Dict
-        mVerbs.add("NAME");
-        mVerbs.add("STATUS");
-        mVerbs.add("DATACENTER");
-        mVerbs.add("TYPE");
-        mVerbs.add("SIZE");
-        mVerbs.add("USED");
-        mVerbs.add("COMMITTED");
-        mVerbs.add("COMMENT");
-        mVerbs.add("DESCRIPTION");
+        mVerbs.add(NAME);
+        mVerbs.add(STATUS);
+        mVerbs.add(DATACENTER);
+        mVerbs.add(TYPE);
+        mVerbs.add(SIZE);
+        mVerbs.add(USED);
+        mVerbs.add(COMMITTED);
+        mVerbs.add(COMMENT);
+        mVerbs.add(DESCRIPTION);
 
         // Building the autoCompletion Dict
         buildCompletions();
         // Building the types dict
-        getTypeDictionary().put("NAME", String.class);
-        getTypeDictionary().put("STATUS", StorageDomainStatus.class);
-        getTypeDictionary().put("DATACENTER", String.class);
-        getTypeDictionary().put("TYPE", StorageType.class);
-        getTypeDictionary().put("SIZE", Integer.class);
-        getTypeDictionary().put("USED", Integer.class);
-        getTypeDictionary().put("COMMITTED", Integer.class);
-        getTypeDictionary().put("COMMENT", String.class);
-        getTypeDictionary().put("DESCRIPTION", String.class);
+        getTypeDictionary().put(NAME, String.class);
+        getTypeDictionary().put(STATUS, StorageDomainStatus.class);
+        getTypeDictionary().put(DATACENTER, String.class);
+        getTypeDictionary().put(TYPE, StorageType.class);
+        getTypeDictionary().put(SIZE, Integer.class);
+        getTypeDictionary().put(USED, Integer.class);
+        getTypeDictionary().put(COMMITTED, Integer.class);
+        getTypeDictionary().put(COMMENT, String.class);
+        getTypeDictionary().put(DESCRIPTION, String.class);
 
         // building the ColumnName Dict
-        columnNameDict.put("NAME", "storage_name");
-        columnNameDict.put("STATUS", "storage_domain_shared_status");
-        columnNameDict.put("DATACENTER", "storage_pool_name");
-        columnNameDict.put("TYPE", "storage_type");
-        columnNameDict.put("SIZE", "available_disk_size");
-        columnNameDict.put("USED", "used_disk_size");
-        columnNameDict.put("COMMITTED", "commited_disk_size");
-        columnNameDict.put("COMMENT", "storage_comment");
-        columnNameDict.put("DESCRIPTION", "storage_description");
+        columnNameDict.put(NAME, "storage_name");
+        columnNameDict.put(STATUS, "storage_domain_shared_status");
+        columnNameDict.put(DATACENTER, "storage_pool_name");
+        columnNameDict.put(TYPE, "storage_type");
+        columnNameDict.put(SIZE, "available_disk_size");
+        columnNameDict.put(USED, "used_disk_size");
+        columnNameDict.put(COMMITTED, "commited_disk_size");
+        columnNameDict.put(COMMENT, "storage_comment");
+        columnNameDict.put(DESCRIPTION, "storage_description");
 
         // Building the validation dict
         buildBasicValidationTable();
@@ -47,8 +58,8 @@
 
     @Override
     public IAutoCompleter getFieldRelationshipAutoCompleter(String fieldName) {
-        if ("SIZE".equals(fieldName) || "USED".equals(fieldName)
-                || "COMMITTED".equals(fieldName)) {
+        if (SIZE.equals(fieldName) || USED.equals(fieldName)
+                || COMMITTED.equals(fieldName)) {
             return NumericConditionRelationAutoCompleter.INSTANCE;
         } else {
             return StringConditionRelationAutoCompleter.INSTANCE;
@@ -58,10 +69,10 @@
     @Override
     public IConditionValueAutoCompleter getFieldValueAutoCompleter(String 
fieldName) {
         IConditionValueAutoCompleter retval = null;
-        if ("TYPE".equals(fieldName)) {
+        if (TYPE.equals(fieldName)) {
             retval = new EnumValueAutoCompleter(StorageType.class);
         }
-        else if ("STATUS".equals(fieldName)) {
+        else if (STATUS.equals(fieldName)) {
             retval = new 
EnumValueAutoCompleter(StorageDomainSharedStatus.class);
         } else {
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
index ce14753..387d5f6 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
@@ -263,11 +263,16 @@
     @Override
     protected void syncSearch()
     {
-        SearchParameters tempVar = new SearchParameters(getSearchString(), 
SearchType.StorageDomain, isCaseSensitiveSearch());
+        SearchParameters tempVar = new 
SearchParameters(applySortOptions(getSearchString()), SearchType.StorageDomain, 
isCaseSensitiveSearch());
         tempVar.setMaxCount(getSearchPageSize());
         super.syncSearch(VdcQueryType.Search, tempVar);
     }
 
+    @Override
+    public boolean supportsServerSideSorting() {
+        return true;
+    }
+
     private void newDomain()
     {
         if (getWindow() != null)
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java
index 2a06fd1..8e65f7a 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StorageFormatType;
 import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.searchbackend.StorageDomainFieldAutoCompleter;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider;
 import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition;
@@ -55,6 +56,7 @@
                 return object.getStorageName();
             }
         };
+        nameColumn.makeSortable(StorageDomainFieldAutoCompleter.NAME);
         getTable().addColumn(nameColumn, constants.domainNameStorage(), 
"150px"); //$NON-NLS-1$
 
         CommentColumn<StorageDomain> commentColumn = new 
CommentColumn<StorageDomain>();
@@ -74,6 +76,7 @@
                 return object.getStorageType();
             }
         };
+        storageTypeColumn.makeSortable(StorageDomainFieldAutoCompleter.TYPE);
         getTable().addColumn(storageTypeColumn, 
constants.storageTypeStorage(), "150px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<StorageDomain> formatColumn = new 
EnumColumn<StorageDomain, StorageFormatType>() {
@@ -95,6 +98,7 @@
                         }
                     }
                 };
+        
crossDataCenterStatusColumn.makeSortable(StorageDomainFieldAutoCompleter.STATUS);
         getTable().addColumn(crossDataCenterStatusColumn, 
constants.crossDcStatusStorage(), "210px"); //$NON-NLS-1$
 
         StorageSizeColumn<StorageDomain> totalSpaceColumn = new 
StorageSizeColumn<StorageDomain>() {
@@ -113,6 +117,7 @@
                 return (long) availableDiskSize;
             }
         };
+        freeSpaceColumn.makeSortable(StorageDomainFieldAutoCompleter.SIZE);
         getTable().addColumn(freeSpaceColumn, constants.freeSpaceStorage(), 
"130px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<StorageDomain> descriptionColumn = new 
TextColumnWithTooltip<StorageDomain>() {
@@ -121,6 +126,7 @@
                 return object.getDescription();
             }
         };
+        
descriptionColumn.makeSortable(StorageDomainFieldAutoCompleter.DESCRIPTION);
         getTable().addColumn(descriptionColumn, 
constants.domainDescriptionStorage(), "200px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<StorageDomain>(constants.newDomainStorage()) {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I689c86d2fb0e0b9070434d17aa4977a64d660cc1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to