Frank Kobzik has uploaded a new change for review.

Change subject: frontend: Sorting columns in VM subtabs
......................................................................

frontend: Sorting columns in VM subtabs

This patch contains sorting columns in "Network Interface" VM subtab.

Change-Id: I6b55d40f4978f994cc2c84f3a99d46294b7928fc
Signed-off-by: Frantisek Kobzik <[email protected]>
Bug-Url: https://bugzilla.redhat.com/1103715
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java
7 files changed, 100 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/28360/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java
index 5c0e20f..ce7d2a7 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java
@@ -11,10 +11,9 @@
 import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.safehtml.shared.SafeHtmlUtils;
-import com.google.gwt.user.cellview.client.Column;
 import com.google.gwt.view.client.CellPreviewEvent;
 
-public abstract class CheckboxColumn<T> extends Column<T, Boolean> {
+public abstract class CheckboxColumn<T> extends SortableColumn<T, Boolean> {
 
     private boolean isCentralized = false;
     private boolean multipleSelectionAllowed = true;
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java
index d439923..78ff4f7 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java
@@ -12,7 +12,7 @@
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.user.cellview.client.Column;
 
-public abstract class SafeHtmlWithSafeHtmlTooltipColumn<T> extends Column<T, 
SafeHtml>{
+public abstract class SafeHtmlWithSafeHtmlTooltipColumn<T> extends 
SortableColumn<T, SafeHtml>{
 
     private final TooltipPanel tooltipPanel = new TooltipPanel();
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java
index b585e28..5f88cbe 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java
@@ -16,6 +16,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.VmNetworkInterfaceComparator;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmInterfaceListModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -74,7 +75,9 @@
     public void initTable(final CommonApplicationConstants constants) {
         getTable().enableColumnResizing();
 
-        getTable().addColumn(new 
NicActivateStatusColumn<VmNetworkInterface>(), constants.empty(), "30px"); 
//$NON-NLS-1$
+        NicActivateStatusColumn<VmNetworkInterface> statusColumn = new 
NicActivateStatusColumn<VmNetworkInterface>();
+        
statusColumn.makeSortable(VmNetworkInterfaceComparator.BY_PLUGGED_AND_LINKED);
+        getTable().addColumn(statusColumn, constants.empty(), "30px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> nameColumn = new 
TextColumnWithTooltip<VmNetworkInterface>() {
             @Override
@@ -82,6 +85,7 @@
                 return object.getName();
             }
         };
+        nameColumn.makeSortable(VmNetworkInterfaceComparator.BY_NAME);
         getTable().addColumn(nameColumn, constants.nameInterface(), "150px"); 
//$NON-NLS-1$
 
         CheckboxColumn<VmNetworkInterface> pluggedColumn = new 
CheckboxColumn<VmNetworkInterface>() {
@@ -95,7 +99,7 @@
                 return false;
             }
         };
-
+        pluggedColumn.makeSortable(VmNetworkInterfaceComparator.BY_PLUGGED);
         getTable().addColumnWithHtmlHeader(pluggedColumn, constants.plugged(), 
"60px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> networkNameColumn = new 
TextColumnWithTooltip<VmNetworkInterface>() {
@@ -104,6 +108,7 @@
                 return object.getNetworkName();
             }
         };
+        
networkNameColumn.makeSortable(VmNetworkInterfaceComparator.BY_NETWORK_NAME);
         getTable().addColumn(networkNameColumn, 
constants.networkNameInterface(), "150px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> profileNameColumn = new 
TextColumnWithTooltip<VmNetworkInterface>() {
@@ -112,6 +117,7 @@
                 return object.getVnicProfileName();
             }
         };
+        
profileNameColumn.makeSortable(VmNetworkInterfaceComparator.BY_PROFILE_NAME);
         getTable().addColumn(profileNameColumn, 
constants.profileNameInterface(), "150px"); //$NON-NLS-1$
 
         BooleanColumn<VmNetworkInterface> linkStateColumn =
@@ -122,7 +128,7 @@
                         return object.isLinked();
                     }
                 };
-
+        
linkStateColumn.makeSortable(VmNetworkInterfaceComparator.BY_LINK_STATE);
         getTable().addColumnWithHtmlHeader(linkStateColumn, 
constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> typeColumn = new 
EnumColumn<VmNetworkInterface, VmInterfaceType>() {
@@ -131,6 +137,7 @@
                 return VmInterfaceType.forValue(object.getType());
             }
         };
+        typeColumn.makeSortable(VmNetworkInterfaceComparator.BY_TYPE);
         getTable().addColumn(typeColumn, constants.typeInterface(), "100px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> macColumn = new 
TextColumnWithTooltip<VmNetworkInterface>() {
@@ -139,6 +146,7 @@
                 return object.getMacAddress();
             }
         };
+        macColumn.makeSortable(VmNetworkInterfaceComparator.BY_MAC_ADDRESS);
         getTable().addColumn(macColumn, constants.macInterface(), "150px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<VmNetworkInterface> speedColumn = new 
TextColumnWithTooltip<VmNetworkInterface>() {
@@ -151,6 +159,7 @@
                 }
             }
         };
+        speedColumn.makeSortable(VmNetworkInterfaceComparator.BY_SPEED);
         getTable().addColumnWithHtmlHeader(speedColumn,
                 templates.sub(constants.speedInterface(), 
constants.mbps()).asString(), "150px"); //$NON-NLS-1$
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
index 6b399e9..38bf4a2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
@@ -1141,17 +1141,6 @@
         }
     }
 
