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