Kanagaraj M has uploaded a new change for review.

Change subject: webadmin:[WIP] volumes tab - clickable icon
......................................................................

webadmin:[WIP] volumes tab - clickable icon

.

Change-Id: I49331d1b21cd43a9c2b9b0251ceb34fdb016aaf8
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java
4 files changed, 116 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/19574/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 b7dd836..64a0609 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
@@ -23,6 +23,7 @@
 import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
 import 
org.ovirt.engine.ui.webadmin.widget.action.WebAdminMenuBarButtonDefinition;
 import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityColumn;
+import 
org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityStatusCell;
 import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeStatusColumn;
 
 import com.google.gwt.core.client.GWT;
@@ -113,7 +114,12 @@
                 };
         getTable().addColumn(transportColumn, 
constants.transportTypesVolume(), "150px"); //$NON-NLS-1$
 
-        getTable().addColumn(new VolumeActivityColumn(), 
constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$
+        getTable().addColumn(new VolumeActivityColumn(new 
VolumeActivityStatusCell() {
+            @Override
+            public UICommand resolveCommand() {
+                return getMainModel().getStatusRebalanceCommand();
+            }
+        }), constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<GlusterVolumeEntity>(constants.newVolume()) {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java
new file mode 100644
index 0000000..6dbdc04
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityActionCell.java
@@ -0,0 +1,80 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.ui.uicommonweb.ICommandTarget;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
+import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
+
+import com.google.gwt.cell.client.AbstractCell;
+import com.google.gwt.cell.client.ValueUpdater;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.EventTarget;
+import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.resources.client.ImageResource;
+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.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.MenuItem;
+
+public abstract class VolumeActivityActionCell extends 
AbstractCell<GlusterVolumeEntity> {
+
+    ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
+
+    ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
+
+    ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
+
+    MenuBar menu = new MenuBar();
+    public VolumeActivityActionCell() {
+        super("click"); //$NON-NLS-1$
+        menu.addItem(new MenuItem("Start", new ScheduledCommand() { 
//$NON-NLS-1$
+            @Override
+            public void execute() {
+
+            }
+        }));
+    }
+
+    @Override
+    public void render(Context context, GlusterVolumeEntity volume, 
SafeHtmlBuilder sb) {
+        ImageResource image = resources.downImage();
+        SafeHtml activityImageHtml = 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(image).getHTML());
+        sb.append(applicationTemplates.image(activityImageHtml));
+    }
+
+    public void onBrowserEvent(Context context,
+            Element parent,
+            GlusterVolumeEntity value,
+            NativeEvent event,
+            ValueUpdater<GlusterVolumeEntity> valueUpdater) {
+        super.onBrowserEvent(context, parent, value, event, valueUpdater);
+        // Handle the click event.
+        if ("click".equals(event.getType())) { //$NON-NLS-1$
+            // Ignore clicks that occur outside of the outermost element.
+            EventTarget eventTarget = event.getEventTarget();
+            if 
(parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) {
+                resolveCommand().execute(value);
+            }
+        }
+    }
+
+    public UICommand resolveCommand() {
+        return new UICommand("Menu", new ICommandTarget() {
+            @Override
+            public void executeCommand(UICommand uiCommand, Object... 
parameters) {
+
+            }
+
+            @Override
+            public void executeCommand(UICommand command) {
+
+            }
+        });
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java
index 1156512..1d48d3f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityColumn.java
@@ -6,8 +6,8 @@
 
 public class VolumeActivityColumn extends Column<GlusterVolumeEntity, 
GlusterVolumeEntity> {
 
-    public VolumeActivityColumn() {
-        super(new VolumeActivityCell());
+    public VolumeActivityColumn(VolumeActivityStatusCell cell) {
+        super(cell);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java
similarity index 70%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java
index c658b2f..dc432c7 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityCell.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeActivityStatusCell.java
@@ -2,25 +2,34 @@
 
 import org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskType;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
 
 import com.google.gwt.cell.client.AbstractCell;
+import com.google.gwt.cell.client.ValueUpdater;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.EventTarget;
+import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.resources.client.ImageResource;
 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.client.ui.AbstractImagePrototype;
 
-public class VolumeActivityCell extends AbstractCell<GlusterVolumeEntity> {
+public abstract class VolumeActivityStatusCell extends 
AbstractCell<GlusterVolumeEntity> {
 
     ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
 
     ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
 
     ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
+
+    public VolumeActivityStatusCell() {
+        super("click"); //$NON-NLS-1$
+    }
 
     @Override
     public void render(Context context, GlusterVolumeEntity volume, 
SafeHtmlBuilder sb) {
@@ -66,4 +75,21 @@
         }
     }
 
+    public void onBrowserEvent(Context context,
+            Element parent,
+            GlusterVolumeEntity value,
+            NativeEvent event,
+            ValueUpdater<GlusterVolumeEntity> valueUpdater) {
+        super.onBrowserEvent(context, parent, value, event, valueUpdater);
+        // Handle the click event.
+        if ("click".equals(event.getType())) { //$NON-NLS-1$
+            // Ignore clicks that occur outside of the outermost element.
+            EventTarget eventTarget = event.getEventTarget();
+            if 
(parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) {
+                resolveCommand().execute(value);
+            }
+        }
+    }
+
+    public abstract UICommand resolveCommand();
 }


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

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

Reply via email to