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

Reply via email to