Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: [WIP] Gluster hooks - view content popup
......................................................................

webadmin: [WIP] Gluster hooks - view content popup

A new action 'View Content' added to Gluster Hooks sub tab
in cluster. This will open a popup which will show the content
of the hook.

If the hook is a binary file, an error message will be shown
in the popup.

Change-Id: Ic304b8155d5bf769813197a9796bf6d86fd10bfe
Signed-off-by: Kanagaraj M <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.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/PresenterModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
10 files changed, 225 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/11592/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 7faad45..72b103c 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
@@ -25,6 +25,7 @@
 
     private UICommand enableHookCommand;
     private UICommand disableHookCommand;
+    private UICommand viewHookCommand;
 
     public UICommand getEnableHookCommand() {
         return enableHookCommand;
@@ -42,6 +43,14 @@
         this.disableHookCommand = disableHookCommand;
     }
 
+    public UICommand getViewHookCommand() {
+        return viewHookCommand;
+    }
+
+    public void setViewHookCommand(UICommand viewHookCommand) {
+        this.viewHookCommand = viewHookCommand;
+    }
+
     @Override
     public VDSGroup getEntity() {
         return (VDSGroup) super.getEntity();
@@ -54,9 +63,11 @@
 
         setEnableHookCommand(new UICommand("EnableHook", this)); //$NON-NLS-1$
         setDisableHookCommand(new UICommand("DisableHook", this)); 
//$NON-NLS-1$
+        setViewHookCommand(new UICommand("ViewHook", this)); //$NON-NLS-1$
 
         getEnableHookCommand().setIsExecutionAllowed(false);
         getDisableHookCommand().setIsExecutionAllowed(false);
+        getViewHookCommand().setIsExecutionAllowed(false);
     }
 
     private void enableHook() {
@@ -144,6 +155,30 @@
         setConfirmWindow(null);
     }
 
