Hello Alona Kaplan,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/16804

to review the following change.

Change subject: webadmin: Redesigned Add/Edit Network
......................................................................

webadmin: Redesigned Add/Edit Network

Split the Add/Edit Network popup to General and Cluster tabs, and
accommodated attaching networks to a provider, in which case VLAN, MTU
and VM definitions cannot be changed (VM is true by default), and a
provider label may be provided.

Change-Id: I25b5533a41358d51b959f94f36e390f56f630d93
Signed-off-by: Alona Kaplan <[email protected]>
---
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/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.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/EditDataCenterNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
9 files changed, 291 insertions(+), 115 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/16804/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 7ed31e4..012669e 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
@@ -27,6 +27,9 @@
 
     private EntityModel privateName;
     private EntityModel privateDescription;
+    private EntityModel export;
+    private ListModel externalProviders;
+    private EntityModel networkLabel;
     private EntityModel privateVLanTag;
     private EntityModel privateIsStpEnabled;
     private EntityModel privateHasVLanTag;
@@ -59,23 +62,55 @@
                 syncWithBackend();
             }
         });
-        setVLanTag(new EntityModel());
+        setExport(new EntityModel(false));
+        getExport().getEntityChangedEvent().addListener(new IEventListener() {
+
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                onExportChanged();
+            }
+        });
+
+        setExternalProviders(new ListModel());
+        setNetworkLabel(new EntityModel());
+
         EntityModel stpEnabled = new EntityModel();
         stpEnabled.setEntity(false);
         setIsStpEnabled(stpEnabled);
+
+        setVLanTag(new EntityModel());
         EntityModel hasVlanTag = new EntityModel();
         hasVlanTag.setEntity(false);
         setHasVLanTag(hasVlanTag);
+        getHasVLanTag().getEntityChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                updateVlanTagChangeability();
+            }
+        });
+
         setMtu(new EntityModel());
         EntityModel hasMtu = new EntityModel();
         hasMtu.setEntity(false);
         setHasMtu(hasMtu);
+        getHasMtu().getEntityChangedEvent().addListener(new IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                updateMtuChangeability();
+            }
+        });
+
         EntityModel isVmNetwork = new EntityModel();
         isVmNetwork.setEntity(true);
         setIsVmNetwork(isVmNetwork);
         EntityModel publicUse = new EntityModel();
         publicUse.setEntity(true);
         setPublicUse(publicUse);
+
+        // Update changeability according to initial values
+        onExportChanged();
+        updateVlanTagChangeability();
+        updateMtuChangeability();
     }
 
     public EntityModel getName()
@@ -96,6 +131,30 @@
     private void setDescription(EntityModel value)
     {
         privateDescription = value;
+    }
+
+    public EntityModel getExport() {
+        return export;
+    }
+
+    private void setExport(EntityModel value) {
+        export = value;
+    }
+
+    public ListModel getExternalProviders() {
+        return externalProviders;
+    }
+
+    public void setExternalProviders(ListModel externalProviders) {
+        this.externalProviders = externalProviders;
+    }
+
+    public EntityModel getNetworkLabel() {
+        return networkLabel;
+    }
+
+    public void setNetworkLabel(EntityModel networkLabel) {
+        this.networkLabel = networkLabel;
     }
 
     public EntityModel getVLanTag()
@@ -257,8 +316,10 @@
             getMtu().validateEntity(new IValidation[] { new 
NotEmptyValidation(), tempVar5 });
         }
 
+        getExternalProviders().validateSelectedItem(new IValidation [] { new 
NotEmptyValidation() });
+
         return getName().getIsValid() && getVLanTag().getIsValid() && 
getDescription().getIsValid()
-                && getMtu().getIsValid();
+                && getMtu().getIsValid() && 
getExternalProviders().getIsValid();
     }
 
     protected boolean firstInit = true;
@@ -284,7 +345,7 @@
 
     }
 
