Mike Kolesnik has uploaded a new change for review.

Change subject: webadmin: Add subnet left tab to new network dialog
......................................................................

webadmin: Add subnet left tab to new network dialog

With this left tab it would be possible to add a subnet directly while
adding a network to an external provider.

Change-Id: I5054c208f692a321d60532046ffa576770c4ec6b
Signed-off-by: Mike Kolesnik <mkole...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.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/presenter/popup/AbstractNetworkPopupPresenterWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
7 files changed, 121 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/22690/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index 14a987e..8a1d5e6 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -9,8 +9,10 @@
 import org.ovirt.engine.core.common.action.VnicProfileParameters;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfile;
+import 
org.ovirt.engine.core.common.businessentities.network.ExternalSubnet.IpVersion;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
@@ -25,6 +27,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.profiles.NetworkProfilesModel;
 import org.ovirt.engine.ui.uicommonweb.models.profiles.NewVnicProfileModel;
 import org.ovirt.engine.ui.uicommonweb.models.profiles.VnicProfileModel;
+import org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation;
@@ -60,6 +63,10 @@
     private NetworkProfilesModel profiles;
     private final Network network;
     private final ListModel sourceListModel;
+    private EntityModel<String> subnetName;
+    private EntityModel<String> subnetCidr;
+    private ListModel<IpVersion> subnetIpVersion;
+    private ExternalSubnet subnet;
 
     public NetworkModel(ListModel sourceListModel)
     {
@@ -139,6 +146,12 @@
         profiles.add(defaultProfile);
         getProfiles().setDefaultProfile(defaultProfile);
         getProfiles().setItems(profiles);
+
+        setSubnetName(new EntityModel<String>());
+        setSubnetCidr(new EntityModel<String>());
+        setSubnetIpVersion(new ListModel<IpVersion>());
+        
getSubnetIpVersion().setItems(AsyncDataProvider.getExternalSubnetIpVerionList());
+
 
         // Update changeability according to initial values
         onExportChanged();
@@ -371,6 +384,30 @@
         return sourceListModel;
     }
 
+    public EntityModel<String> getSubnetName() {
+        return subnetName;
+    }
+
+    private void setSubnetName(EntityModel<String> subnetName) {
+        this.subnetName = subnetName;
+    }
+
+    public EntityModel<String> getSubnetCidr() {
+        return subnetCidr;
+    }
+
+    private void setSubnetCidr(EntityModel<String> subnetCidr) {
+        this.subnetCidr = subnetCidr;
+    }
+
+    public ListModel<IpVersion> getSubnetIpVersion() {
+        return subnetIpVersion;
+    }
+
+    private void setSubnetIpVersion(ListModel<IpVersion> subnetIpVersion) {
+        this.subnetIpVersion = subnetIpVersion;
+    }
+
     public boolean validate()
     {
         RegexValidation tempVar = new RegexValidation();
@@ -408,6 +445,15 @@
 
         getExternalProviders().validateSelectedItem(new IValidation[] { new 
NotEmptyValidation() });
 
+        getSubnetName().validateEntity(new IValidation[] { new 
AsciiNameValidation() });
+        getSubnetCidr().setIsValid(true);
+        getSubnetIpVersion().setIsValid(true);
+        if (getSubnetName().getEntity() != null && 
!getSubnetName().getEntity().isEmpty()) {
+            getSubnetCidr().validateEntity(new IValidation[] { new 
NotEmptyValidation() });
+            getSubnetIpVersion().validateSelectedItem(new IValidation[] { new 
NotEmptyValidation() });
+        }
+
+
         boolean profilesValid = true;
         Iterable<VnicProfileModel> profiles = getProfiles().getItems();
         for (VnicProfileModel profileModel : profiles) {
@@ -418,6 +464,7 @@
 
         return getName().getIsValid() && getVLanTag().getIsValid() && 
getDescription().getIsValid()
                 && getMtu().getIsValid() && 
getExternalProviders().getIsValid() && getComment().getIsValid()
+                && getSubnetName().getIsValid() && 
getSubnetCidr().getIsValid() && getSubnetIpVersion().getIsValid()
                 && profilesValid;
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
index e5254c0..1c53cf4 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.ovirt.engine.core.common.action.AddExternalSubnetParameters;
 import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
 import org.ovirt.engine.core.common.action.AttachNetworkToVdsGroupParameter;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -10,6 +11,7 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
 import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork;
@@ -180,6 +182,17 @@
         }
 
         
Frontend.getInstance().runMultipleAction(VdcActionType.AttachNetworkToVdsGroup, 
actionParameters1);
+
+        if ((Boolean) getExport().getEntity() && 
!getSubnetName().getEntity().isEmpty()) {
+            ExternalSubnet subnet = new ExternalSubnet();
+            subnet.setName(getSubnetName().getEntity());
+            subnet.setCidr(getSubnetCidr().getEntity());
+            subnet.setIpVersion(getSubnetIpVersion().getSelectedItem());
+
+            actionParameters1 = new ArrayList<VdcActionParametersBase>();
+            actionParameters1.add(new AddExternalSubnetParameters(subnet, 
networkId));
+            
Frontend.getInstance().runMultipleAction(VdcActionType.AddSubnetToProvider, 
actionParameters1);
+        }
     }
 
     public ArrayList<NetworkClusterModel> getClustersToAttach()
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 6126f69..32c93aa 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
@@ -1083,6 +1083,9 @@
     @DefaultStringValue("Profiles")
     String profilesTabNetworkPopup();
 