+    private void viewHook() {
+        if (getWindow() != null)
+        {
+            return;
+        }
+
+        GlusterHookEntity hookEntity = (GlusterHookEntity) getSelectedItem();
+
+        if (hookEntity == null)
+        {
+            return;
+        }
+
+        GlusterHookContentModel contentModel = new GlusterHookContentModel();
+        
contentModel.setTitle(ConstantsManager.getInstance().getConstants().viewContentGlusterHookTitle());
+        contentModel.setHashName("view_gluster_hook"); //$NON-NLS-1$
+        setWindow(contentModel);
+
+        UICommand command = new UICommand("Cancel", this); //$NON-NLS-1$
+        
command.setTitle(ConstantsManager.getInstance().getConstants().close());
+        command.setIsCancel(true);
+        contentModel.getCommands().add(command);
+    }
+
     @Override
     protected void SelectedItemsChanged() {
         super.SelectedItemsChanged();
@@ -154,8 +189,11 @@
         if (getSelectedItems() == null || getSelectedItems().size() == 0) {
             getEnableHookCommand().setIsExecutionAllowed(false);
             getDisableHookCommand().setIsExecutionAllowed(false);
+            getViewHookCommand().setIsExecutionAllowed(false);
             return;
         }
+
+        getViewHookCommand().setIsExecutionAllowed(getSelectedItems().size() 
== 1);
 
         getEnableHookCommand().setIsExecutionAllowed(true);
         getDisableHookCommand().setIsExecutionAllowed(true);
@@ -230,5 +268,8 @@
         else if (command.getName().equals("OnCancelConfirmation")) { 
//$NON-NLS-1$
             cancelConfirmation();
         }
+        else if (command.equals(getViewHookCommand())) {
+            viewHook();
+        }
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java
new file mode 100644
index 0000000..4be87a9
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java
@@ -0,0 +1,21 @@
+package org.ovirt.engine.ui.uicommonweb.models.clusters;
+
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+
+public class GlusterHookContentModel extends Model {
+
+    EntityModel content;
+
+    public EntityModel getContent() {
+        return content;
+    }
+
+    public void setContent(EntityModel content) {
+        this.content = content;
+    }
+
+    public GlusterHookContentModel() {
+        setContent(new EntityModel());
+    }
+}
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 2ba820b..d44eb7e 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
@@ -1483,6 +1483,9 @@
 
     @DefaultStringValue("Are you sure you want to disable the following 
Hook(s)?")
     String disableGlusterHooksMessage();
+    
+    @DefaultStringValue("Hook Content")
+    String viewContentGlusterHookTitle();
 
     @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 82b7ee1..ab853f4 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
@@ -1683,6 +1683,9 @@
     @DefaultStringValue("Disable")
     String disableHook();
 
+    @DefaultStringValue("View Content")
+    String viewHookContent();
+
     // Interface
     @DefaultStringValue("Empty")
     String emptyInterface();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
index aea46c2..2536d35 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
@@ -18,6 +18,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.bookmark.BookmarkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure.ConfigurePopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure.RolePopupPresenterWidget;
@@ -200,6 +201,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.bookmark.BookmarkPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.ClusterManageNetworkPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.ClusterPopupView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.GlusterHookContentPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.NewClusterNetworkPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.ConfigurePopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.RolePopupView;
@@ -908,6 +910,10 @@
                 DetachGlusterHostsPopupPresenterWidget.ViewDef.class,
                 DetachGlusterHostsPopupView.class);
 
+        bindPresenterWidget(GlusterHookContentPopupPresenterWidget.class,
+                GlusterHookContentPopupPresenterWidget.ViewDef.class,
+                GlusterHookContentPopupView.class);
+
         // Host
         bindPresenterWidget(HostPopupPresenterWidget.class,
                 HostPopupPresenterWidget.ViewDef.class,
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 b908dec..90a918a 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
@@ -33,6 +33,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.guide.GuidePopupPresenterWidget;
@@ -170,16 +171,29 @@
     @Provides
     @Singleton
     public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, 
ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector 
ginjector,
-            final Provider<DefaultConfirmationPopupPresenterWidget> 
confirmPopupProvider) {
+            final Provider<DefaultConfirmationPopupPresenterWidget> 
confirmPopupProvider,
+            final Provider<GlusterHookContentPopupPresenterWidget> 
contentPopupProvider) {
         return new SearchableDetailTabModelProvider<GlusterHookEntity, 
ClusterListModel, ClusterGlusterHookListModel>(ginjector,
                 ClusterListModel.class,
                 ClusterGlusterHookListModel.class) {
+            @Override
+            public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> 
getModelPopup( ClusterGlusterHookListModel source,
+                    UICommand lastExecutedCommand, Model windowModel) {
+                if (lastExecutedCommand == getModel().getViewHookCommand()) {
+                    return contentPopupProvider.get();
+                }
+                else {
+                    return super.getModelPopup(source, lastExecutedCommand, 
windowModel);
+                }
+            }
+
             @Override
             public AbstractModelBoundPopupPresenterWidget<? extends 
ConfirmationModel, ?> getConfirmModelPopup(ClusterGlusterHookListModel source,
                     UICommand lastExecutedCommand) {
                 if (lastExecutedCommand == getModel().getDisableHookCommand()) 
{
                     return confirmPopupProvider.get();
-                } else {
+                }
+                else {
                     return super.getConfirmModelPopup(source, 
lastExecutedCommand);
                 }
             }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java
new file mode 100644
index 0000000..52438b8
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java
@@ -0,0 +1,24 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster;
+
+import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
+import org.ovirt.engine.ui.uicommonweb.models.clusters.GlusterHookContentModel;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class GlusterHookContentPopupPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<GlusterHookContentModel, 
GlusterHookContentPopupPresenterWidget.ViewDef> {
+
+    public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<GlusterHookContentModel> {
+    }
+
+    @Inject
+    public GlusterHookContentPopupPresenterWidget(EventBus eventBus, ViewDef 
view) {
+        super(eventBus, view);
+    }
+
+    @Override
+    public void init(GlusterHookContentModel model) {
+        super.init(model);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java
new file mode 100644
index 0000000..0dbe79b
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java
@@ -0,0 +1,74 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster;
+
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
+import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelTextAreaLabelEditor;
+import org.ovirt.engine.ui.uicommonweb.models.clusters.GlusterHookContentModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget;
+
+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.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Label;
+import com.google.inject.Inject;
+
+public class GlusterHookContentPopupView extends 
AbstractModelBoundPopupView<GlusterHookContentModel> implements 
GlusterHookContentPopupPresenterWidget.ViewDef {
+
+    interface Driver extends SimpleBeanEditorDriver<GlusterHookContentModel, 
GlusterHookContentPopupView> {
+        Driver driver = GWT.create(Driver.class);
+    }
+
+    interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
GlusterHookContentPopupView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    interface ViewIdHandler extends 
ElementIdHandler<GlusterHookContentPopupView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+
+    @UiField
+    @Path(value = "content.entity")
+    EntityModelTextAreaLabelEditor contentEditor;
+
+    @UiField
+    @Ignore
+    Label messageLabel;
+
+    @Inject
+    public GlusterHookContentPopupView(EventBus eventBus, ApplicationResources 
resources, ApplicationConstants constants) {
+        super(eventBus, resources);
+        initComboBox();
+        initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+        localize(constants);
+        Driver.driver.initialize(this);
+    }
+
+    private void localize(ApplicationConstants constants) {
+    }
+
+    void initComboBox() {
+    }
+
+    @Override
+    public void edit(GlusterHookContentModel object) {
+        Driver.driver.edit(object);
+    }
+
+    @Override
+    public GlusterHookContentModel flush() {
+        return Driver.driver.flush();
+    }
+
+    @Override
+    public void setMessage(String message) {
+        super.setMessage(message);
+        messageLabel.setText(message);
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml
new file mode 100644
index 0000000..9ce1caf
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+       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>
+               .content textarea{
+                       height: 100%;
+                       width: 100%;
+               }
+       
+               .messageLabel {
+                       color: #FF0000;
+                       left: 10px;
+                       padding-top: 5px;
+                       padding-left: 5px;
+               }
+       </ui:style>
+
+       <d:SimpleDialogPanel width="450px" height="320px">
+               <d:content>
+                       <g:VerticalPanel>
+                               <e:EntityModelTextAreaLabelEditor  
addStyleNames="{style.content}" ui:field="contentEditor"/>
+                               <g:Label ui:field="messageLabel" 
addStyleNames="{style.messageLabel}" />
+                       </g:VerticalPanel>
+               </d:content>
+       </d:SimpleDialogPanel>
+
+</ui:UiBinder>
\ No newline at end of file
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 95b82d0..09d32fb 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
@@ -76,5 +76,11 @@
                 return getDetailModel().getDisableHookCommand();
             }
         });
+        getTable().addActionButton(new 
WebAdminButtonDefinition<GlusterHookEntity>(constants.viewHookContent()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getDetailModel().getViewHookCommand();
+            }
+        });
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic304b8155d5bf769813197a9796bf6d86fd10bfe
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