Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Implement sorting for RxTxRateColumn
......................................................................

webadmin: Implement sorting for RxTxRateColumn

Implemented default client-side sorting for RxTxRateColumn, and
switched it on for the Network/Hosts and Network/VMs subtab columns.

Change-Id: Ia0a9b91350e774639a7879e26456f6e8cc15ba3d
Bug-Url: https://bugzilla.redhat.com/1120054
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxRateRenderer.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/RxTxRateColumn.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
4 files changed, 55 insertions(+), 3 deletions(-)


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

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxRateRenderer.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxRateRenderer.java
index ec99f62..59ef34b 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxRateRenderer.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/renderer/RxTxRateRenderer.java
@@ -1,5 +1,8 @@
 package org.ovirt.engine.ui.common.widget.renderer;
 
+import org.ovirt.engine.ui.common.CommonApplicationConstants;
+
+import com.google.gwt.core.shared.GWT;
 import com.google.gwt.text.shared.AbstractRenderer;
 
 /**
@@ -7,10 +10,15 @@
  */
 public class RxTxRateRenderer extends AbstractRenderer<Double[]> {
 
+    private static final CommonApplicationConstants constants = 
GWT.create(CommonApplicationConstants.class);
+    private static final String NO_VALUE = 
constants.unAvailablePropertyLabel();
+    private static final String ZERO_VALUE = "0"; //$NON-NLS-1$
+    private static final String SMALL_VALUE = "< 1"; //$NON-NLS-1$
+
     @Override
     public String render(Double[] values) {
         if (values.length != 2 || values[0] == null || values[1] == null) {
-            return "[N/A]"; //$NON-NLS-1$
+            return NO_VALUE;
         }
 
         double x_rate = values[0];
@@ -19,12 +27,24 @@
         double calc = x_rate * speed / 100;
 
         if (calc < 1 && calc >= 0) {
-            return "< 1"; //$NON-NLS-1$
+            return SMALL_VALUE;
         } else if (calc > 0) {
             int retVal = (int) calc;
             return Integer.toString(retVal);
         }
-        return "0"; //$NON-NLS-1$
+        return ZERO_VALUE;
+    }
+
+    public static boolean isEmpty(String text) {
+        return NO_VALUE.equals(text);
+    }
+
+    public static boolean isZero(String text) {
+        return ZERO_VALUE.equals(text);
+    }
+
+    public static boolean isSmall(String text) {
+        return SMALL_VALUE.equals(text);
     }
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/RxTxRateColumn.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/RxTxRateColumn.java
index 08869d1..cc8eea2 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/RxTxRateColumn.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/RxTxRateColumn.java
@@ -1,5 +1,8 @@
 package org.ovirt.engine.ui.common.widget.table.column;
 
+import java.util.Comparator;
+
+import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
 import org.ovirt.engine.ui.common.widget.renderer.RxTxRateRenderer;
 
 /**
@@ -31,4 +34,29 @@
      */
     protected abstract Double getSpeed(T object);
 
+    @Override
+    public void makeSortable() {
+        makeSortable(new Comparator<T>() {
+
+            private LexoNumericComparator lexoNumeric = new 
LexoNumericComparator();
+
+            @Override
+            public int compare(T o1, T o2) {
+                String text1 = getValue(o1);
+                String text2 = getValue(o2);
+                if (text1.equals(text2)) {
+                    return 0;
+                } else if (RxTxRateRenderer.isEmpty(text1) || 
RxTxRateRenderer.isEmpty(text2)) {
+                    return RxTxRateRenderer.isEmpty(text1) ? -1 : 1;
+                } else if (RxTxRateRenderer.isZero(text1) || 
RxTxRateRenderer.isZero(text2)) {
+                    return RxTxRateRenderer.isZero(text1) ? -1 : 1;
+                } else if (RxTxRateRenderer.isSmall(text1) || 
RxTxRateRenderer.isSmall(text2)) {
+                    return RxTxRateRenderer.isSmall(text1) ? -1 : 1;
+                } else {
+                    return lexoNumeric.compare(text1, text2);
+                }
+            }
+        });
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
index a356fe9..d0325cd 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkHostView.java
@@ -238,6 +238,8 @@
             }
         });
         speedColumn.makeSortable();
+        nicRxColumn.makeSortable();
+        nicTxColumn.makeSortable();
     }
 }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
index dfd85c9..dac6c4b 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkVmView.java
@@ -207,6 +207,8 @@
         fqdnColumn.makeSortable();
         nicActivateStatusColumn.makeSortable();
         vnicNameColumn.makeSortable();
+        rxColumn.makeSortable();
+        txColumn.makeSortable();
         descriptionColumn.makeSortable();
     }
 


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

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

Reply via email to