Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: add Network Provider tab to add host
......................................................................

webadmin: add Network Provider tab to add host

Change-Id: I0a23854ea8db144f375aae768867bf233c930e4e
Signed-off-by: Alona Kaplan <alkap...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.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/section/main/view/popup/host/HostPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
5 files changed, 234 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/16045/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index e0ec712..37b6c59 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -1099,6 +1099,9 @@
     @DefaultStringValue("SPM Priority")
     String spmPriority();
 
+    @DefaultStringValue("QPID")
+    String qpid();
+
     @DefaultStringValue("Refresh Rate")
     String refreshRate();
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
index 2de46c4..ca8f12d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
@@ -8,11 +8,12 @@
 
 import org.ovirt.engine.core.common.businessentities.FenceAgentOrder;
 import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue;
+import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VdsStatic;
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.GetNewVdsFenceStatusParameters;
 import org.ovirt.engine.core.common.queries.ValueObjectMap;
@@ -39,12 +40,12 @@
 import org.ovirt.engine.ui.uicommonweb.validation.KeyValuePairValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
-import org.ovirt.engine.ui.uicompat.UIConstants;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 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 org.ovirt.engine.ui.uicompat.UIConstants;
 
 public abstract class HostModel extends Model
 {
@@ -652,6 +653,65 @@
         privateProviders = value;
     }
 
