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
