Ramesh N has uploaded a new change for review.

Change subject: webadmin:fix rebalance status dialog disappers issues
......................................................................

webadmin:fix rebalance status dialog disappers issues

 Fixing the rebalance dialog disappearing issue. When user
logout and login, rebalance and remove brick related menu
items are having reference to old UI Command.

   Using ActionButtonDefinition in MenuCell to dynamically
resolve the UI Command.

Change-Id: I98f8660cc080731ce8981eebc04f557c22bbbfaf
Bug-Url: https://bugzilla.redhat.com/1022946
Signed-off-by: Ramesh Nachimuthu <rnach...@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/MenuCell.java
2 files changed, 62 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/21259/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 c1c66a9..ea6a8db 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
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.tab;
 
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,7 +40,8 @@
     Translator transportTypeTranslator = 
EnumTranslator.Create(TransportType.class);
 
     @Inject
-    public MainTabVolumeView(MainModelProvider<GlusterVolumeEntity, 
VolumeListModel> modelProvider, ApplicationConstants constants) {
+    public MainTabVolumeView(MainModelProvider<GlusterVolumeEntity, 
VolumeListModel> modelProvider,
+            ApplicationConstants constants) {
         super(modelProvider);
         ViewIdHandler.idHandler.generateAndSetIds(this);
         initTable(constants);
@@ -88,7 +88,6 @@
                 };
         getTable().addColumn(numOfBricksColumn, 
constants.numberOfBricksVolume(), "150px"); //$NON-NLS-1$
 
-
         MenuCell<GlusterTaskSupport> rebalanceMenuCell = 
getRebalanceActivityMenu(constants);
         MenuCell<GlusterTaskSupport> removeBricksMenuCell = 
getRemoveBrickActivityMenu(constants);
         List<HasCell<GlusterTaskSupport, ?>> list = new 
ArrayList<HasCell<GlusterTaskSupport, ?>>();
@@ -113,9 +112,7 @@
         });
 
         getTable().addColumn(new 
VolumeActivityColumn<GlusterVolumeEntity>(list),
-                constants.activitiesOnVolume(),
-                "100px"); //$NON-NLS-1$
-
+                constants.activitiesOnVolume(), "100px"); //$NON-NLS-1$
 
         getTable().addActionButton(new 
WebAdminButtonDefinition<GlusterVolumeEntity>(constants.newVolume()) {
             @Override
@@ -162,8 +159,21 @@
                 return value.getAsyncTask() != null && 
value.getAsyncTask().getType() == GlusterTaskType.REBALANCE;
             }
         };
-        menuCell.addMenuItem(constants.statusRebalance(), 
getMainModel().getStatusRebalanceCommand());
-        menuCell.addMenuItem(constants.stopRebalance(), 
getMainModel().getStopRebalanceCommand());
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.statusRebalance()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getStatusRebalanceCommand();
+            }
+        });
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.stopRebalance()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getStopRebalanceCommand();
+            }
+        });
+
         return menuCell;
     }
 
@@ -174,14 +184,39 @@
                 return value.getAsyncTask() != null && 
value.getAsyncTask().getType() == GlusterTaskType.REMOVE_BRICK;
             }
         };
-        menuCell.addMenuItem(constants.removeBricksStatus(), 
getMainModel().getBrickListModel()
-                .getStatusRemoveBricksCommand());
-        menuCell.addMenuItem(constants.removeBricksStop(), 
getMainModel().getBrickListModel()
-                .getStopRemoveBricksCommand());
-        menuCell.addMenuItem(constants.removeBricksCommit(), 
getMainModel().getBrickListModel()
-                .getCommitRemoveBricksCommand());
-        menuCell.addMenuItem(constants.retainBricks(), 
getMainModel().getBrickListModel()
-                .getRetainBricksCommand());
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.removeBricksStatus()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getBrickListModel()
+                        .getStatusRemoveBricksCommand();
+            }
+        });
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.removeBricksStop()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getBrickListModel()
+                        .getStopRemoveBricksCommand();
+            }
+        });
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.removeBricksCommit()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getBrickListModel()
+                        .getCommitRemoveBricksCommand();
+            }
+        });
+
+        menuCell.addMenuItem(new 
WebAdminButtonDefinition<GlusterTaskSupport>(constants.retainBricks()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getBrickListModel()
+                        .getRetainBricksCommand();
+            }
+        });
+
         return menuCell;
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/MenuCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/MenuCell.java
index 967e9a6..b057749 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/MenuCell.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/MenuCell.java
@@ -1,11 +1,7 @@
 package org.ovirt.engine.ui.webadmin.widget.table.column;
 
+import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition;
 import org.ovirt.engine.ui.common.widget.action.MenuPanelPopup;
-import org.ovirt.engine.ui.uicommonweb.UICommand;
-import org.ovirt.engine.ui.uicompat.Event;
-import org.ovirt.engine.ui.uicompat.EventArgs;
-import org.ovirt.engine.ui.uicompat.IEventListener;
-import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
@@ -15,6 +11,8 @@
 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.event.logical.shared.InitializeEvent;
+import com.google.gwt.event.logical.shared.InitializeHandler;
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@@ -69,26 +67,23 @@
         }
     }
 
-    public void addMenuItem(String title, final UICommand command) {
-        final MenuItem menuItem = new MenuItem(title, new Command() {
+    public void addMenuItem(final ActionButtonDefinition<T> buttonDef) {
+        final MenuItem menuItem = new MenuItem(buttonDef.getTitle(), new 
Command() {
             @Override
             public void execute() {
                 menuPanelPopup.asPopupPanel().hide();
-                command.execute();
+                buttonDef.onClick(null);
             }
         });
-        menuItem.setEnabled(command.getIsExecutionAllowed());
+        menuItem.setEnabled(buttonDef.isEnabled(null));
 
-        command.getPropertyChangedEvent().addListener(new IEventListener() {
+        // Update button whenever its definition gets re-initialized
+        buttonDef.addInitializeHandler(new InitializeHandler() {
             @Override
-            public void eventRaised(Event ev, Object sender, EventArgs args) {
-                PropertyChangedEventArgs e = (PropertyChangedEventArgs) args;
-                if (e.PropertyName.equals("IsExecutionAllowed")) { 
//$NON-NLS-1$
-                    menuItem.setEnabled(command.getIsExecutionAllowed());
-                }
+            public void onInitialize(InitializeEvent event) {
+                menuItem.setEnabled(buttonDef.isEnabled(null));
             }
         });
-
         menuPanelPopup.getMenuBar().addItem(menuItem);
     }
 


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

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

Reply via email to