-    protected void addCommands(){
+    protected void addCommands() {
         UICommand tempVar2 = new UICommand("OnSave", this); //$NON-NLS-1$
         tempVar2.setTitle(ConstantsManager.getInstance().getConstants().ok());
         tempVar2.setIsDefault(true);
@@ -304,6 +365,7 @@
         network.setName((String) getName().getEntity());
         network.setStp((Boolean) getIsStpEnabled().getEntity());
         network.setDescription((String) getDescription().getEntity());
+        network.setLabel((String) getNetworkLabel().getEntity());
         network.setVmNetwork((Boolean) getIsVmNetwork().getEntity());
 
         network.setMtu(0);
@@ -370,4 +432,26 @@
     protected abstract void initMtu();
 
     protected abstract void initIsVm();
+
+    private void onExportChanged() {
+        boolean externalNetwork = (Boolean) getExport().getEntity();
+        getExternalProviders().setIsChangable(externalNetwork);
+        getNetworkLabel().setIsChangable(externalNetwork);
+        getHasVLanTag().setIsChangable(!externalNetwork);
+        getIsVmNetwork().setIsChangable(!externalNetwork);
+        getHasMtu().setIsChangable(!externalNetwork);
+        if (externalNetwork) {
+            getHasVLanTag().setEntity(false);
+            getIsVmNetwork().setEntity(true);
+            getHasMtu().setEntity(false);
+        }
+    }
+
+    private void updateVlanTagChangeability() {
+        getVLanTag().setIsChangable((Boolean) getHasVLanTag().getEntity());
+    }
+
+    private void updateMtuChangeability() {
+        getMtu().setIsChangable((Boolean) getHasMtu().getEntity());
+    }
 }
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 477f49e..a79268a 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
@@ -8,9 +8,11 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 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.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
+import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
@@ -77,7 +79,7 @@
 
     protected NetworkClusterModel createNetworkClusterModel(VDSGroup cluster) {
         NetworkClusterModel networkClusterModel = new 
NetworkClusterModel(cluster);
-        networkClusterModel.setAttached(false);
+        networkClusterModel.setAttached(true);
 
         return networkClusterModel;
     }
@@ -95,28 +97,41 @@
 
     @Override
     protected void executeSave() {
-        // New network
-        final AddNetworkStoragePoolParameters parameters =
-                new AddNetworkStoragePoolParameters(getSelectedDc().getId(), 
getNetwork());
-        parameters.setPublicUse((Boolean) getPublicUse().getEntity());
-        Frontend.RunAction(VdcActionType.AddNetwork,
-                parameters,
-                new IFrontendActionAsyncCallback() {
-                    @Override
-                    public void executed(FrontendActionAsyncResult result1) {
-                        VdcReturnValueBase retVal = result1.getReturnValue();
-                        boolean succeeded = false;
-                        if (retVal != null && retVal.getSucceeded())
-                        {
-                            succeeded = true;
-                        }
-                        postSaveAction(succeeded ? (Guid) 
retVal.getActionReturnValue()
-                                : null,
-                                succeeded);
+        IFrontendActionAsyncCallback addNetworkCallback = new 
IFrontendActionAsyncCallback() {
+            @Override
+            public void executed(FrontendActionAsyncResult result1) {
+                VdcReturnValueBase retVal = result1.getReturnValue();
+                boolean succeeded = false;
+                if (retVal != null && retVal.getSucceeded())
+                {
+                    succeeded = true;
+                }
+                postSaveAction(succeeded ? (Guid) retVal.getActionReturnValue()
+                        : null,
+                        succeeded);
 
-                    }
-                },
-                null);
+            }
+        };
+
+        // New network
+        if ((Boolean) getExport().getEntity()) {
+            Provider externalProvider = (Provider) 
getExternalProviders().getSelectedItem();
+            ProviderNetwork providerNetwork = new ProviderNetwork();
+            providerNetwork.setProviderId(externalProvider.getId());
+            getNetwork().setProvidedBy(providerNetwork);
+            final AddNetworkStoragePoolParameters parameters =
+                    new 
AddNetworkStoragePoolParameters(getSelectedDc().getId(), getNetwork());
+            Frontend.RunAction(VdcActionType.AddNetworkOnProvider,
+                    parameters, addNetworkCallback, null);
+        } else {
+            final AddNetworkStoragePoolParameters parameters =
+                    new 
AddNetworkStoragePoolParameters(getSelectedDc().getId(), getNetwork());
+            parameters.setPublicUse((Boolean) getPublicUse().getEntity());
+            Frontend.RunAction(VdcActionType.AddNetwork,
+                    parameters,
+                    addNetworkCallback,
+                    null);
+        }
     }
 
     @Override
@@ -136,8 +151,12 @@
             Network tempVar = new Network();
             tempVar.setId(networkId);
             tempVar.setName(getNetwork().getName());
+
             // Init default NetworkCluster values (required, display, status)
-            tempVar.setCluster(new NetworkCluster());
+            NetworkCluster networkCluster = new NetworkCluster();
+            networkCluster.setRequired((Boolean) getExport().getEntity());
+            tempVar.setCluster(networkCluster);
+
             actionParameters1.add(new 
AttachNetworkToVdsGroupParameter(attachNetworkToCluster, tempVar));
         }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
