Alexander Wels has uploaded a new change for review.

Change subject: webadmin: cluster sorting
......................................................................

webadmin: cluster sorting

- Implemented sorting in cluster main tab
- Implemented sorting in cluster sub tabs.
- Fixed bug that would cause invalid SQL to be generated
  when sorting.
- Fixed bug that caused sorting to be ignored when
  updating hosts and VMs for clusters.

Change-Id: Ib7b2d9938a7e9b7e32238a284c0ddca6568b3bdc
Signed-off-by: Alexander Wels <[email protected]>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java
11 files changed, 65 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/30124/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
index fa4e9ff..35f80f3 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
@@ -4,7 +4,6 @@
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -187,6 +186,7 @@
                 parameterSource);
     }
 
+    @Override
     public List<VDSGroup> getTrustedClusters() {
         MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
                 .addValue("trusted_service", true);
@@ -327,7 +327,9 @@
         for (VDSGroupHostsAndVMs groupDetail : dataList) {
             
groupsById.get(groupDetail.getVdsGroupId()).setGroupHostsAndVms(groupDetail);
         }
-        return new ArrayList<VDSGroup>(groupsById.values());
+        //The VDS groups have been updated, but we want to keep the order, so 
return the original list which is
+        //in the right order.
+        return vdsGroups;
 
     }
 }
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java
index 76a67fd..9aadd4c 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java
@@ -3,26 +3,31 @@
 import org.ovirt.engine.core.common.businessentities.ArchitectureType;
 
 public class ClusterConditionFieldAutoCompleter extends 
BaseConditionFieldAutoCompleter {
+    public static final String NAME = "NAME";
+    public static final String DESCRIPTION = "DESCRIPTION";
+    public static final String COMMENT = "COMMENT";
+    public static final String ARCHITECTURE = "ARCHITECTURE";
+
     public ClusterConditionFieldAutoCompleter() {
         // Building the basic vervs Dict
-        mVerbs.add("NAME");
-        mVerbs.add("DESCRIPTION");
-        mVerbs.add("COMMENT");
-        mVerbs.add("ARCHITECTURE");
+        mVerbs.add(NAME);
+        mVerbs.add(DESCRIPTION);
+        mVerbs.add(COMMENT);
+        mVerbs.add(ARCHITECTURE);
 
         // Building the autoCompletion Dict
         buildCompletions();
         // Building the types dict
-        getTypeDictionary().put("NAME", String.class);
-        getTypeDictionary().put("DESCRIPTION", String.class);
-        getTypeDictionary().put("COMMENT", String.class);
-        getTypeDictionary().put("ARCHITECTURE", ArchitectureType.class);
+        getTypeDictionary().put(NAME, String.class);
+        getTypeDictionary().put(DESCRIPTION, String.class);
+        getTypeDictionary().put(COMMENT, String.class);
+        getTypeDictionary().put(ARCHITECTURE, ArchitectureType.class);
 
         // building the ColumnName Dict
-        columnNameDict.put("NAME", "name");
-        columnNameDict.put("DESCRIPTION", "description");
-        columnNameDict.put("COMMENT", "free_text_comment");
-        columnNameDict.put("ARCHITECTURE", "architecture");
+        columnNameDict.put(NAME, "name");
+        columnNameDict.put(DESCRIPTION, "description");
+        columnNameDict.put(COMMENT, "free_text_comment");
+        columnNameDict.put(ARCHITECTURE, "architecture");
 
         // Building the validation dict
         buildBasicValidationTable();
@@ -36,7 +41,7 @@
     @Override
     public IConditionValueAutoCompleter getFieldValueAutoCompleter(String 
fieldName) {
         IConditionValueAutoCompleter retval = null;
-        if ("ARCHITECTURE".equals(fieldName)) {
+        if (ARCHITECTURE.equals(fieldName)) {
             retval = new EnumValueAutoCompleter(ArchitectureType.class);
         }
         return retval;
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
index c63833a..93c595c 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
@@ -326,7 +326,7 @@
                             "vds_groups_view",
                             "vds_groups_storage_domain",
                             "vds_group_id",
-                            "name ASC "));
+                            "name ASC"));
                     put(SearchObjects.QUOTA_OBJ_NAME, new EntitySearchInfo(new 
QuotaConditionFieldAutoCompleter(),
                             new QuotaConditionFieldAutoCompleter(),
                             "quota_view",
diff --git 
a/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java
 
b/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java
index 4446133..de677a7 100644
--- 
a/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java
+++ 
b/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java
@@ -5,7 +5,6 @@
 import java.util.Arrays;
 
 import org.junit.Assert;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -280,9 +279,9 @@
         // "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id 
IN (SELECT vds_groups_storage_domain.vds_group_id FROM  
vds_groups_storage_domain  ))  ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0"
         // Current: 1ms
         testValidSql("Cluster: ",
-                "SELECT * FROM ((SELECT vds_groups_view.* FROM  
vds_groups_view  )  ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0");
+                "SELECT * FROM ((SELECT vds_groups_view.* FROM  
vds_groups_view  )  ORDER BY name ASC) as T1 OFFSET (1 -1) LIMIT 0");
         testValidSql("Cluster: storage.name = 111",
-                "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( 
vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM  
vds_groups_storage_domain   LEFT OUTER JOIN storage_domains_with_hosts_view ON 
vds_groups_storage_domain.storage_id=storage_domains_with_hosts_view.id    
WHERE  storage_domains_with_hosts_view.storage_name LIKE 111 ))  ORDER BY name 
ASC ) as T1 OFFSET (1 -1) LIMIT 0");
+                "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( 
vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM  
vds_groups_storage_domain   LEFT OUTER JOIN storage_domains_with_hosts_view ON 
vds_groups_storage_domain.storage_id=storage_domains_with_hosts_view.id    
WHERE  storage_domains_with_hosts_view.storage_name LIKE 111 ))  ORDER BY name 
ASC) as T1 OFFSET (1 -1) LIMIT 0");
     }
 
     @Test
