anmolbabu has uploaded a new change for review.

Change subject: webadmin : Geo-Replication action confirmation popup
......................................................................

webadmin : Geo-Replication action confirmation popup

Geo-Replication action confirmation popup

Change-Id: Ib9bf8f15ca617de36b149b17b6ded7a81e52ab4b
Signed-off-by: Anmol Babu <anb...@redhat.com>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepActionConfirmationModel.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
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.ui.xml
6 files changed, 305 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/39632/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepActionConfirmationModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepActionConfirmationModel.java
new file mode 100644
index 0000000..963113e
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepActionConfirmationModel.java
@@ -0,0 +1,85 @@
+package org.ovirt.engine.ui.uicommonweb.models.gluster;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
+
+
+public class GlusterVolumeGeoRepActionConfirmationModel extends Model {
+    private EntityModel<String> masterVolume;
+    private EntityModel<String> slaveVolume;
+    private EntityModel<String> slaveHost;
+    private EntityModel<Boolean> force;
+    private String forceLabel;
+    private String forceHelp;
+
+    public GlusterVolumeGeoRepActionConfirmationModel() {
+        init();
+    }
+
+    private void init() {
+        setMasterVolume(new EntityModel<String>());
+        setSlaveVolume(new EntityModel<String>());
+        setSlaveHost(new EntityModel<String>());
+        setForce(new EntityModel<Boolean>());
+
+    }
+
+    protected void initWindow(GlusterGeoRepSession selectedSession) {
+        getForce().setEntity(false);
+        getMasterVolume().setEntity(selectedSession.getMasterVolumeName());
+        getSlaveVolume().setEntity(selectedSession.getSlaveVolumeName());
+        getSlaveHost().setEntity(selectedSession.getSlaveHostName());
+    }
+
+    public EntityModel<String> getMasterVolume() {
+        return masterVolume;
+    }
+
+    public void setMasterVolume(EntityModel<String> masterVolume) {
+        this.masterVolume = masterVolume;
+    }
+
+    public EntityModel<String> getSlaveVolume() {
+        return slaveVolume;
+    }
+
+    public void setSlaveVolume(EntityModel<String> slaveVolume) {
+        this.slaveVolume = slaveVolume;
+    }
+
+    public EntityModel<String> getSlaveHost() {
+        return slaveHost;
+    }
+
+    public void setSlaveHost(EntityModel<String> slaveHost) {
+        this.slaveHost = slaveHost;
+    }
+
+    public EntityModel<Boolean> getForce() {
+        return force;
+    }
+
+    public void setForce(EntityModel<Boolean> force) {
+        this.force = force;
+    }
+
+    public String getForceLabel() {
+        return forceLabel;
+    }
+
+    public String getForceHelp() {
+        return forceHelp;
+    }
+
+    public void setForceHelp(String forceHelp) {
+        this.forceHelp = forceHelp;
+        onPropertyChanged(new 
PropertyChangedEventArgs("forceHelp"));//$NON-NLS-1$
+    }
+
+    public void setForceLabel(String forceLabel) {
+        this.forceLabel = forceLabel;
+        onPropertyChanged(new 
PropertyChangedEventArgs("forceLabel"));//$NON-NLS-1$
+    }
+}
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 302f510..0a7a791 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
@@ -3900,4 +3900,14 @@
 
     @DefaultStringValue("It is suggested to optimise a Volume for virt store 
if the volume is of replica-3 type")
     String newVolumeOptimiseForVirtStoreWarning();
+
+    @DefaultStringValue("Master Volume")
+    String geoRepMasterVolume();
+
+    @DefaultStringValue("Host name (or) IP")
+    String geoRepSlaveHostIp();
+
+    @DefaultStringValue("Slave Volume")
+    String geoRepSlaveVolume();
+
 }
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 f003ee4..2af7153 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
@@ -42,6 +42,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.AddBrickPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.BrickAdvancedDetailsPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickStatusPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.ReplaceBrickPopupPresenterWidget;
@@ -277,6 +278,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.AddBrickPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.BrickAdvancedDetailsPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.DetachGlusterHostsPopupView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.GeoRepActionConfirmPopUpView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.RemoveBrickPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.RemoveBrickStatusPopupView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.ReplaceBrickPopupView;
@@ -1155,6 +1157,10 @@
                 VolumeRebalanceStatusPopupPresenterWidget.ViewDef.class,
                 VolumeRebalanceStatusPopupView.class);
 
