Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: [WIP] adding bricks to rebalance/remove-bricks status
......................................................................

webadmin: [WIP] adding bricks to rebalance/remove-bricks status

.

Change-Id: Ie784b42fcd0ef1f77f7c8d289c3cfd37ab77389f
Signed-off-by: Kanagaraj M <[email protected]>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.ui.xml
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostCell.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostColumn.java
5 files changed, 115 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/23086/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
index bfcfea7..74f25b3 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
@@ -159,4 +159,12 @@
 
     @Template("<div style='width:90%; display:inline-block; vertical-align: 
top;'>{0}</div>")
     SafeHtml radioButtonLabel(String text);
+
+    @Template("<table style='width: 100%;'> "
+            + "<tr>"
+            + "<td style='width: 70%;'> {0} </td>"
+            + "<td style='width: 30%;'> (<a href='javascript:;' 
style='display: inline-block'>{1} Bricks</a>)</td>"
+            + "</tr>"
+            + "</table>")
+    SafeHtml volumeRebalanceHostWithBricks(String host, int bricks);
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.java
index 2664929..17a5100 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.java
@@ -26,10 +26,12 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.VolumeRebalanceStatusPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.widget.table.column.HumanReadableTimeColumn;
 import 
org.ovirt.engine.ui.webadmin.widget.table.column.RebalanceFileSizeColumn;
+import 
org.ovirt.engine.ui.webadmin.widget.table.column.VolumeRebalanceStatusHostColumn;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.editor.client.SimpleBeanEditorDriver;
 import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.client.ui.Label;
@@ -99,6 +101,9 @@
 
     private final Driver driver = GWT.create(Driver.class);
 
+    @UiField
+    WidgetStyle style;
+
     @Inject
     public VolumeRebalanceStatusPopupView(EventBus eventBus, 
ApplicationResources resources, ApplicationConstants constants, 
ApplicationMessages messages) {
         super(eventBus, resources);
@@ -133,6 +138,8 @@
         startTimeEditor = getInstanceOfDateEditor();
 
         stopTimeEditor = getInstanceOfDateEditor();
+
+        rebalanceHostsTable.addColumn(new 
VolumeRebalanceStatusHostColumn(style), constants.rebalanceSessionHost());
 
         rebalanceHostsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterVolumeTaskStatusForHost>() {
             @Override
@@ -239,4 +246,9 @@
         super.setMessage(message);
         messageLabel.setText(message);
     }
+
+    public interface WidgetStyle extends CssResource {
+
+        String bricksPopup();
+    }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.ui.xml
index 5688de8..dfa49d0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeRebalanceStatusPopupView.ui.xml
@@ -4,7 +4,7 @@
        xmlns:g="urn:import:com.google.gwt.user.client.ui" 
xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
        xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" 
xmlns:w="urn:import:org.ovirt.engine.ui.common.widget">
 
-       <ui:style>
+       <ui:style  
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.VolumeRebalanceStatusPopupView.WidgetStyle">
                .tablePanel {
                height: 415px;
                width: 981px;
@@ -29,6 +29,10 @@
                padding-top: 5px;
                padding-left: 5px;
                }
+               
+               .bricksPopup {
+                       border: 1px solid #CED8DF;
+               }
        </ui:style>
 
        <d:SimpleDialogPanel width="1000px" height="550px">
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostCell.java
new file mode 100644
index 0000000..1cec3e8
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostCell.java
@@ -0,0 +1,70 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost;
+import org.ovirt.engine.ui.common.widget.PopupPanel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
+import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.VolumeRebalanceStatusPopupView.WidgetStyle;
+
+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.safehtml.shared.SafeHtmlBuilder;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Label;
+
+public class VolumeRebalanceStatusHostCell extends 
AbstractCell<GlusterVolumeTaskStatusForHost> {
+
+    ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
+
+    ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
+
+    private PopupPanel popupPanel;
+
+    public VolumeRebalanceStatusHostCell(WidgetStyle style) {
+        super("click"); //$NON-NLS-1$
+        popupPanel = new PopupPanel(true);
+        style.ensureInjected();
+        popupPanel.setStylePrimaryName(style.bricksPopup());
+    }
+
+    @Override
+    public void render(Context context, GlusterVolumeTaskStatusForHost status, 
SafeHtmlBuilder sb) {
+        // Nothing to render if no status is provided:
+        if (status == null || status.getHostName() == null) {
+            return;
+        }
+        int brickCount = status.getBricks().size();
+        
sb.append(applicationTemplates.volumeRebalanceHostWithBricks(status.getHostName(),
 brickCount));
+    }
+
+    @Override
+    public void onBrowserEvent(Context context,
+            Element parent,
+            GlusterVolumeTaskStatusForHost value,
+            NativeEvent event,
+            ValueUpdater<GlusterVolumeTaskStatusForHost> valueUpdater) {
+        super.onBrowserEvent(context, parent, value, event, valueUpdater);
+        int eventX = event.getClientX();
+        int eventY = event.getClientY();
+
+        // 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))) {
+                popupPanel.clear();
+                FlowPanel panel = new FlowPanel();
+                for (GlusterBrickEntity brick : value.getBricks()) {
+                    panel.add(new Label(brick.getQualifiedName()));
+                }
+                popupPanel.setWidget(panel);
+                popupPanel.showAndFitToScreen(eventX, eventY);
+            }
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostColumn.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostColumn.java
new file mode 100644
index 0000000..e4ab7dd
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeRebalanceStatusHostColumn.java
@@ -0,0 +1,20 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.VolumeRebalanceStatusPopupView.WidgetStyle;
+
+import com.google.gwt.user.cellview.client.Column;
+
+public class VolumeRebalanceStatusHostColumn extends 
Column<EntityModel<GlusterVolumeTaskStatusForHost>, 
GlusterVolumeTaskStatusForHost> {
+
+    public VolumeRebalanceStatusHostColumn(WidgetStyle style) {
+        super(new VolumeRebalanceStatusHostCell(style));
+    }
+
+    @Override
+    public GlusterVolumeTaskStatusForHost 
getValue(EntityModel<GlusterVolumeTaskStatusForHost> object) {
+        return object.getEntity();
+    }
+
+}


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

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

Reply via email to