Kanagaraj M has uploaded a new change for review. Change subject: webadmin: [WIP] Enable/Disable actions for Gluster Hooks ......................................................................
webadmin: [WIP] Enable/Disable actions for Gluster Hooks Enable and Disable actions are added for Gluster Hooks sub tab in cluster. Change-Id: If4b3af2c0669278e1fc776420e1ed8bf70ddbe5f Signed-off-by: Kanagaraj M <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java 5 files changed, 174 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/11241/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java index 2dd2a1b..ad29f55 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java @@ -4,14 +4,41 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStatus; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.Linq; +import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; +import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; public class ClusterGlusterHookListModel extends SearchableListModel { + + private UICommand enableHookCommand; + private UICommand disableHookCommand; + + public UICommand getEnableHookCommand() + { + return enableHookCommand; + } + + public void setEnableHookCommand(UICommand enableHookCommand) + { + this.enableHookCommand = enableHookCommand; + } + + public UICommand getDisableHookCommand() + { + return disableHookCommand; + } + + public void setDisableHookCommand(UICommand disableHookCommand) + { + this.disableHookCommand = disableHookCommand; + } @Override public VDSGroup getEntity() @@ -24,6 +51,94 @@ setTitle(ConstantsManager.getInstance().getConstants().glusterHooksTitle()); setHashName("gluster_hooks"); // $//$NON-NLS-1$ setAvailableInModes(ApplicationMode.GlusterOnly); + + setEnableHookCommand(new UICommand("EnableHook", this)); //$NON-NLS-1$ + setDisableHookCommand(new UICommand("DisableHook", this)); //$NON-NLS-1$ + + getEnableHookCommand().setIsExecutionAllowed(false); + getDisableHookCommand().setIsExecutionAllowed(false); + } + + private void enableHook() { + + } + + private void disableHook() { + if (getWindow() != null) + { + return; + } + + if (getSelectedItems() == null || getSelectedItems().size() == 0) + { + return; + } + + ConfirmationModel model = new ConfirmationModel(); + setConfirmWindow(model); + model.setTitle(ConstantsManager.getInstance().getConstants().confirmDisableGlusterHooks()); + model.setHashName("disable_hooks"); //$NON-NLS-1$ + model.setMessage(ConstantsManager.getInstance().getConstants().disableGlusterHooksMessage()); + + if (getSelectedItems() == null) { + return; + } + + java.util.ArrayList<String> list = new java.util.ArrayList<String>(); + for (GlusterHookEntity item : Linq.<GlusterHookEntity> Cast(getSelectedItems())) + { + list.add(item.getName()); + } + model.setItems(list); + + UICommand okCommand = new UICommand("OnDisableHook", this); //$NON-NLS-1$ + okCommand.setTitle(ConstantsManager.getInstance().getConstants().ok()); + okCommand.setIsDefault(true); + model.getCommands().add(okCommand); + UICommand cancelCommand = new UICommand("OnCancelConfirmation", this); //$NON-NLS-1$ + cancelCommand.setTitle(ConstantsManager.getInstance().getConstants().cancel()); + cancelCommand.setIsCancel(true); + model.getCommands().add(cancelCommand); + } + + private void onDisableHook() { + + } + + private void cancelConfirmation() { + setConfirmWindow(null); + } + + @Override + protected void SelectedItemsChanged() + { + super.SelectedItemsChanged(); + updateActionAvailability(); + } + + private void updateActionAvailability() + { + if (getSelectedItems() == null || getSelectedItems().size() == 0) + { + getEnableHookCommand().setIsExecutionAllowed(false); + getDisableHookCommand().setIsExecutionAllowed(false); + return; + } + + getEnableHookCommand().setIsExecutionAllowed(true); + getDisableHookCommand().setIsExecutionAllowed(true); + + for (GlusterHookEntity hook : Linq.<GlusterHookEntity> Cast(getSelectedItems())) + { + if (hook.getStatus() == GlusterHookStatus.ENABLED) + { + getEnableHookCommand().setIsExecutionAllowed(false); + } + else + { + getDisableHookCommand().setIsExecutionAllowed(true); + } + } } @Override @@ -71,4 +186,21 @@ protected String getListName() { return "ClusterGlusterHookListModel"; //$NON-NLS-1$ } + + @Override + public void ExecuteCommand(UICommand command) { + super.ExecuteCommand(command); + if (command.equals(getEnableHookCommand())) { + enableHook(); + } + else if (command.equals(getDisableHookCommand())) { + disableHook(); + } + else if (command.getName().equals("OnDisableHook")) { //$NON-NLS-1$ + onDisableHook(); + } + else if (command.getName().equals("OnCancelConfirmation")) { //$NON-NLS-1$ + cancelConfirmation(); + } + } } diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index c72dd1b..2ba820b 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -1478,6 +1478,12 @@ @DefaultStringValue("Cannot choose Volume's Cluster in tree context") String cannotChooseVolumesClusterinTreeContect(); + @DefaultStringValue("Disable Gluster Hooks") + String confirmDisableGlusterHooks(); + + @DefaultStringValue("Are you sure you want to disable the following Hook(s)?") + String disableGlusterHooksMessage(); + @DefaultStringValue("VMs already exist") String vmAlreadyExistsMsg(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index 04c854a..82b7ee1 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -1677,6 +1677,12 @@ @DefaultStringValue("Status") String statusHook(); + @DefaultStringValue("Enable") + String enableHook(); + + @DefaultStringValue("Disable") + String disableHook(); + // Interface @DefaultStringValue("Empty") String emptyInterface(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java index 31843bd..b908dec 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java @@ -8,6 +8,7 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; import org.ovirt.engine.ui.common.presenter.ModelBoundPresenterWidget; +import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget; import org.ovirt.engine.ui.common.presenter.popup.RemoveConfirmationPopupPresenterWidget; import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; import org.ovirt.engine.ui.common.uicommon.model.DetailTabModelProvider; @@ -168,10 +169,21 @@ @Provides @Singleton - public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector ginjector) { + public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector ginjector, + final Provider<DefaultConfirmationPopupPresenterWidget> confirmPopupProvider) { return new SearchableDetailTabModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel>(ginjector, ClusterListModel.class, - ClusterGlusterHookListModel.class); + ClusterGlusterHookListModel.class) { + @Override + public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(ClusterGlusterHookListModel source, + UICommand lastExecutedCommand) { + if (lastExecutedCommand == getModel().getDisableHookCommand()) { + return confirmPopupProvider.get(); + } else { + return super.getConfirmModelPopup(source, lastExecutedCommand); + } + } + }; } @Provides diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java index 8575cf9..cdb48f2 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java @@ -9,11 +9,13 @@ import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; import org.ovirt.engine.ui.common.widget.table.column.EnumColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGlusterHookListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGlusterHookPresenter; import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView; +import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; public class SubTabClusterGlusterHookView extends AbstractSubTabTableView<VDSGroup, GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> implements SubTabClusterGlusterHookPresenter.ViewDef { @@ -60,5 +62,19 @@ } }; getTable().addColumn(statusColumn, constants.statusHook()); + + getTable().addActionButton(new WebAdminButtonDefinition<GlusterHookEntity>(constants.enableHook()) { + @Override + protected UICommand resolveCommand() { + return getDetailModel().getEnableHookCommand(); + } + }); + + getTable().addActionButton(new WebAdminButtonDefinition<GlusterHookEntity>(constants.disableHook()) { + @Override + protected UICommand resolveCommand() { + return getDetailModel().getDisableHookCommand(); + } + }); } } -- To view, visit http://gerrit.ovirt.org/11241 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If4b3af2c0669278e1fc776420e1ed8bf70ddbe5f 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