-
-
-    public final static class VmInterfaceComparer implements 
Comparator<VmNetworkInterface>, Serializable {
-        LexoNumericComparator lexoNumeric = new LexoNumericComparator();
-
-        @Override
-        public int compare(VmNetworkInterface nic1, VmNetworkInterface nic2) {
-            return lexoNumeric.compare(nic1.getName(), nic2.getName());
-        }
-    }
-
     public final static class InterfaceComparator implements 
Comparator<VdsNetworkInterface>, Serializable {
 
         private static final long serialVersionUID = -6806871048546270786L;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java
new file mode 100644
index 0000000..48f64e7
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java
@@ -0,0 +1,82 @@
+package org.ovirt.engine.ui.uicommonweb.comparators;
+
+import java.util.Comparator;
+import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+
+public class VmNetworkInterfaceComparator {
+
+    public static final Comparator<VmNetworkInterface> BY_NAME = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return LexoNumericComparator.comp(vmNetworkInterface.getName(), 
vmNetworkInterface2.getName());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_PLUGGED = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
Boolean.valueOf(vmNetworkInterface.isPlugged()).compareTo(vmNetworkInterface2.isPlugged());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_NETWORK_NAME = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
LexoNumericComparator.comp(vmNetworkInterface.getNetworkName(), 
vmNetworkInterface2.getNetworkName());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_PROFILE_NAME = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
LexoNumericComparator.comp(vmNetworkInterface.getVnicProfileName(), 
vmNetworkInterface2.getVnicProfileName());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_LINK_STATE = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
Boolean.valueOf(vmNetworkInterface.isLinked()).compareTo(vmNetworkInterface2.isLinked());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_TYPE = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
vmNetworkInterface.getType().compareTo(vmNetworkInterface.getType());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_MAC_ADDRESS = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
LexoNumericComparator.comp(vmNetworkInterface.getMacAddress(), 
vmNetworkInterface2.getMacAddress());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_SPEED = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
vmNetworkInterface.getSpeed().compareTo(vmNetworkInterface2.getSpeed());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_PORT_MIRRORING = new 
Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            return 
Boolean.valueOf(vmNetworkInterface.isPortMirroring()).compareTo(vmNetworkInterface2.isPortMirroring());
+        }
+    };
+
+    public static final Comparator<VmNetworkInterface> BY_PLUGGED_AND_LINKED = 
new Comparator<VmNetworkInterface>() {
+        @Override
+        public int compare(VmNetworkInterface vmNetworkInterface, 
VmNetworkInterface vmNetworkInterface2) {
+            Boolean fstPluggedLinked = vmNetworkInterface.isPlugged() && 
vmNetworkInterface.isLinked();
+            Boolean sndPluggedLinked = vmNetworkInterface2.isPlugged() && 
vmNetworkInterface2.isLinked();
+
+            return fstPluggedLinked.compareTo(sndPluggedLinked);
+        }
+    };
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
index b19b6d4..a3ab769 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
@@ -23,6 +23,7 @@
 import org.ovirt.engine.ui.uicommonweb.ICommandTarget;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import 
org.ovirt.engine.ui.uicommonweb.comparators.VmNetworkInterfaceComparator;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -275,7 +276,7 @@
                             snapshot.getAppList().split(",") : new 
String[]{})); //$NON-NLS-1$
 
                     Collections.sort(snapshotModel.getDisks(), new 
Linq.DiskByAliasComparer());
-                    Collections.sort(snapshotModel.getNics(), new 
Linq.VmInterfaceComparer());
+                    Collections.sort(snapshotModel.getNics(), 
VmNetworkInterfaceComparator.BY_NAME);
                 }
 
                 onUpdateAsyncCallback.onSuccess(snapshotModel, null);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java
index f23e649..cf42a1d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.ui.common.view.AbstractSubTabTableWidgetView;
 import org.ovirt.engine.ui.common.widget.table.column.BooleanColumn;
 import org.ovirt.engine.ui.common.widget.uicommon.vm.VmInterfaceListModelTable;
+import 
org.ovirt.engine.ui.uicommonweb.comparators.VmNetworkInterfaceComparator;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmInterfaceListModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -48,6 +49,7 @@
                                 return object.isPortMirroring();
                             }
                         };
+                
portMirroringColumn.makeSortable(VmNetworkInterfaceComparator.BY_PORT_MIRRORING);
                 getTable().addColumnWithHtmlHeader(portMirroringColumn, 
constants.portMirroring(), "85px"); //$NON-NLS-1$
             }
         });


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

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

Reply via email to