anmolbabu has uploaded a new change for review.

Change subject: webadmin : sort status and cluster column under volumes
......................................................................

webadmin : sort status and cluster column under volumes

sort status and cluster column under volumes

Change-Id: I73036f5a5d8e14df2bebdaeb2b3fa95938db2e8a
Signed-off-by: Anmol Babu <anb...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusCell.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusColumn.java
3 files changed, 87 insertions(+), 36 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/30192/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
index eec47f3..a2ab7f1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
@@ -55,7 +55,9 @@
     void initTable(ApplicationConstants constants) {
         getTable().enableColumnResizing();
 
-        getTable().addColumn(new VolumeStatusColumn(), constants.empty(), 
"30px"); //$NON-NLS-1$
+        VolumeStatusColumn statusColumn = new VolumeStatusColumn();
+        statusColumn.makeSortable();
+        getTable().addColumn(statusColumn, constants.empty(), "30px"); 
//$NON-NLS-1$
 
         TextColumnWithTooltip<GlusterVolumeEntity> nameColumn = new 
TextColumnWithTooltip<GlusterVolumeEntity>() {
             @Override
@@ -73,6 +75,7 @@
                 return object.getVdsGroupName();
             }
         };
+        clusterColumn.makeSortable();
         getTable().addColumn(clusterColumn, constants.clusterVolume(), 
"150px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<GlusterVolumeEntity> volumeTypeColumn =
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusCell.java
index f790711..f8612f5 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusCell.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusCell.java
@@ -23,43 +23,76 @@
 
     ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
 
+    protected enum VOLUMESTATUS {
+        UP,
+        DOWN,
+        ALLBRICKSDOWN,
+        SOMEBRICKSDOWN;
+    };
+
+    protected VOLUMESTATUS getVolumeStatus(GlusterVolumeEntity volume) {
+        GlusterStatus status = volume.getStatus();
+        int count = 0;
+        int brickCount = volume.getBricks().size();
+        switch (status) {
+        case DOWN :
+            return VOLUMESTATUS.DOWN;
+        case UP :
+            count = countDownBricks(volume);
+            if (count == 0) {
+                return VOLUMESTATUS.UP;
+            } else if (count < brickCount) {
+                return VOLUMESTATUS.SOMEBRICKSDOWN;
+            } else {
+                return VOLUMESTATUS.ALLBRICKSDOWN;
+            }
+        default :
+            return VOLUMESTATUS.DOWN;
+        }
+    }
+
+    protected ImageResource getStatusImage(VOLUMESTATUS vStatus) {
+     // Find the image corresponding to the status of the volume:
+        ImageResource statusImage = null;
+
+        switch (vStatus) {
+        case DOWN:
+            return resources.downImage();
+        case UP :
+            return resources.upImage();
+        case ALLBRICKSDOWN :
+            return resources.volumeAllBricksDownWarning();
+        case SOMEBRICKSDOWN :
+            return resources.volumeBricksDownWarning();
+        }
+
+        return statusImage;
+    }
+
+    private String getToolTip(VOLUMESTATUS status) {
+        switch (status) {
+        case DOWN:
+            return constants.down();
+        case UP:
+            return constants.up();
+        case SOMEBRICKSDOWN:
+            return constants.volumeBricksDown();
+        case ALLBRICKSDOWN:
+            return constants.volumeAllBricksDown();
+        default:
+            return constants.down();
+        }
+    }
+
     @Override
     public void render(Context context, GlusterVolumeEntity volume, 
SafeHtmlBuilder sb) {
         // Nothing to render if no volume is provided:
         if (volume == null) {
             return;
         }
-        int brickCount = volume.getBricks().size();
-        int count = 0;
-
-        // Find the image corresponding to the status of the volume:
-        GlusterStatus status = volume.getStatus();
-        ImageResource statusImage = null;
-        String tooltip;
-
-        switch (status) {
-        case DOWN:
-            statusImage = resources.downImage();
-            tooltip = constants.down();
-            break;
-        case UP:
-            count = countDownBricks(volume);
-            if (count == 0) {
-                statusImage = resources.upImage();
-                tooltip = constants.up();
-            } else if (count < brickCount) {
-                statusImage = resources.volumeBricksDownWarning();
-                tooltip = constants.volumeBricksDown();
-            } else {
-                statusImage = resources.volumeAllBricksDownWarning();
-                tooltip = constants.volumeAllBricksDown();
-            }
-            break;
-        default:
-            statusImage = resources.downImage();
-            tooltip = constants.down();
-        }
-
+        VOLUMESTATUS vStatus = getVolumeStatus(volume);
+        ImageResource statusImage = getStatusImage(vStatus);
+        String tooltip = getToolTip(vStatus);
         // Generate the HTML for the image:
         SafeHtml statusImageHtml =
                 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML());
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusColumn.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusColumn.java
index bc6e916..862b8b6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusColumn.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeStatusColumn.java
@@ -1,13 +1,16 @@
 package org.ovirt.engine.ui.webadmin.widget.table.column;
 
+import java.util.Comparator;
+
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import 
org.ovirt.engine.ui.common.widget.table.column.SimpleStatusImageComparator;
+import org.ovirt.engine.ui.common.widget.table.column.SortableColumn;
 
-import com.google.gwt.user.cellview.client.Column;
+public class VolumeStatusColumn extends SortableColumn<GlusterVolumeEntity, 
GlusterVolumeEntity> {
 
-public class VolumeStatusColumn extends Column<GlusterVolumeEntity, 
GlusterVolumeEntity> {
-
+    static VolumeStatusCell statusCell = new VolumeStatusCell();
     public VolumeStatusColumn() {
-        super(new VolumeStatusCell());
+        super(statusCell);
     }
 
     @Override
@@ -15,4 +18,16 @@
         return object;
     }
 
+    public void makeSortable() {
+        makeSortable(new Comparator<GlusterVolumeEntity>() {
+
+            private final SimpleStatusImageComparator imageComparator = new 
SimpleStatusImageComparator();
+
+            @Override
+            public int compare(GlusterVolumeEntity o1, GlusterVolumeEntity o2) 
{
+                return 
imageComparator.compare(statusCell.getStatusImage(statusCell.getVolumeStatus(o1)),
 statusCell.getStatusImage(statusCell.getVolumeStatus(o2)));
+            }
+        });
+    }
+
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I73036f5a5d8e14df2bebdaeb2b3fa95938db2e8a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: anmolbabu <anb...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to