Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Render Network/Templates subtab columns sortable
......................................................................

webadmin: Render Network/Templates subtab columns sortable

Implemented client-side sorting for the aforementioned columns.

Change-Id: I9d230e7a62ef5132a5a1bfb7eac915f48453c608
Signed-off-by: Lior Vernia <[email protected]>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java
3 files changed, 79 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/55/28555/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java
new file mode 100644
index 0000000..152c66f
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java
@@ -0,0 +1,57 @@
+package org.ovirt.engine.ui.uicommonweb.comparators;
+
+import java.util.Comparator;
+
+import org.ovirt.engine.core.common.businessentities.VmTemplate;
+import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.common.utils.PairQueryable;
+
+public class InterfaceTemplateComparator {
+
+    public static class ByName implements 
Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> {
+
+        private LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+        @Override
+        public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0,
+                PairQueryable<VmNetworkInterface, VmTemplate> arg1) {
+            return lexoNumeric.compare(arg0.getSecond().getName(), 
arg1.getSecond().getName());
+        }
+    }
+
+    public static class ByStatus implements 
Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> {
+
+        private LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+        @Override
+        public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0,
+                PairQueryable<VmNetworkInterface, VmTemplate> arg1) {
+            return 
lexoNumeric.compare(arg0.getSecond().getStatus().toString(), 
arg1.getSecond().getStatus().toString());
+        }
+    }
+
+    public static class ByCluster implements 
Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> {
+
+        private LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+        @Override
+        public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0,
+                PairQueryable<VmNetworkInterface, VmTemplate> arg1) {
+            return lexoNumeric.compare(arg0.getSecond().getVdsGroupName(), 
arg1.getSecond().getVdsGroupName());
+        }
+    }
+
+    public static class ByInterfaceName implements 
Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> {
+
+        InterfaceComparator.ByInterfaceName<VmNetworkInterface> 
interfaceComparator =
+                new InterfaceComparator.ByInterfaceName<VmNetworkInterface>();
+
+        @Override
+        public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0,
+                PairQueryable<VmNetworkInterface, VmTemplate> arg1) {
+            return interfaceComparator.compare(arg0, arg1);
+        }
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java
index d6a595e..49242fe 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java
@@ -2,9 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Comparator;
-import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.network.NetworkView;
@@ -22,7 +20,6 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.vms.RemoveVmTemplateInterfaceModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 
-@SuppressWarnings("unused")
 public class NetworkTemplateListModel extends SearchableListModel
 {
     private UICommand removeCommand;
@@ -42,6 +39,21 @@
         
setTitle(ConstantsManager.getInstance().getConstants().templatesTitle());
         setHelpTag(HelpTag.templates);
         setHashName("templates"); //$NON-NLS-1$
+        setComparator(new Comparator<PairQueryable<VmNetworkInterface, 
VmTemplate>>() {
+
+                @Override
+                public int compare(PairQueryable<VmNetworkInterface, 
VmTemplate> paramT1,
+                        PairQueryable<VmNetworkInterface, VmTemplate> paramT2) 
{
+                    int compareValue =
+                            
paramT1.getSecond().getVdsGroupName().compareTo(paramT2.getSecond().getVdsGroupName());
+
+                    if (compareValue != 0) {
+                        return compareValue;
+                    }
+
+                    return 
paramT1.getSecond().getName().compareTo(paramT2.getSecond().getName());
+                }
+            });
 
         setRemoveCommand(new UICommand("Remove", this)); //$NON-NLS-1$
         updateActionAvailability();
@@ -75,30 +87,6 @@
     }
 
     @Override
-    public void setItems(Collection value) {
-        if (value != null) {
-            List<PairQueryable<VmNetworkInterface, VmTemplate>> itemList =
-                    (List<PairQueryable<VmNetworkInterface, VmTemplate>>) 
value;
-            Collections.sort(itemList, new 
Comparator<PairQueryable<VmNetworkInterface, VmTemplate>>() {
-
-                @Override
-                public int compare(PairQueryable<VmNetworkInterface, 
VmTemplate> paramT1,
-                        PairQueryable<VmNetworkInterface, VmTemplate> paramT2) 
{
-                    int compareValue =
-                            
paramT1.getSecond().getVdsGroupName().compareTo(paramT2.getSecond().getVdsGroupName());
-
-                    if (compareValue != 0) {
-                        return compareValue;
-                    }
-
-                    return 
paramT1.getSecond().getName().compareTo(paramT2.getSecond().getName());
-                }
-            });
-        }
-        super.setItems(value);
-    }
-
-    @Override
     public void search()
     {
         if (getEntity() != null)
@@ -121,7 +109,7 @@
             @Override
             public void onSuccess(Object model, Object ReturnValue)
             {
-                
NetworkTemplateListModel.this.setItems((List<PairQueryable<VmNetworkInterface, 
VmTemplate>>) ((VdcQueryReturnValue) ReturnValue).getReturnValue());
+                setItems((Collection<PairQueryable<VmNetworkInterface, 
VmTemplate>>) ((VdcQueryReturnValue) ReturnValue).getReturnValue());
             }
         };
 
@@ -157,7 +145,7 @@
             return;
         }
 
-        List<VmNetworkInterface> vnics = new ArrayList<VmNetworkInterface>();
+        ArrayList<VmNetworkInterface> vnics = new 
ArrayList<VmNetworkInterface>();
         for (Object item : getSelectedItems())
         {
             PairQueryable<VmNetworkInterface, VmTemplate> pair = 
(PairQueryable<VmNetworkInterface, VmTemplate>) item;
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java
index 7557d62..386f053 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java
@@ -12,6 +12,7 @@
 import org.ovirt.engine.ui.common.widget.table.column.EnumColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.comparators.InterfaceTemplateComparator;
 import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.networks.NetworkTemplateListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -45,6 +46,7 @@
                 return object.getSecond().getName();
             }
         };
+        nameColumn.makeSortable(new InterfaceTemplateComparator.ByName());
         getTable().addColumn(nameColumn, constants.nameTemplate(), "400px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> 
statusColumn = new EnumColumn<PairQueryable<VmNetworkInterface, VmTemplate>, 
VmTemplateStatus>() {
@@ -53,6 +55,7 @@
                 return object.getSecond().getStatus();
             }
         };
+        statusColumn.makeSortable(new InterfaceTemplateComparator.ByStatus());
         getTable().addColumn(statusColumn, constants.statusTemplate(), 
"100px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> 
clusterColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, 
VmTemplate>>() {
@@ -61,6 +64,7 @@
                 return object.getSecond().getVdsGroupName();
             }
         };
+        clusterColumn.makeSortable(new 
InterfaceTemplateComparator.ByCluster());
         getTable().addColumn(clusterColumn, constants.clusterTemplate(), 
"150px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> 
vnicNameColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, 
VmTemplate>>() {
@@ -69,6 +73,7 @@
                 return object.getFirst().getName();
             }
         };
+        vnicNameColumn.makeSortable(new 
InterfaceTemplateComparator.ByInterfaceName());
         getTable().addColumn(vnicNameColumn, constants.vnicNetworkTemplate(), 
"150px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<PairQueryable<VmNetworkInterface, 
VmTemplate>>(constants.removeInterface()) {


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

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

Reply via email to