anmolbabu has uploaded a new change for review.

Change subject: webadmin : Geo replication configuration pop up
......................................................................

webadmin : Geo replication configuration pop up

Geo replication configuration pop up.

Change-Id: I150946fe016d85cb378ed3d548eab5581321fbfe
Signed-off-by: Anmol Babu <[email protected]>
---
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GeoRepConfigurationEntity.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ContextSensitiveEditTextOrTextCell.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EditTextORTextCell.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepConfigurationModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepConfigurationPopupPresenterWidget.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.xml
8 files changed, 264 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/17/34217/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GeoRepConfigurationEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GeoRepConfigurationEntity.java
new file mode 100644
index 0000000..0074b9d
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GeoRepConfigurationEntity.java
@@ -0,0 +1,56 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+import java.io.Serializable;
+
+import org.ovirt.engine.core.common.businessentities.BusinessEntity;
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+
+public class GeoRepConfigurationEntity extends IVdcQueryable implements 
BusinessEntity{
+
+    private static final long serialVersionUID = 1L;
+
+    private String configName;
+    private String configValue;
+    private boolean isEditable;
+
+    public GeoRepConfigurationEntity() {
+        // TODO Auto-generated constructor stub
+    }
+
+    public String getConfigName() {
+        return configName;
+    }
+
+    public void setConfigName(String configName) {
+        this.configName = configName;
+    }
+
+    public String getConfigValue() {
+        return configValue;
+    }
+
+    public void setConfigValue(String configValue) {
+        this.configValue = configValue;
+    }
+
+    public boolean isEditable() {
+        return isEditable;
+    }
+
+    public void setEditable(boolean isEditable) {
+        this.isEditable = isEditable;
+    }
+
+    @Override
+    public Serializable getId() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void setId(Serializable id) {
+        // TODO Auto-generated method stub
+        
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ContextSensitiveEditTextOrTextCell.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ContextSensitiveEditTextOrTextCell.java
new file mode 100644
index 0000000..599dcf6
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ContextSensitiveEditTextOrTextCell.java
@@ -0,0 +1,35 @@
+package org.ovirt.engine.ui.common.widget.table.column;
+
+import com.google.gwt.cell.client.AbstractCell;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.safehtml.client.SafeHtmlTemplates;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+
+public class ContextSensitiveEditTextOrTextCell extends 
AbstractCell<EditTextORTextCell>{
+
+    interface Template extends SafeHtmlTemplates {
+        @Template("<input type=\"text\" value=\"{0}\" 
tabindex=\"-1\"></input>")
+        SafeHtml editableInput(String value);
+        
+        @Template("<input type=\"text\" value=\"{0}\" tabindex=\"-1\" 
readonly></input>")
+        SafeHtml nonEditableInput(String value);
+    }
+
+    private static Template template;
+
+    public ContextSensitiveEditTextOrTextCell() {
+        if(template == null) {
+            template = GWT.create(Template.class);
+        }
+    }
+
+    @Override
+    public void render(Context context, EditTextORTextCell value, 
SafeHtmlBuilder sb) {
+        if(value.isEditable()) {
+            sb.append(template.editableInput(value.getText()));
+        } else {
+            sb.append(template.nonEditableInput(value.getText()));
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EditTextORTextCell.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EditTextORTextCell.java
new file mode 100644
index 0000000..90db77a
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/EditTextORTextCell.java
@@ -0,0 +1,32 @@
+package org.ovirt.engine.ui.common.widget.table.column;
+
+
+public class EditTextORTextCell {
+    private boolean editable;
+    private String text;
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
+    public boolean isEditable() {
+        return editable;
+    }
+
+    public void setEditable(boolean editable) {
+        this.editable = editable;
+    }
+
+    public EditTextORTextCell(boolean editable, String text) {
+        this.editable = editable;
+        this.text = text;
+    }
+
+    public EditTextORTextCell() {
+
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepConfigurationModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepConfigurationModel.java
new file mode 100644
index 0000000..7245783
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepConfigurationModel.java
@@ -0,0 +1,10 @@
+package org.ovirt.engine.ui.uicommonweb.models.gluster;
+
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+
+public class VolumeGeoRepConfigurationModel extends Model {
+
+    public VolumeGeoRepConfigurationModel() {
+    }
+
+}
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 d30bb88..20e0070 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
@@ -3910,4 +3910,13 @@
 
     @DefaultStringValue("NUMA Support")
     String numaSupport();
+
+    @DefaultStringValue("Name")
+    String geoRepConfigName();
+
+    @DefaultStringValue("Value")
+    String geoRepConfigValue();
+
+    @DefaultStringValue("Reset to Default")
+    String geoRepConfigResetToDefaults();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepConfigurationPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepConfigurationPopupPresenterWidget.java
new file mode 100644
index 0000000..998ce63
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepConfigurationPopupPresenterWidget.java
@@ -0,0 +1,18 @@
+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.VolumeGeoRepConfigurationModel;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class VolumeGeoRepConfigurationPopupPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<VolumeGeoRepConfigurationModel, 
VolumeGeoRepConfigurationPopupPresenterWidget.ViewDef> {
+
+    public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<VolumeGeoRepConfigurationModel> {
+    }
+
+    @Inject
+    public VolumeGeoRepConfigurationPopupPresenterWidget(EventBus eventBus, 
ViewDef view) {
+        super(eventBus, view);
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.java
new file mode 100644
index 0000000..0113c71
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.java
@@ -0,0 +1,92 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GeoRepConfigurationEntity;
+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.dialog.SimpleDialogPanel;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable;
+import 
org.ovirt.engine.ui.common.widget.table.column.ContextSensitiveEditTextOrTextCell;
+import org.ovirt.engine.ui.common.widget.table.column.EditTextCellWithTooltip;
+import 
org.ovirt.engine.ui.common.widget.table.column.EditTextColumnWithTooltip;
+import org.ovirt.engine.ui.common.widget.table.column.EditTextORTextCell;
+import org.ovirt.engine.ui.common.widget.table.column.EntityModelTextColumn;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeoRepConfigurationModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+
+import com.google.gwt.cell.client.EditTextCell;
+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.cellview.client.Column;
+import com.google.inject.Inject;
+
+public class VolumeGeoRepConfigurationPopupView extends 
AbstractModelBoundPopupView<VolumeGeoRepConfigurationModel> {
+
+    interface Driver extends 
SimpleBeanEditorDriver<VolumeGeoRepConfigurationModel, 
VolumeGeoRepConfigurationPopupView> {
+    }
+
+    interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
VolumeRebalanceStatusPopupView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    interface ViewIdHandler extends 
ElementIdHandler<VolumeRebalanceStatusPopupView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    private final Driver driver = GWT.create(Driver.class);
+
+    @UiField(provided = true)
+    @Ignore
+    @WithElementId
+    EntityModelCellTable<ListModel<VolumeGeoRepConfigurationModel>> 
geoReplicationConfigurationTable;
+
+    private ApplicationResources resources;
+    private ApplicationConstants constants;
+    private ApplicationMessages messages;
+
+    @Inject
+    public VolumeGeoRepConfigurationPopupView(EventBus eventBus, 
ApplicationResources resources, ApplicationConstants constants, 
ApplicationMessages messages) {
+        super(eventBus, resources);
+        this.resources = resources;
+        this.constants = constants;
+        this.messages = messages;
+        initEditors();
+    }
+
+    private void initEditors() {
+        geoReplicationConfigurationTable = new 
EntityModelCellTable<ListModel<VolumeGeoRepConfigurationModel>>();
+
+        geoReplicationConfigurationTable.addEntityModelColumn(new 
EntityModelTextColumn<GeoRepConfigurationEntity>() {
+            @Override
+            protected String getText(GeoRepConfigurationEntity entity) {
+                return entity.getConfigName();
+            }
+        }, constants.geoRepConfigName());
+
+        geoReplicationConfigurationTable.addColumn(new 
Column<GeoRepConfigurationEntity, EditTextORTextCell>(new 
ContextSensitiveEditTextOrTextCell()) {
+
+            @Override
+            public EditTextORTextCell getValue(GeoRepConfigurationEntity 
object) {
+                return new EditTextORTextCell(object.isEditable(), 
object.getConfigValue());
+            }
+        }, constants.geoRepConfigValue());
+
+    }
+
+    @Override
+    public void edit(VolumeGeoRepConfigurationModel object) {
+        
+    }
+
+    @Override
+    public VolumeGeoRepConfigurationModel flush() {
+        return driver.flush();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.xml
new file mode 100644
index 0000000..4e59866
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepConfigurationPopupView.xml
@@ -0,0 +1,12 @@
+<?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">
+
+       <d:SimpleDialogPanel width="1000px" height="550px">
+               <d:content>
+                       <e:EntityModelCellTable 
ui:field="geoReplicationConfigurationTable" />
+               </d:content>
+       </d:SimpleDialogPanel>
\ No newline at end of file


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I150946fe016d85cb378ed3d548eab5581321fbfe
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: anmolbabu <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to