+        
bindPresenterWidget(GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.class,
+                
GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.ViewDef.class,
+                GeoRepActionConfirmPopUpView.class);
+
         bindPresenterWidget(RemoveBrickStatusPopupPresenterWidget.class,
                 RemoveBrickStatusPopupPresenterWidget.ViewDef.class,
                 RemoveBrickStatusPopupView.class);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.java
new file mode 100644
index 0000000..a2205ac
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.java
@@ -0,0 +1,43 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster;
+
+import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.GlusterVolumeGeoRepActionConfirmationModel;
+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 com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<GlusterVolumeGeoRepActionConfirmationModel,
 GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.ViewDef> {
+
+    @Inject
+    public GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget(EventBus 
eventBus, ViewDef view) {
+        super(eventBus, view);
+    }
+
+    @Override
+    public void init(final GlusterVolumeGeoRepActionConfirmationModel model) {
+        super.init(model);
+
+        model.getPropertyChangedEvent().addListener(new IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                
if(((PropertyChangedEventArgs)args).propertyName.equalsIgnoreCase("forceLabel"))
 {//$NON-NLS-1$
+                    if(model.getForceLabel() != null) {
+                        getView().setForceLabelMessage(model);
+                    }
+                } else 
if(((PropertyChangedEventArgs)args).propertyName.equalsIgnoreCase("forceHelp")) 
{//$NON-NLS-1$
+                    getView().setForceHelp(model);
+                }
+            }
+        });
+    }
+
+    public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<GlusterVolumeGeoRepActionConfirmationModel>
 {
+        public void 
setForceLabelMessage(GlusterVolumeGeoRepActionConfirmationModel object);
+        public void setForceHelp(GlusterVolumeGeoRepActionConfirmationModel 
object);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.java
new file mode 100644
index 0000000..f980688
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.java
@@ -0,0 +1,125 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster;
+
+import org.ovirt.engine.ui.common.CommonApplicationTemplates;
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
+import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
+import org.ovirt.engine.ui.common.widget.Align;
+import org.ovirt.engine.ui.common.widget.dialog.InfoIcon;
+import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelLabelEditor;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.GlusterVolumeGeoRepActionConfirmationModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.editor.client.Editor.Ignore;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.inject.Inject;
+
+public class GeoRepActionConfirmPopUpView extends 
AbstractModelBoundPopupView<GlusterVolumeGeoRepActionConfirmationModel> 
implements GlusterVolumeGeoRepActionConfirmPopUpViewPresenterWidget.ViewDef {
+
+    interface Driver extends 
SimpleBeanEditorDriver<GlusterVolumeGeoRepActionConfirmationModel, 
GeoRepActionConfirmPopUpView> {
+    }
+
+    interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
GeoRepActionConfirmPopUpView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    interface ViewIdHandler extends 
ElementIdHandler<GeoRepActionConfirmPopUpView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    @UiField
+    WidgetStyle style;
+
+    @UiField
+    @Path("masterVolume.entity")
+    @WithElementId
+    StringEntityModelLabelEditor masterVolumeEditor;
+
+    @UiField
+    @Path("slaveVolume.entity")
+    @WithElementId
+    StringEntityModelLabelEditor slaveVolumeEditor;
+
+    @UiField
+    @Path("slaveHost.entity")
+    @WithElementId
+    StringEntityModelLabelEditor slaveHostEditor;
+
+    @UiField(provided = true)
+    @Path("force.entity")
+    @WithElementId
+    EntityModelCheckBoxEditor forceEditor;
+
+    @UiField(provided = true)
+    @Ignore
+    InfoIcon geoRepForceHelpIcon;
+
+    private ApplicationConstants constants;
+    private ApplicationResources resources;
+    private CommonApplicationTemplates templates;
+
+    private final Driver driver = GWT.create(Driver.class);
+
+    @Inject
+    public GeoRepActionConfirmPopUpView(EventBus eventBus, 
ApplicationResources resources, ApplicationConstants constants, 
CommonApplicationTemplates applicationTemplates) {
+        super(eventBus, resources);
+        this.constants = constants;
+        this.resources = resources;
+        this.templates = applicationTemplates;
+        initEditors();
+        initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+        localize();
+        addStyles();
+        driver.initialize(this);
+    }
+
+    private void addStyles() {
+        forceEditor.addContentWidgetStyleName(style.checkBoxEditorWidget());
+    }
+
+    private void localize() {
+        masterVolumeEditor.setLabel(constants.geoRepMasterVolume());
+        slaveVolumeEditor.setLabel(constants.geoRepSlaveVolume());
+        slaveHostEditor.setLabel(constants.geoRepSlaveHostIp());
+    }
+
+    @Override
+    public void 
setForceLabelMessage(GlusterVolumeGeoRepActionConfirmationModel object) {
+        forceEditor.setLabel(object.getForceLabel() == null ? 
constants.notAvailableLabel() : object.getForceLabel());
+        forceEditor.setVisible(object.getForceLabel() != null);
+    }
+
+    private void initEditors() {
+        forceEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
+        geoRepForceHelpIcon = new 
InfoIcon(templates.italicText(constants.notAvailableLabel()), resources);
+    }
+
+    @Override
+    public void edit(final GlusterVolumeGeoRepActionConfirmationModel object) {
+        driver.edit(object);
+    }
+
+    @Override
+    public void setForceHelp(GlusterVolumeGeoRepActionConfirmationModel 
object) {
+        
geoRepForceHelpIcon.setText(templates.italicText(object.getForceHelp()));
+    }
+
+    @Override
+    public GlusterVolumeGeoRepActionConfirmationModel flush() {
+        return driver.flush();
+    }
+
+    interface WidgetStyle extends CssResource {
+        String checkBoxEditorWidget();
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.ui.xml
new file mode 100644
index 0000000..673c2f1
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GeoRepActionConfirmPopUpView.ui.xml
@@ -0,0 +1,36 @@
+<?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"
+       xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic">
+       <ui:style
+               
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.GeoRepActionConfirmPopUpView.WidgetStyle">
+               .labelStyle {
+               font-size: 20px;
+               }
+
+               .checkBoxEditorWidget {
+               width: 150px;
+               }
+
+        .geoRepForceHelpIcon {
+        display: inline-block;
+        }
+
+       </ui:style>
+
+       <d:SimpleDialogPanel width="480px" height="300px">
+               <d:content>
+                       <g:FlowPanel>
+                               <ge:StringEntityModelLabelEditor 
ui:field="masterVolumeEditor" />
+                               <ge:StringEntityModelLabelEditor 
ui:field="slaveVolumeEditor" />
+                               <ge:StringEntityModelLabelEditor 
ui:field="slaveHostEditor" />
+                               <g:HorizontalPanel>
+                                       <ge:EntityModelCheckBoxEditor 
ui:field="forceEditor" />
+                                       <d:InfoIcon 
ui:field="geoRepForceHelpIcon" />
+                               </g:HorizontalPanel>
+                       </g:FlowPanel>
+               </d:content>
+       </d:SimpleDialogPanel>
+</ui:UiBinder>


-- 
To view, visit https://gerrit.ovirt.org/39632
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib9bf8f15ca617de36b149b17b6ded7a81e52ab4b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5-gluster
Gerrit-Owner: anmolbabu <anb...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to