+    @DefaultStringValue("Subnet")
+    String subnetTabNetworkPopup();
+
     @DefaultStringValue("General")
     String networkGeneralSubTabLabel();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
index 05948d4..c169822 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
@@ -18,6 +18,8 @@
 
         void updateVisibility();
 
+        void toggleSubnetVisibility(boolean visible);
+
         void toggleProfilesVisibility(boolean visible);
     }
 
@@ -43,6 +45,14 @@
             }
         });
 
+        getView().toggleSubnetVisibility((Boolean) 
model.getExport().getEntity());
+        model.getExport().getEntityChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                getView().toggleSubnetVisibility((Boolean) 
model.getExport().getEntity());
+            }
+        });
+
         
getView().toggleProfilesVisibility(model.getProfiles().getIsAvailable());
         model.getProfiles().getPropertyChangedEvent().addListener(new 
IEventListener() {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
index 9cf6068..dea76aa 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
@@ -4,6 +4,7 @@
 
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import 
org.ovirt.engine.core.common.businessentities.network.ExternalSubnet.IpVersion;
 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;
@@ -11,10 +12,12 @@
 import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTab;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable;
 import 
org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable.SelectionMode;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxOnlyEditor;
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor;
+import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
 import org.ovirt.engine.ui.common.widget.table.column.CheckboxColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
@@ -32,6 +35,7 @@
 import com.google.gwt.cell.client.Cell.Context;
 import com.google.gwt.cell.client.FieldUpdater;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.Editor.Path;
 import com.google.gwt.event.logical.shared.ValueChangeEvent;
 import com.google.gwt.event.logical.shared.ValueChangeHandler;
 import com.google.gwt.event.shared.EventBus;
@@ -131,6 +135,18 @@
     public EntityModelTextBoxEditor networkLabel;
 
     @UiField
+    @Path("subnetName.entity")
+    public StringEntityModelTextBoxEditor subnetNameEditor;
+
+    @UiField
+    @Path("subnetCidr.entity")
+    public StringEntityModelTextBoxEditor subnetCidrEditor;
+
+    @UiField(provided = true)
+    @Path("subnetIpVersion.selectedItem")
+    public ListModelListBoxEditor<IpVersion> subnetIpVersionEditor;
+
+    @UiField
     @Ignore
     public VnicProfilesEditor profilesEditor;
 
@@ -145,6 +161,10 @@
     @UiField
     @Ignore
     public DialogTab profilesTab;
+
+    @UiField
+    @Ignore
+    public DialogTab subnetTab;
 
     @UiField
     @Ignore
@@ -178,6 +198,7 @@
                 }
             }
         });
+        subnetIpVersionEditor = new ListModelListBoxEditor<IpVersion>(new 
EnumRenderer<IpVersion>());
         isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT);
         hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
@@ -192,6 +213,7 @@
         generalTab.setLabel(constants.generalTabNetworkPopup());
         clusterTab.setLabel(constants.clusterTabNetworkPopup());
         profilesTab.setLabel(constants.profilesTabNetworkPopup());
+        subnetTab.setLabel(constants.subnetTabNetworkPopup());
 
         dataCenterEditor.setLabel(constants.networkPopupDataCenterLabel());
         assignLabel.setText(constants.networkPopupAssignLabel());
@@ -205,6 +227,10 @@
         isVmNetworkEditor.setLabel(constants.vmNetworkLabel());
         vlanTagging.setLabel(constants.enableVlanTagLabel());
         hasMtuEditor.setLabel(constants.overrideMtuLabel());
+
+        subnetNameEditor.setLabel(constants.nameExternalSubnet());
+        subnetCidrEditor.setLabel(constants.cidrExternalSubnet());
+        subnetIpVersionEditor.setLabel(constants.ipVersionExternalSubnet());
 
         profilesLabel.setText(constants.profilesLabel());
     }
@@ -373,6 +399,11 @@
     }
 
     @Override
+    public void toggleSubnetVisibility(boolean visible) {
+        subnetTab.setVisible(visible);
+    }
+
+    @Override
     public void updateVisibility() {
         messageLabel.setVisible(false);
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
index c62dfd1..44dc4f7 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
@@ -1,8 +1,11 @@
 <?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:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor"
+       xmlns:g="urn:import:com.google.gwt.user.client.ui"
+       xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
+       xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
+       xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
+       xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor"
        xmlns:v="urn:import:org.ovirt.engine.ui.webadmin.widget.vnicProfile"
        xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab">
 
@@ -106,6 +109,17 @@
                     </t:DialogTab>
                 </t:tab>
                 <t:tab>
+                    <t:DialogTab ui:field="subnetTab">
+                        <t:content>
+                                                       <g:FlowPanel>
+                                                               
<ge:StringEntityModelTextBoxEditor ui:field="subnetNameEditor" />
+                                                               
<ge:StringEntityModelTextBoxEditor ui:field="subnetCidrEditor" />
+                                                               
<e:ListModelListBoxEditor ui:field="subnetIpVersionEditor"/>
+                                                       </g:FlowPanel>
+                        </t:content>
+                    </t:DialogTab>
+                </t:tab>
+                <t:tab>
                     <t:DialogTab ui:field="profilesTab">
                         <t:content>
                                <g:FlowPanel>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
index 3e7974d..9df1aaf 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
@@ -46,6 +46,7 @@
         super.updateVisibility();
         attachPanel.setVisible(false);
         clusterTab.setVisible(false);
+        toggleSubnetVisibility(false);
     }
 
     @Override


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

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

Reply via email to