@@ -291,7 +290,7 @@
         // "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id 
IN (SELECT vds_groups_storage_domain.vds_group_id FROM  
vds_groups_storage_domain  ))  ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0"
         // Current: 1ms
         testValidSql("Clusters: ",
-                "SELECT * FROM ((SELECT vds_groups_view.* FROM  
vds_groups_view  )  ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0");
+                "SELECT * FROM ((SELECT vds_groups_view.* FROM  
vds_groups_view  )  ORDER BY name ASC) as T1 OFFSET (1 -1) LIMIT 0");
     }
 
     @Test
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java
index 621bc6c..792902d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java
@@ -286,11 +286,17 @@
     @Override
     protected void syncSearch()
     {
-        SearchParameters tempVar = new SearchParameters(getSearchString(), 
SearchType.Cluster, isCaseSensitiveSearch());
+        SearchParameters tempVar = new 
SearchParameters(applySortOptions(getSearchString()), SearchType.Cluster,
+                isCaseSensitiveSearch());
         tempVar.setMaxCount(getSearchPageSize());
         super.syncSearch(VdcQueryType.Search, tempVar);
     }
 
+    @Override
+    public boolean supportsServerSideSorting() {
+        return true;
+    }
+
     public void newEntity()
     {
         if (getWindow() != null)
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java
index 186094c..4e27fad 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java
@@ -42,7 +42,7 @@
     @Override
     protected void syncSearch()
     {
-        SearchParameters tempVar = new SearchParameters(getSearchString(), 
SearchType.VM);
+        SearchParameters tempVar = new 
SearchParameters(applySortOptions(getSearchString()), SearchType.VM);
         tempVar.setRefresh(getIsQueryFirstTime());
         super.syncSearch(VdcQueryType.Search, tempVar);
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java
index f0bc0ce..87d5b48 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java
@@ -32,6 +32,7 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable();
         getTable().addColumn(nameColumn, constants.nameAffinityGroup(), 
"150px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<AffinityGroup> descColumn = new 
TextColumnWithTooltip<AffinityGroup>() {
@@ -40,6 +41,7 @@
                 return object.getDescription();
             }
         };
+        descColumn.makeSortable();
         getTable().addColumn(descColumn, constants.descriptionAffinityGroup(), 
"150px"); //$NON-NLS-1$
 
         BooleanColumn<AffinityGroup> polarityColumn =
@@ -50,6 +52,7 @@
                 return object.isPositive();
             }
         };
+        polarityColumn.makeSortable();
         getTable().addColumn(polarityColumn, 
constants.polarityAffinityGroup(), "100px"); //$NON-NLS-1$
 
         BooleanColumn<AffinityGroup> enforceColumn =
@@ -60,9 +63,10 @@
                         return object.isEnforcing();
                     }
                 };
+        enforceColumn.makeSortable();
         getTable().addColumn(enforceColumn, constants.enforceAffinityGroup(), 
"100px"); //$NON-NLS-1$
 