+    private ListModel externalProviders;
+
+    public void setExternalProviders(ListModel externalProviders) {
+        this.externalProviders = externalProviders;
+    }
+
+    public ListModel getExternalProviders() {
+        return externalProviders;
+    }
+
+    private EntityModel hostIp;
+
+    public EntityModel getHostIp() {
+        return hostIp;
+    }
+
+    public void setHostIp(EntityModel hostIp) {
+        this.hostIp = hostIp;
+    }
+
+    private EntityModel qpidPort;
+
+    public EntityModel getQpidPort() {
+        return qpidPort;
+    }
+
+    public void setQpidPort(EntityModel qpidPort) {
+        this.qpidPort = qpidPort;
+    }
+
+    private EntityModel userName;
+
+    public EntityModel getUserName() {
+        return userName;
+    }
+
+    public void setUserName(EntityModel userName) {
+        this.userName = userName;
+    }
+
+    private EntityModel password;
+
+    public EntityModel getPassword() {
+        return password;
+    }
+
+    public void setPassword(EntityModel password) {
+        this.password = password;
+    }
+    private EntityModel interfaceMappings;
+
+    public EntityModel getInterfaceMappings() {
+        return interfaceMappings;
+    }
+
+    public void setInterfaceMappings(EntityModel interfaceMappings) {
+        this.interfaceMappings = interfaceMappings;
+    }
+
     public HostModel()
     {
         setTestCommand(new UICommand("Test", new ICommandTarget() { 
//$NON-NLS-1$
@@ -795,6 +855,60 @@
         setSpmPriority(new ListModel());
 
         initSpmPriorities();
+
+        setHostIp(new EntityModel());
+        setQpidPort(new EntityModel());
+        setUserName(new EntityModel());
+        setPassword(new EntityModel());
+
+        setInterfaceMappings(new EntityModel());
+
+        setExternalProviders(new ListModel());
+        getExternalProviders().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
+
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                onExternalProviderChanged();
+            }
+        });
+
+        onExternalProviderChanged();
+        initExternalNetworksList();
+    }
+
+    private void onExternalProviderChanged() {
+        if (getExternalProviders().getSelectedItem() == null) {
+            getHostIp().setIsChangable(false);
+            getQpidPort().setIsChangable(false);
+            getUserName().setIsChangable(false);
+            getPassword().setIsChangable(false);
+
+            getHostIp().setEntity(null);
+            getQpidPort().setEntity(null);
+            getUserName().setEntity(null);
+            getPassword().setEntity(null);
+
+        } else {
+            getHostIp().setIsChangable(true);
+            getQpidPort().setIsChangable(true);
+            getUserName().setIsChangable(true);
+            getPassword().setIsChangable(true);
+        }
+    }
+
+    private void initExternalNetworksList() {
+        AsyncQuery getProvidersQuery = new AsyncQuery();
+        getProvidersQuery.asyncCallback = new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object model, Object result)
+            {
+                ArrayList<Provider> providers = (ArrayList<Provider>) result;
+                providers.add(0, null);
+                getExternalProviders().setItems(providers);
+                getExternalProviders().setSelectedItem(null);
+            }
+        };
+        AsyncDataProvider.GetAllProviders(getProvidersQuery);
     }
 
     private void proxyUp() {
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 fc2c309..91c3a3b 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
@@ -2,6 +2,8 @@
 
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 
+import com.google.gwt.i18n.client.Constants.DefaultStringValue;
+
 public interface ApplicationConstants extends CommonApplicationConstants {
 
     @DefaultStringValue("oVirt Engine Web Administration")
@@ -162,6 +164,21 @@
 
     @DefaultStringValue("External Provider")
     String externalProviderLabel();
+
+    @DefaultStringValue("Host ip")
+    String hostIp();
+
+    @DefaultStringValue("Port")
+    String port();
+
+    @DefaultStringValue("User Name")
+    String userName();
+
+    @DefaultStringValue("Password")
+    String password();
+
+    @DefaultStringValue("Interface Mappings")
+    String interfaceMappings();
 
     @DefaultStringValue("NetworkLabel")
     String networkLabel();
@@ -475,6 +492,9 @@
     @DefaultStringValue("Console")
     String consoleButtonLabel();
 
+    @DefaultStringValue("Network Provider")
+    String networkProviderButtonLabel();
+
     @DefaultStringValue("Override display address")
     String enableConsoleAddressOverride();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
index c6b6b1f..0de4c77 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
@@ -3,9 +3,9 @@
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.ui.common.CommonApplicationTemplates;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
@@ -278,9 +278,13 @@
 
     @UiField
     @Ignore
+    DialogTab networkProviderTab;
+
+    @UiField
+    @Ignore
     VerticalPanel spmPanel;
 
-    @UiField(provided=true)
+    @UiField(provided = true)
     @Ignore
     InfoIcon consoleAddressInfoIcon;
 
@@ -307,6 +311,36 @@
     @UiField
     FlowPanel externalProviderPanel;
 
+    @UiField(provided = true)
+    @Path(value = "externalProviders.selectedItem")
+    @WithElementId("externalProviders")
+    public ListModelListBoxEditor<Object> externalProviderEditor;
+
+    @UiField
+    @Path(value = "hostIp.entity")
+    @WithElementId("hostIp")
+    EntityModelTextBoxEditor hostIp;
+
+    @UiField
+    @Path(value = "qpidPort.entity")
+    @WithElementId("qpidPort")
+    EntityModelTextBoxEditor qpidPort;
+
+    @UiField
+    @Path(value = "userName.entity")
+    @WithElementId("userName")
+    EntityModelTextBoxEditor userName;
+
+    @UiField
+    @Path(value = "password.entity")
+    @WithElementId("password")
+    EntityModelTextBoxEditor password;
+
+    @UiField
+    @Path(value = "interfaceMappings.entity")
+    @WithElementId("interfaceMappings")
+    EntityModelTextBoxEditor interfaceMappings;
+
     private final Driver driver = GWT.create(Driver.class);
 
     private final CommonApplicationTemplates applicationTemplates;
@@ -314,7 +348,10 @@
     private final ApplicationResources resources;
 
     @Inject
-    public HostPopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants, CommonApplicationTemplates 
applicationTemplates) {
+    public HostPopupView(EventBus eventBus,
+            ApplicationResources resources,
+            ApplicationConstants constants,
+            CommonApplicationTemplates applicationTemplates) {
         super(eventBus, resources);
         this.resources = resources;
         this.applicationTemplates = applicationTemplates;
@@ -331,7 +368,8 @@
 
     private void initInfoIcon(ApplicationConstants constants) {
         consoleAddressInfoIcon =
-                new 
InfoIcon(applicationTemplates.italicText(constants.enableConsoleAddressOverrideHelpMessage()),
 resources); //$NON-NLS-1$
+                new 
InfoIcon(applicationTemplates.italicText(constants.enableConsoleAddressOverrideHelpMessage()),
+                        resources); //$NON-NLS-1$
         providerSearchInfoIcon =
                 new 
InfoIcon(applicationTemplates.italicText(constants.providerSearchInfo()), 
resources);
     }
@@ -400,6 +438,13 @@
         // Check boxes
         pmEnabledEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         externalHostProviderEnabledEditor = new 
EntityModelCheckBoxEditor(Align.RIGHT);
+
+        externalProviderEditor = new ListModelListBoxEditor<Object>(new 
NullSafeRenderer<Object>() {
+            @Override
+            public String renderNullSafe(Object object) {
+                return ((Provider) object).getName();
+            }
+        });
     }
 
     void localize(ApplicationConstants constants) {
@@ -450,6 +495,15 @@
         // SPM tab
         spmTab.setLabel(constants.spmTestButtonLabel());
         consoleTab.setLabel(constants.consoleButtonLabel());
+
+        // Network Provider Tab
+        networkProviderTab.setLabel(constants.networkProviderButtonLabel());
+        externalProviderEditor.setLabel(constants.externalProviderLabel());
+        hostIp.setLabel(constants.hostIp());
+        qpidPort.setLabel(constants.port());
+        userName.setLabel(constants.userName());
+        password.setLabel(constants.password());
+        interfaceMappings.setLabel(constants.interfaceMappings());
     }
 
     private void applyModeCustomizations() {
@@ -540,7 +594,7 @@
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
                 PropertyChangedEventArgs e = (PropertyChangedEventArgs) args;
-                if (e.PropertyName == "IsChangable") {  //$NON-NLS-1$
+                if (e.PropertyName == "IsChangable") { //$NON-NLS-1$
                     
proxyListBox.setEnabled(object.getPmProxyPreferencesList().getIsChangable());
                 }
             }
@@ -553,8 +607,8 @@
                 List items = (List) 
object.getPmProxyPreferencesList().getItems();
 
                 Object selectedItem = proxyListBox.getSelectedIndex() >= 0
-                    ? items.get(proxyListBox.getSelectedIndex())
-                    : null;
+                        ? items.get(proxyListBox.getSelectedIndex())
+                        : null;
 
                 
object.getPmProxyPreferencesList().setSelectedItem(selectedItem);
             }
@@ -573,7 +627,6 @@
         
object.getSpmPriority().getSelectedItemChangedEvent().addListener(spmListener);
 
         createSpmControls(object);
-
 
         // Wire events on power management related controls.
         object.getPmVariants().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
index 1a1bf39..59f4d52 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
@@ -149,6 +149,21 @@
         .emptyEditor {
             display: none;
         }
+        
+        .qpidPanel {
+            background-color: #D3D3D3;
+        }
+        
+        .qpidInnerPanel {
+            padding-left: 20px;
+        }
+        
+        .qpidHeader {
+                       font-weight: bold;
+            margin-top: 10px;
+            margin-bottom: 10px;
+            paading-right: 6px;
+               }
 
     </ui:style>
 
@@ -267,6 +282,25 @@
                         </t:content>
                     </t:DialogTab>
                 </t:tab>
+                <t:tab>
+                    <t:DialogTab ui:field="networkProviderTab">
+                        <t:content>
+                            <g:FlowPanel>
+                               <e:ListModelListBoxEditor 
ui:field="externalProviderEditor"/>
+                               <g:FlowPanel addStyleNames="{style.qpidPanel}">
+                                       <g:Label text="{constants.qpid}" 
addStyleNames="{style.qpidHeader}"/>
+                                               <g:FlowPanel 
addStyleNames="{style.qpidInnerPanel}">
+                                               <e:EntityModelTextBoxEditor 
ui:field="hostIp"/>
+                                               <e:EntityModelTextBoxEditor 
ui:field="qpidPort"/>
+                                               <e:EntityModelTextBoxEditor 
ui:field="userName"/>
+                                               <e:EntityModelTextBoxEditor 
ui:field="password"/>
+                                       </g:FlowPanel>
+                               </g:FlowPanel>
+                                   <e:EntityModelTextBoxEditor 
ui:field="interfaceMappings"/>
+                            </g:FlowPanel>
+                        </t:content>
+                    </t:DialogTab>
+                </t:tab>
             </t:DialogTabPanel>
         </d:content>
     </d:SimpleDialogPanel>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0a23854ea8db144f375aae768867bf233c930e4e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <alkap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to