index cb7de49..555be7a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
@@ -4,6 +4,7 @@
 import java.util.Arrays;
 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.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkView;
@@ -75,6 +76,7 @@
         final NetworkModel networkModel = new NewNetworkModel(this);
         setWindow(networkModel);
 
+        networkModel.startProgress(null);
         initDcList(networkModel);
     }
 
@@ -97,6 +99,7 @@
         final NetworkModel networkModel = new EditNetworkModel(network, this);
         setWindow(networkModel);
 
+        networkModel.startProgress(null);
         initDcList(networkModel);
 
     }
@@ -118,6 +121,7 @@
             networkModel.getDataCenters().setItems(Arrays.asList(dc));
             networkModel.getDataCenters().setSelectedItem(dc);
             networkModel.getDataCenters().setIsChangable(false);
+            initExternalNetworksList(networkModel);
             return;
         }
 
@@ -137,11 +141,33 @@
                 } else {
                     
networkModel.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
                 }
-
+                initExternalNetworksList(networkModel);
             }
         }));
     }
 
+    private void initExternalNetworksList(final NetworkModel networkModel) {
+        if (networkModel instanceof NewNetworkModel) {
+            AsyncQuery getProvidersQuery = new AsyncQuery();
+            getProvidersQuery.asyncCallback = new INewAsyncCallback() {
+                @Override
+                public void onSuccess(Object model, Object result)
+                {
+                    List<Provider> providers = 
Linq.toList(Linq.filterNetworkProviders((List<Provider>) result));
+                    networkModel.getExternalProviders().setItems(providers);
+                    
networkModel.getExternalProviders().setSelectedItem(Linq.firstOrDefault(providers));
+                    networkModel.stopProgress();
+                }
+            };
+            AsyncDataProvider.GetAllProviders(getProvidersQuery);
+        } else {
+            Provider provider = new Provider();
+            provider.setName(((NetworkView) 
getSelectedItem()).getProviderName());
+            networkModel.getExternalProviders().setSelectedItem(provider);
+            networkModel.stopProgress();
+        }
+    }
+
     private StoragePool findDc(Guid dcId, List<StoragePool> dataCenters) {
         for (StoragePool dc : dataCenters) {
             if (dcId.equals(dc.getId())) {
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 8ccd9b0..5483c64 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")
@@ -168,6 +170,18 @@
 
     @DefaultStringValue("Description")
     String descriptionLabel();
+
+    @DefaultStringValue("Export")
+    String exportLabel();
+
+    @DefaultStringValue("Create on external provider")
+    String exportCheckboxLabel();
+
+    @DefaultStringValue("External Provider")
+    String externalProviderLabel();
+
+    @DefaultStringValue("Network Label")
+    String networkLabel();
 
     @DefaultStringValue("Host")
     String hostQpid();
@@ -1020,6 +1034,12 @@
 
     // Network
     @DefaultStringValue("General")
+    String generalTabNetworkPopup();
+
+    @DefaultStringValue("Cluster")
+    String clusterTabNetworkPopup();
+
+    @DefaultStringValue("General")
     String networkGeneralSubTabLabel();
 
     @DefaultStringValue("Clusters")
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 6096fcb..2cd7db2 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
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.webadmin.section.main.presenter.popup;
 
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
-import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -14,10 +13,6 @@
         extends AbstractModelBoundPopupPresenterWidget<T, V> {
 
     public interface ViewDef<T extends NetworkModel> extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<T> {
-
-        void setVLanTagEnabled(boolean flag);
-
-        void setMtuEnabled(boolean flag);
 
         void setMessageLabel(String label);
 
@@ -33,43 +28,6 @@
     public void init(final T model) {
         // Let the parent do its work
         super.init(model);
-
-        // Set the enabled/disabled status of the VLAN tag field
-        // according to the initial value in the model
-        Boolean hasVLanTagValue = (Boolean) model.getHasVLanTag().getEntity();
-        getView().setVLanTagEnabled(hasVLanTagValue);
-
-        // Listen for changes in the VLAN enable/disable status in order
-        // to enable/disable the VLAN tag field accordingly
-        model.getHasVLanTag().getEntityChangedEvent().addListener(new 
IEventListener() {
-            @Override
-            public void eventRaised(Event ev, Object sender, EventArgs args) {
-                EntityModel hasVLanTagEntity = (EntityModel) sender;
-                Boolean hasVLanTagValue = (Boolean) 
hasVLanTagEntity.getEntity();
-                getView().setVLanTagEnabled(hasVLanTagValue);
-            }
-        });
-
-        // Set the enabled/disabled status of the MTU field
-        // according to the initial value in the model
-        Boolean hasMtuValue = (Boolean) model.getHasMtu().getEntity();
-        getView().setMtuEnabled(hasMtuValue);
-
-        // Listen for changes in the MTU enable/disable status in order
-        // to enable/disable the MTU field accordingly
-        model.getHasMtu().getEntityChangedEvent().addListener(new 
IEventListener() {
-            @Override
-            public void eventRaised(Event ev, Object sender, EventArgs args) {
-                EntityModel hasMtuEntity = (EntityModel) sender;
-                Boolean hasMtuValue = (Boolean) hasMtuEntity.getEntity();
-                getView().setMtuEnabled(hasMtuValue);
-
-                // Clear MTU field in case MTU is disabled
-                if (!hasMtuValue) {
-                    model.getMtu().setEntity(null);
-                }
-            }
-        });
 
         // Listen to Properties
         model.getPropertyChangedEvent().addListener(new IEventListener() {
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 4d33bbe..55ed6f4 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
@@ -2,11 +2,13 @@
 
 import java.util.ArrayList;
 
+import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 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.SimpleDialogPanel;
+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.EntityModelCheckBoxEditor;
@@ -54,6 +56,10 @@
 
     @UiField
     @Ignore
+    public Label exportLabel;
+
+    @UiField
+    @Ignore
     public Label assignLabel;
 
     @UiField(provided = true)
@@ -68,6 +74,16 @@
     @UiField
     @Path(value = "description.entity")
     public EntityModelTextBoxEditor descriptionEditor;
+
+    @UiField(provided = true)
+    @Path(value = "export.entity")
+    @WithElementId("export")
+    public EntityModelCheckBoxEditor exportEditor;
+
+    @UiField(provided = true)
+    @Path(value = "externalProviders.selectedItem")
+    @WithElementId("externalProviders")
+    public ListModelListBoxEditor<Object> externalProviderEditor;
 
     @UiField(provided = true)
     @Path(value = "isVmNetwork.entity")
@@ -107,6 +123,18 @@
     @Path(value = "publicUse.entity")
     public final EntityModelCheckBoxEditor publicUseEditor;
 
+    @UiField
+    @Path(value = "networkLabel.entity")
+    public EntityModelTextBoxEditor networkLabel;
+
+    @UiField
+    @Ignore
+    public DialogTab generalTab;
+
+    @UiField
+    @Ignore
+    public DialogTab clusterTab;
+
     @Inject
     public AbstractNetworkPopupView(EventBus eventBus, ApplicationResources 
resources,
             ApplicationConstants constants, ApplicationTemplates templates) {
@@ -118,6 +146,13 @@
                 return ((StoragePool) object).getName();
             }
         });
+        externalProviderEditor = new ListModelListBoxEditor<Object>(new 
NullSafeRenderer<Object>() {
+            @Override
+            public String renderNullSafe(Object object) {
+                return ((Provider) object).getName();
+            }
+        });
+        exportEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT);
         hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
@@ -130,10 +165,17 @@
     }
 
     protected void localize(ApplicationConstants constants) {
+        generalTab.setLabel(constants.generalTabNetworkPopup());
+        clusterTab.setLabel(constants.clusterTabNetworkPopup());
+
         dataCenterEditor.setLabel(constants.networkPopupDataCenterLabel());
         assignLabel.setText(constants.networkPopupAssignLabel());
         nameEditor.setLabel(constants.nameLabel());
         descriptionEditor.setLabel(constants.descriptionLabel());
+        exportLabel.setText(constants.exportLabel());
+        exportEditor.setLabel(constants.exportCheckboxLabel());
+        externalProviderEditor.setLabel(constants.externalProviderLabel());
+        networkLabel.setLabel(constants.networkLabel());
         isVmNetworkEditor.setLabel(constants.vmNetworkLabel());
         vlanTagging.setLabel(constants.enableVlanTagLabel());
         hasMtuEditor.setLabel(constants.overrideMtuLabel());
@@ -156,16 +198,6 @@
     @Override
     public void focusInput() {
         nameEditor.setFocus(true);
-    }
-
-    @Override
-    public void setVLanTagEnabled(boolean flag) {
-        vlanTag.setEnabled(flag);
-    }
-
-    @Override
-    public void setMtuEnabled(boolean flag) {
-        mtuEditor.setEnabled(flag);
     }
 
     @Override
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 1db3e01..57d5e3b 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
@@ -2,15 +2,33 @@
 <!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:e="urn:import:org.ovirt.engine.ui.common.widget.editor" 
xmlns:we="urn:import:org.ovirt.engine.ui.webadmin.widget.editor"
+       xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab">
 
        <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
 
        <ui:style 
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.AbstractNetworkPopupView.WidgetStyle">
 
+       .generalTabTopDecorator {
+            background-color: #D3D3D3;
+            margin-bottom: 8px;
+            margin-top: 4px;
+            margin-right: 3px;
+            padding-top: 6px;
+            padding-bottom: 6px;
+        }
+
                .mainLabel {
                        font-weight: bold;
                        padding: 5px;
+               }
+
+               .sectionStyle {
+                       margin-top: 20px;
+               }
+
+               .exportField {
+                       padding-left: 10px;
                }
 
                .mtuEditor {
@@ -36,10 +54,6 @@
                        padding: 5px;
                }
 
-               .indent {
-                       padding-left: 20px;
-               }
-
                .publicUseEditor {
                        padding: 0px;
                        width: 100%;
@@ -47,38 +61,59 @@
 
        </ui:style>
 
-       <d:SimpleDialogPanel ui:field="mainPanel" width="435px" height="520px">
+       <d:SimpleDialogPanel ui:field="mainPanel" width="670px" height="520px">
                <d:content>
-                   <g:VerticalPanel>
-                               <g:FlowPanel>
-                                       <g:Label ui:field="mainLabel" 
addStyleNames="{style.mainLabel}" />
-                                       <g:HTMLPanel 
addStyleNames="{style.indent}">
-                                               <g:HTML ui:field="messageLabel" 
addStyleNames="{style.message}"/>
-                                               <e:ListModelListBoxEditor 
ui:field="dataCenterEditor"/>
-                                               <e:EntityModelTextBoxEditor 
ui:field="nameEditor" />
-                                               <e:EntityModelTextBoxEditor 
ui:field="descriptionEditor" />
-                                               <g:HorizontalPanel>
-                                                       
<e:EntityModelCheckBoxEditor ui:field="vlanTagging"/>
-                                                       
<e:EntityModelTextBoxOnlyEditor ui:field="vlanTag" />
-                                               </g:HorizontalPanel>
-                                               <e:EntityModelCheckBoxEditor 
ui:field="isVmNetworkEditor" />
-                                               <g:HorizontalPanel>
-                                                       
<e:EntityModelCheckBoxEditor ui:field="hasMtuEditor"/>
-                                                       
<e:EntityModelTextBoxOnlyEditor ui:field="mtuEditor" />
-                                               </g:HorizontalPanel>
-                                       </g:HTMLPanel>
-                               </g:FlowPanel>
-                               <g:VerticalPanel ui:field="attachPanel">
-                                       <g:Label ui:field="assignLabel" 
addStyleNames="{style.mainLabel}"/>
-                                       <g:HTMLPanel 
addStyleNames="{style.indent}">
-                                               <g:ScrollPanel height="160px" 
width="100%">
-                                                       <e:EntityModelCellTable 
ui:field="clustersTable" />
-                                               </g:ScrollPanel>
-                                       </g:HTMLPanel>
-                                       <e:EntityModelCheckBoxEditor 
ui:field="publicUseEditor"/>
-                               </g:VerticalPanel>
-                   </g:VerticalPanel>
+                       <t:DialogTabPanel ui:field="tabPanel" height="100%">
+                <t:tab>
+                    <t:DialogTab ui:field="generalTab">
+                        <t:content>
+                               <g:FlowPanel>
+                                                               <g:FlowPanel 
addStyleNames="{style.generalTabTopDecorator}">
+                                                                       <g:HTML 
ui:field="messageLabel" addStyleNames="{style.message}"/>
+                                                                       
<e:ListModelListBoxEditor ui:field="dataCenterEditor"/>
+                                                                       
<e:EntityModelTextBoxEditor ui:field="nameEditor" />
+                                                                       
<e:EntityModelTextBoxEditor ui:field="descriptionEditor" />
+                                                               </g:FlowPanel>
+                                       <g:FlowPanel 
addStyleNames="{style.sectionStyle}">
+                                                                       
<g:Label ui:field="exportLabel" addStyleNames="{style.mainLabel}" />
+                                               <e:EntityModelCheckBoxEditor 
ui:field="exportEditor" />
+                                                                       
<e:ListModelListBoxEditor ui:field="externalProviderEditor" 
addStyleNames="{style.exportField}" />
+                                                                       
<e:EntityModelTextBoxEditor ui:field="networkLabel" 
addStyleNames="{style.exportField}" />
+                                                               </g:FlowPanel>
+                                                               <g:FlowPanel 
addStyleNames="{style.sectionStyle}">
+                                                                       
<g:Label ui:field="mainLabel" addStyleNames="{style.mainLabel}" />
+                                                                       
<g:HorizontalPanel>
+                                                                               
<e:EntityModelCheckBoxEditor ui:field="vlanTagging"/>
+                                                                               
<e:EntityModelTextBoxOnlyEditor ui:field="vlanTag" />
+                                                                       
</g:HorizontalPanel>
+                                                                       
<e:EntityModelCheckBoxEditor ui:field="isVmNetworkEditor" />
+                                                                       
<g:HorizontalPanel>
+                                                                               
<e:EntityModelCheckBoxEditor ui:field="hasMtuEditor"/>
+                                                                               
<e:EntityModelTextBoxOnlyEditor ui:field="mtuEditor" />
+                                                                       
</g:HorizontalPanel>
+                                                               </g:FlowPanel>
+                                                               <g:FlowPanel 
addStyleNames="{style.sectionStyle}">
+                                                                       
<e:EntityModelCheckBoxEditor ui:field="publicUseEditor"/>
+                                                               </g:FlowPanel>
+                                                       </g:FlowPanel>
+                        </t:content>
+                    </t:DialogTab>
+                </t:tab>
+                <t:tab>
+                    <t:DialogTab ui:field="clusterTab">
+                        <t:content>
+                            <g:VerticalPanel ui:field="attachPanel">
+                                                               <g:Label 
ui:field="assignLabel" addStyleNames="{style.mainLabel}"/>
+                                                               <g:ScrollPanel 
height="160px" width="100%">
+                                                                       
<e:EntityModelCellTable ui:field="clustersTable" />
+                                                               </g:ScrollPanel>
+                                                       </g:VerticalPanel>
+                        </t:content>
+                    </t:DialogTab>
+                </t:tab>
+            </t:DialogTabPanel>
                </d:content>
        </d:SimpleDialogPanel>
+       
 
 </ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
index f76c500..ee4de7e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
@@ -15,6 +15,7 @@
             ApplicationResources resources,
             ApplicationConstants constants, ApplicationTemplates templates) {
         super(eventBus, resources, constants, templates);
+        mainPanel.setHeight("290px"); //$NON-NLS-1$
     }
 
     @Override
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 ad64c01..c78d127 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
@@ -25,7 +25,7 @@
             ApplicationConstants constants,
             ApplicationTemplates templates) {
         super(eventBus, resources, constants, templates);
-        mainPanel.setHeight("290px"); //$NON-NLS-1$
+        mainPanel.setHeight("310px"); //$NON-NLS-1$
         driver.initialize(this);
     }
 
@@ -45,6 +45,7 @@
     public void updateVisibility() {
         super.updateVisibility();
         attachPanel.setVisible(false);
+        clusterTab.setVisible(false);
     }
 
     @Override


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

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

Reply via email to