-        getTable().addColumn(new TextColumnWithTooltip<AffinityGroup>() {
+        TextColumnWithTooltip<AffinityGroup> membersColumn = new 
TextColumnWithTooltip<AffinityGroup>() {
             @Override
             public String getValue(AffinityGroup object) {
                 String join = join(getEntityNames(object), ", "); //$NON-NLS-1$
@@ -71,7 +75,9 @@
                 }
                 return join;
             }
-        }, constants.membersAffinityGroup(), "500px"); //$NON-NLS-1$
+        };
+        membersColumn.makeSortable();
+        getTable().addColumn(membersColumn, constants.membersAffinityGroup(), 
"500px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<AffinityGroup>(constants.newAffinityGroupLabel()) {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java
index 079d747..1d3677f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java
@@ -4,6 +4,7 @@
 
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
+import org.ovirt.engine.core.searchbackend.ClusterConditionFieldAutoCompleter;
 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;
@@ -25,7 +26,8 @@
 import com.google.gwt.core.client.GWT;
 import com.google.inject.Inject;
 
-public class MainTabClusterView extends 
AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements 
MainTabClusterPresenter.ViewDef {
+public class MainTabClusterView extends 
AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements
+    MainTabClusterPresenter.ViewDef {
 
     interface ViewIdHandler extends ElementIdHandler<MainTabClusterView> {
         ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
@@ -49,6 +51,7 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable(ClusterConditionFieldAutoCompleter.NAME);
         getTable().addColumn(nameColumn, constants.nameCluster(), "150px"); 
//$NON-NLS-1$
 
         CommentColumn<VDSGroup> commentColumn = new CommentColumn<VDSGroup>();
@@ -78,6 +81,7 @@
                 return object.getdescription();
             }
         };
+        
descColumn.makeSortable(ClusterConditionFieldAutoCompleter.DESCRIPTION);
         getTable().addColumn(descColumn, constants.descriptionCluster(), 
"300px"); //$NON-NLS-1$
 
         if (ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
index f649b0f..4252043 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
@@ -41,6 +41,7 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable();
         getTable().addColumn(nameColumn, constants.nameClusterHost(), 
"220px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<VDS> hostColumn = new 
TextColumnWithTooltip<VDS>() {
@@ -49,6 +50,7 @@
                 return object.getHostName();
             }
         };
+        hostColumn.makeSortable();
         getTable().addColumn(hostColumn, constants.hostIpClusterHost(), 
"220px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<VDS> statusColumn = new EnumColumn<VDS, 
VDSStatus>() {
@@ -57,6 +59,7 @@
                 return object.getStatus();
             }
         };
+        statusColumn.makeSortable();
         getTable().addColumn(statusColumn, constants.statusClusterHost(), 
"120px"); //$NON-NLS-1$
 
         if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) {
@@ -67,6 +70,7 @@
                     return 
ConstantsManager.getInstance().getMessages().numberOfVmsForHostsLoad(numOfActiveVMs);
                 }
             };
+            loadColumn.makeSortable();
             getTable().addColumn(loadColumn, constants.loadClusterHost(), 
"120px"); //$NON-NLS-1$
         }
 
@@ -78,6 +82,7 @@
                 }
 
             };
+            consoleColumn.makeSortable();
             getTable().addColumn(consoleColumn, 
constants.overriddenConsoleAddress(), "220px"); //$NON-NLS-1$
         }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java
index 4f350c4..ac8afcc 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java
@@ -71,6 +71,7 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable();
         getTable().addColumn(nameColumn, constants.nameNetwork(), "400px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<Network> statusColumn = new EnumColumn<Network, 
NetworkStatus>() {
@@ -79,6 +80,7 @@
                 return object.getCluster().getStatus();
             }
         };
+        statusColumn.makeSortable();
         getTable().addColumn(statusColumn, constants.statusNetwork(), 
"100px"); //$NON-NLS-1$
 
         SafeHtmlWithSafeHtmlTooltipColumn<Network> roleColumn =
@@ -131,6 +133,7 @@
                 return object.getDescription();
             }
         };
+        descColumn.makeSortable();
         getTable().addColumn(descColumn, constants.descriptionNetwork(), 
"400px"); //$NON-NLS-1$
 
         if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java
index 9c42829..c0bd1f0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
+import org.ovirt.engine.core.searchbackend.VmConditionFieldAutoCompleter;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
 import org.ovirt.engine.ui.common.widget.table.column.EnumColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
@@ -30,7 +31,9 @@
     void initTable(ApplicationConstants constants) {
         getTable().enableColumnResizing();
 
-        getTable().addColumn(new VmStatusColumn(), constants.empty(), "30px"); 
//$NON-NLS-1$
+        VmStatusColumn<VM> statusIconColumn = new VmStatusColumn<VM>();
+        statusIconColumn.makeSortable(VmConditionFieldAutoCompleter.STATUS);
+        getTable().addColumn(statusIconColumn, constants.empty(), "30px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VM> nameColumn = new TextColumnWithTooltip<VM>() 
{
             @Override
@@ -38,9 +41,12 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable(VmConditionFieldAutoCompleter.NAME);
         getTable().addColumn(nameColumn, constants.nameVm(), "220px"); 
//$NON-NLS-1$
 
-        getTable().addColumn(new VmTypeColumn(), constants.empty(), "30px"); 
//$NON-NLS-1$
+        VmTypeColumn typeColumn = new VmTypeColumn();
+        typeColumn.makeSortable(VmConditionFieldAutoCompleter.TYPE);
+        getTable().addColumn(typeColumn, constants.empty(), "30px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VM> statusColumn = new EnumColumn<VM, 
VMStatus>() {
             @Override
@@ -48,6 +54,7 @@
                 return object.getStatus();
             }
         };
+        statusColumn.makeSortable(VmConditionFieldAutoCompleter.STATUS);
         getTable().addColumn(statusColumn, constants.statusVm(), "220px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VM> uptimeColumn = new UptimeColumn<VM>() {
@@ -56,6 +63,7 @@
                 return object.getRoundedElapsedTime();
             }
         };
+        uptimeColumn.makeSortable(VmConditionFieldAutoCompleter.UPTIME);
         getTable().addColumn(uptimeColumn, constants.uptimeVm(), "220px"); 
//$NON-NLS-1$
     }
 


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

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

Reply via email to