Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: Network dialog- default/custom mtu as radio buttons
......................................................................

webadmin: Network dialog- default/custom mtu as radio buttons

Substituting the 'override mtu' checkbox with two radio boxes-
'default' and 'custom'.

Bug-Url: https://bugzilla.redhat.com/1043808
Change-Id: I9f813fd292b56407c97ae69c1580061bbc0eef04
Signed-off-by: Alona Kaplan <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
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/NetworkGeneralModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.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/ApplicationMessages.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/NewNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
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
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkGeneralView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/renderer/MtuRenderer.java
19 files changed, 194 insertions(+), 100 deletions(-)


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

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
index a3f91907..4a94db5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
@@ -46,19 +46,15 @@
     }
 
     @Override
-    public void syncWithBackend() {
-        super.syncWithBackend();
-    }
-
-    @Override
     protected void initIsVm() {
         getIsVmNetwork().setEntity(getNetwork().isVmNetwork());
     }
 
     @Override
     protected void initMtu() {
-        getHasMtu().setEntity(getNetwork().getMtu() != 0);
-        getMtu().setEntity(getNetwork().getMtu() != 0 ? getNetwork().getMtu() 
: null);
+        boolean isCustomMtu = getNetwork().getMtu() != 0;
+        getMtuSelector().setSelectedItem(isCustomMtu ? MtuSelector.customMtu : 
MtuSelector.defaultMtu);
+        getMtu().setEntity(isCustomMtu() ? getNetwork().getMtu() : null);
     }
 
     @Override
@@ -74,8 +70,6 @@
             getHasVLanTag().setIsChangable(false);
             getVLanTag().setIsChangable(false);
             getIsVmNetwork().setIsChangable(false);
-            getHasMtu().setIsChangable(false);
-            getMtu().setIsChangable(false);
             getNetworkLabel().setIsChangable(false);
         }
         super.onExportChanged();
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 8bbddbe..d474bf5 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
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -61,8 +62,8 @@
     private EntityModel<Integer> privateVLanTag;
     private EntityModel<Boolean> privateIsStpEnabled;
     private EntityModel<Boolean> privateHasVLanTag;
-    private EntityModel<Boolean> privateHasMtu;
-    private EntityModel<Integer> privateMtu;
+    private ListModel<MtuSelector> mtuSelector;
+    private EntityModel<Integer> mtu;
     private EntityModel<Boolean> privateIsVmNetwork;
     private ListModel<NetworkQoS> qos;
     private boolean isSupportBridgesReportByVDSM = false;
@@ -124,16 +125,18 @@
             }
         });
 
-        setMtu(new EntityModel<Integer>());
-        EntityModel<Boolean> hasMtu = new EntityModel<Boolean>();
-        hasMtu.setEntity(false);
-        setHasMtu(hasMtu);
-        getHasMtu().getEntityChangedEvent().addListener(new IEventListener() {
+        ListModel<MtuSelector> mtuSelector = new ListModel<MtuSelector>();
+        mtuSelector.setItems(Arrays.asList(MtuSelector.values()));
+        setMtuSelector(mtuSelector);
+        mtuSelector.getSelectedItemChangedEvent().addListener(new 
IEventListener() {
+
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
-                updateMtuChangeability();
+                updateMtuSelectorsChangeability();
             }
         });
+
+        setMtu(new EntityModel<Integer>());
 
         EntityModel<Boolean> isVmNetwork = new EntityModel<Boolean>();
         isVmNetwork.setEntity(true);
@@ -168,7 +171,6 @@
 
         // Update changeability according to initial values
         updateVlanTagChangeability();
-        updateMtuChangeability();
         updateSubnetChangeability();
     }
 
@@ -299,24 +301,24 @@
         privateHasVLanTag = value;
     }
 
-    public EntityModel<Boolean> getHasMtu()
+    public ListModel<MtuSelector> getMtuSelector()
     {
-        return privateHasMtu;
+        return mtuSelector;
     }
 
-    private void setHasMtu(EntityModel<Boolean> value)
+    private void setMtuSelector(ListModel<MtuSelector> value)
     {
-        privateHasMtu = value;
+        mtuSelector = value;
     }
 
     public EntityModel<Integer> getMtu()
     {
-        return privateMtu;
+        return mtu;
     }
 
     private void setMtu(EntityModel<Integer> value)
     {
-        privateMtu = value;
+        mtu = value;
     }
 
     public EntityModel<Boolean> getIsVmNetwork()
@@ -361,20 +363,8 @@
     }
 
     public void setMTUOverrideSupported(boolean mtuOverrideSupported) {
-        if (!mtuOverrideSupported) {
-            
getHasMtu().setChangeProhibitionReason(ConstantsManager.getInstance().getMessages()
-                    
.mtuOverrideNotSupported(getSelectedDc().getcompatibility_version().toString()));
-            getHasMtu().setIsChangable(false);
-            getMtu().setIsChangable(false);
-            getHasMtu().setEntity(false);
-            getMtu().setEntity(null);
-        } else {
-            if (this.mtuOverrideSupported != mtuOverrideSupported) {
-                initMtu();
-            }
-            getHasMtu().setIsChangable(true);
-        }
         this.mtuOverrideSupported = mtuOverrideSupported;
+        updateMtuSelectorsChangeability();
     }
 
     public ListModel<StoragePool> getDataCenters()
@@ -451,13 +441,9 @@
             getVLanTag().validateEntity(new IValidation[] { new 
NotEmptyValidation(), tempVar4 });
         }
 
-        getMtu().setIsValid(true);
-        if (getHasMtu().getEntity())
-        {
-            IntegerValidation tempVar5 = new IntegerValidation();
-            tempVar5.setMinimum(68);
-            getMtu().validateEntity(new IValidation[] { new 
NotEmptyValidation(), tempVar5 });
-        }
+        IntegerValidation tempVar5 = new IntegerValidation();
+        tempVar5.setMinimum(68);
+        getMtu().validateEntity(new IValidation[] { new NotEmptyValidation(), 
tempVar5 });
 
         getExternalProviders().validateSelectedItem(new IValidation[] { new 
NotEmptyValidation() });
 
@@ -479,6 +465,10 @@
         return getName().getIsValid() && getVLanTag().getIsValid() && 
getDescription().getIsValid()
                 && getMtu().getIsValid() && 
getExternalProviders().getIsValid() && getComment().getIsValid()
                 && subnetValid && profilesValid && 
getNetworkLabel().getIsValid();
+    }
+
+    protected boolean isCustomMtu() {
+        return MtuSelector.customMtu == getMtuSelector().getSelectedItem();
     }
 
     public void syncWithBackend() {
@@ -547,7 +537,7 @@
         network.setLabel(label == null || !label.isEmpty() ? label : null);
 
         network.setMtu(0);
-        if (getHasMtu().getEntity())
+        if (getMtu().getIsChangable())
         {
             network.setMtu(Integer.parseInt(getMtu().getEntity().toString()));
         }
@@ -707,6 +697,8 @@
         String label = getNetworkLabel().getSelectedItem();
         getNetworkLabel().setItems(externalNetwork ? new HashSet<String>() : 
dcLabels);
         getNetworkLabel().setSelectedItem(label);
+
+        updateMtuSelectorsChangeability();
     }
 
     private void updateDcLabels() {
@@ -727,11 +719,52 @@
         getVLanTag().setIsChangable(getHasVLanTag().getEntity());
     }
 
-    private void updateMtuChangeability() {
-        getMtu().setIsChangable(getHasMtu().getEntity() && 
!getExport().getEntity());
+    private void setMtuSelectorsChangeability(boolean isChangeable, String 
prohibitionReason) {
+        if (!isChangeable) {
+            getMtuSelector().setChangeProhibitionReason(prohibitionReason);
+            getMtu().setChangeProhibitionReason(prohibitionReason);
+        }
+
+        getMtuSelector().setIsChangable(isChangeable);
+        getMtu().setIsChangable(isChangeable && isCustomMtu());
+    }
+
+    protected void updateMtuSelectorsChangeability() {
+
+        if (getSelectedDc() != null && !isMTUOverrideSupported()) {
+            setMtuSelectorsChangeability(false, 
ConstantsManager.getInstance().getMessages()
+                    
.mtuOverrideNotSupported(getSelectedDc().getcompatibility_version().toString()));
+            return;
+        }
+
+        if (getExport().getEntity()) {
+            setMtuSelectorsChangeability(false, null);
+            return;
+        }
+
+        setMtuSelectorsChangeability(true, null);
     }
 
     private void updateSubnetChangeability() {
         getSubnetModel().toggleChangeability(getCreateSubnet().getEntity());
     }
+
+    public enum MtuSelector {
+        defaultMtu(ConstantsManager.getInstance()
+                .getMessages()
+                .defaultMtu((Integer) 
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.DefaultMtu))),
+        customMtu(ConstantsManager.getInstance().getConstants().customMtu());
+
+        private String description;
+
+        private MtuSelector(String description) {
+            this.description = description;
+        }
+
+        @Override
+        public String toString() {
+            return description;
+        }
+    }
+
 }
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 4968ca3..7468552 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
@@ -51,6 +51,8 @@
         
setTitle(ConstantsManager.getInstance().getConstants().newLogicalNetworkTitle());
         setHelpTag(HelpTag.new_logical_network);
         setHashName("new_logical_network"); //$NON-NLS-1$
+
+        initMtu();
     }
 
     @Override
@@ -87,7 +89,7 @@
 
     @Override
     protected void initMtu() {
-        getHasMtu().setEntity(false);
+        getMtuSelector().setSelectedItem(MtuSelector.defaultMtu);
         getMtu().setEntity(null);
     }
 
@@ -105,11 +107,9 @@
     protected void onExportChanged() {
         boolean externalNetwork = (Boolean) getExport().getEntity();
         getExternalProviders().setIsChangable(externalNetwork);
-        getIsVmNetwork().setIsChangable(!externalNetwork);
-        getHasMtu().setIsChangable(!externalNetwork);
+        getIsVmNetwork().setIsChangable(!externalNetwork && 
isSupportBridgesReportByVDSM());
         if (externalNetwork) {
             getIsVmNetwork().setEntity(true);
-            getHasMtu().setEntity(false);
         }
 
         Iterable<NetworkClusterModel> networkClusters = 
getNetworkClusterList().getItems();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkGeneralModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkGeneralModel.java
index 1f02bf6..25e42e3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkGeneralModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkGeneralModel.java
@@ -69,11 +69,7 @@
         setRole(role);
         setVlan(extendedNetwork.getVlanId());
 
-        if (extendedNetwork.getMtu() == 0) {
-            setMtu(null);
-        } else {
-            setMtu(extendedNetwork.getMtu());
-        }
+        setMtu(extendedNetwork.getMtu());
 
         if (extendedNetwork.isExternal()) {
             setExternalId(extendedNetwork.getProvidedBy().getExternalId());
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 6a53e3a..ab3bfbb 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -2316,5 +2316,11 @@
 
     @DefaultStringValue("Login")
     String loginButtonLabel();
+
+    @DefaultStringValue("Default")
+    String defaultMtu();
+
+    @DefaultStringValue("Custom")
+    String customMtu();
 }
 
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
index 677cd6d..a77a7b9 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
@@ -391,4 +391,7 @@
 
     @DefaultMessage("{0} {1} have been written in the current profiling 
interval out of {2} {3} during profiling")
     String bytesWrittenInCurrentProfileInterval(String currentBytesWritten, 
String currentBytesWrittenUnit, String totalBytes, String totalBytesUnit);
+
+    @DefaultMessage("Default ({0})")
+    String defaultMtu(int mtu);
 }
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 7fe8bcd..1f3d289 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
@@ -245,8 +245,8 @@
     @DefaultStringValue("Enable VLAN tagging")
     String enableVlanTagLabel();
 
-    @DefaultStringValue("Override MTU")
-    String overrideMtuLabel();
+    @DefaultStringValue("MTU")
+    String mtuLabel();
 
     @DefaultStringValue("Create subnet")
     String createSubnetLabel();
@@ -2015,9 +2015,6 @@
 
     @DefaultStringValue("none")
     String noneVlan();
-
-    @DefaultStringValue("host's default")
-    String defaultMtu();
 
     @DefaultStringValue("New")
     String newNetworkProfile();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java
index 173e052..a54c1be 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationMessages.java
@@ -89,7 +89,6 @@
     @DefaultMessage("Rebalance {0}")
     String rebalanceStatusMessage(JobExecutionStatus jobStatus);
 
-
     @DefaultMessage("{0} Bytes")
     String rebalanceFileSizeBytes(String size);
 
@@ -105,4 +104,6 @@
     @DefaultMessage("{0}. Moving the display network will drop VM console 
connectivity until they are restarted.")
     String moveDisplayNetworkWarning(String networkOperationMessage);
 
+    @DefaultMessage("Default ({0})")
+    String defaultMtu(int mtu);
 }
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 6f3f908..42d6c28 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
@@ -26,6 +26,8 @@
         void toggleProfilesVisibility(boolean visible);
 
         UiCommandButton getQosButton();
+
+        void addMtuEditor();
     }
 
     public AbstractNetworkPopupPresenterWidget(EventBus eventBus, V view) {
@@ -75,6 +77,8 @@
                 getView().getQosButton().getCommand().execute();
             }
         });
+
+        getView().addMtuEditor();
     }
 
     @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 23b6362..962f5a5 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
@@ -15,6 +15,7 @@
 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.ListModelListBoxEditor;
+import org.ovirt.engine.ui.common.widget.editor.ListModelRadioGroupEditor;
 import org.ovirt.engine.ui.common.widget.editor.ListModelSuggestBoxOnlyEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.IntegerEntityModelTextBoxOnlyEditor;
@@ -27,7 +28,9 @@
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkClusterModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel.MtuSelector;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.AbstractNetworkPopupPresenterWidget;
@@ -44,6 +47,7 @@
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.VerticalPanel;
@@ -109,11 +113,10 @@
     @Path(value = "VLanTag.entity")
     public IntegerEntityModelTextBoxOnlyEditor vlanTag;
 
-    @UiField(provided = true)
-    @Path(value = "hasMtu.entity")
-    public final EntityModelCheckBoxEditor hasMtuEditor;
-
     @UiField
+    @Path(value = "mtuSelector.selectedItem")
+    public ListModelRadioGroupEditor<MtuSelector> mtuSelectorEditor;
+
     @Path(value = "mtu.entity")
     public IntegerEntityModelTextBoxOnlyEditor mtuEditor;
 
@@ -180,9 +183,9 @@
     @Ignore
     public Label profilesLabel;
 
- @Inject
- public AbstractNetworkPopupView(EventBus eventBus, ApplicationResources 
resources,
-            ApplicationConstants constants, ApplicationTemplates templates) {
+    @Inject
+    public AbstractNetworkPopupView(EventBus eventBus, ApplicationResources 
resources,
+            ApplicationConstants constants, ApplicationTemplates templates, 
final ApplicationMessages messages) {
         super(eventBus, resources);
         // Initialize Editors
         dataCenterEditor = new ListModelListBoxEditor<StoragePool>(new 
NullSafeRenderer<StoragePool>() {
@@ -213,7 +216,7 @@
         });
         isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT);
-        hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
+        mtuEditor = new IntegerEntityModelTextBoxOnlyEditor();
         createSubnetEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         networkLabelLabel = new StringEntityModelLabel();
         networkLabel = new ListModelSuggestBoxOnlyEditor();
@@ -243,7 +246,7 @@
         commentEditor.setLabel(constants.commentLabel());
         isVmNetworkEditor.setLabel(constants.vmNetworkLabel());
         vlanTagging.setLabel(constants.enableVlanTagLabel());
-        hasMtuEditor.setLabel(constants.overrideMtuLabel());
+        mtuSelectorEditor.setLabel(constants.mtuLabel());
         qosEditor.setLabel(constants.hostNetworkQos());
         createSubnetEditor.setLabel(constants.createSubnetLabel());
 
@@ -252,19 +255,21 @@
 
    protected void addStyles() {
         vlanTag.addContentWidgetStyleName(style.valueBox());
+        mtuSelectorEditor.addLabelStyleName(style.noPadding());
+        mtuSelectorEditor.addLabelStyleName(style.mtuLabel());
+        mtuSelectorEditor.addContentWidgetStyleName(style.mtuSelector());
         mtuEditor.addContentWidgetStyleName(style.valueBox());
+        mtuEditor.addWrapperStyleName(style.inlineBlock());
         networkLabel.addContentWidgetStyleName(style.valueBox());
         qosEditor.addContentWidgetStyleName(style.valueBox());
         isVmNetworkEditor.addContentWidgetStyleName(style.vmNetworkStyle());
         isVmNetworkEditor.asCheckBox().addStyleName(style.vmNetworkStyle());
-        vlanTagging.addContentWidgetStyleName(style.checkBox());
-        vlanTagging.asCheckBox().addStyleName(style.checkBox());
-        hasMtuEditor.addContentWidgetStyleName(style.checkBox());
-        hasMtuEditor.asCheckBox().addStyleName(style.checkBox());
-        networkLabelLabel.addStyleName(style.checkBox());
-        networkLabelLabel.addStyleName(style.inlineLabel());
-        qosEditor.addLabelStyleName(style.checkBox());
-        qosEditor.addLabelStyleName(style.inlineLabel());
+        vlanTagging.addContentWidgetStyleName(style.noPadding());
+        vlanTagging.asCheckBox().addStyleName(style.noPadding());
+        networkLabelLabel.addStyleName(style.noPadding());
+        networkLabelLabel.addStyleName(style.inlineBlock());
+        qosEditor.addLabelStyleName(style.noPadding());
+        qosEditor.addLabelStyleName(style.inlineBlock());
     }
 
     @Override
@@ -438,14 +443,23 @@
         return addQosButton;
     }
 
+    public void addMtuEditor() {
+        FlowPanel panel = 
mtuSelectorEditor.asRadioGroup().getPanel(MtuSelector.customMtu);
+        panel.add(mtuEditor);
+    }
+
     interface WidgetStyle extends CssResource {
         String valueBox();
 
-        String checkBox();
+        String noPadding();
+
+        String mtuSelector();
 
         String vmNetworkStyle();
 
-        String inlineLabel();
+        String inlineBlock();
+
+        String mtuLabel();
     }
 
 }
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 f283e59..e22539a 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
@@ -41,8 +41,15 @@
             width: 100px;
         }
 
-        .checkBox {
+        .noPadding {
             padding: 0px !important;
+        }
+
+        .mtuSelector {
+            width: auto;
+            padding: 0px;
+            float: none;
+            display: inline-block;
         }
 
         .vmNetworkStyle {
@@ -73,7 +80,13 @@
             width: 340px;
         }
 
-        .inlineLabel {
+        .mtuLabel {
+            width: 230px;
+            position: relative;
+            top: -25px;
+        }
+
+        .inlineBlock {
             display: inline-block;
         }
 
@@ -108,10 +121,7 @@
                                         <ge:EntityModelCheckBoxEditor 
ui:field="isVmNetworkEditor" />
                                         <g:Image 
resource="{resources.networkVm}" addStyleNames="{style.vmNetworkImage}" />
                                     </g:HorizontalPanel>
-                                    <g:HorizontalPanel 
addStyleNames="{style.dependentField}">
-                                        <ge:EntityModelCheckBoxEditor 
ui:field="hasMtuEditor"/>
-                                        
<ge:IntegerEntityModelTextBoxOnlyEditor ui:field="mtuEditor" />
-                                    </g:HorizontalPanel>
+                                    <e:ListModelRadioGroupEditor 
ui:field="mtuSelectorEditor" addStyleNames="{style.dependentField}" />
                                     <w:EntityModelWidgetWithInfo 
ui:field="networkLabelWithInfo" addStyleNames="{style.dependentField} 
{style.propertyWidth} anpv_networkLabelPanel_pfly_fix" />
                                     <g:HorizontalPanel 
verticalAlignment="ALIGN_MIDDLE" visible="false">
                                         <e:ListModelListBoxEditor 
ui:field="qosEditor" addStyleNames="{style.dependentField} 
{style.propertyWidth}" />
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/NewNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/NewNetworkPopupView.java
index 5242646..6100277 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/NewNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/NewNetworkPopupView.java
@@ -4,6 +4,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkClusterModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NewNetworkModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.NewNetworkPopupPresenterWidget;
@@ -23,8 +24,8 @@
     @Inject
     public NewNetworkPopupView(EventBus eventBus,
             ApplicationResources resources,
-            ApplicationConstants constants, ApplicationTemplates templates) {
-        super(eventBus, resources, constants, templates);
+            ApplicationConstants constants, ApplicationTemplates templates, 
ApplicationMessages messages) {
+        super(eventBus, resources, constants, templates, messages);
         driver.initialize(this);
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
index d6bd4f6..74c7339 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
@@ -20,7 +20,7 @@
             ApplicationConstants constants,
             ApplicationTemplates templates,
             ApplicationMessages messages) {
-        super(eventBus, resources, constants, templates);
+        super(eventBus, resources, constants, templates, messages);
         this.messages = messages;
     }
 
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..4797f17 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
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter;
 
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.EditDataCenterNetworkPopupPresenterWidget;
@@ -13,8 +14,8 @@
     @Inject
     public EditDataCenterNetworkPopupView(EventBus eventBus,
             ApplicationResources resources,
-            ApplicationConstants constants, ApplicationTemplates templates) {
-        super(eventBus, resources, constants, templates);
+            ApplicationConstants constants, ApplicationTemplates templates, 
ApplicationMessages messages) {
+        super(eventBus, resources, constants, templates, messages);
     }
 
     @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 9df1aaf..30ddf13 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
@@ -2,6 +2,7 @@
 
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.EditNetworkModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.EditNetworkPopupPresenterWidget;
@@ -23,8 +24,9 @@
     public EditNetworkPopupView(EventBus eventBus,
             ApplicationResources resources,
             ApplicationConstants constants,
-            ApplicationTemplates templates) {
-        super(eventBus, resources, constants, templates);
+            ApplicationTemplates templates,
+            ApplicationMessages messages) {
+        super(eventBus, resources, constants, templates, messages);
         driver.initialize(this);
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
index e1e85dd..8105ae6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter;
 
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.NewDataCenterNetworkPopupPresenterWidget;
@@ -14,8 +15,8 @@
     @Inject
     public NewDataCenterNetworkPopupView(EventBus eventBus,
             ApplicationResources resources,
-            ApplicationConstants constants, ApplicationTemplates templates) {
-        super(eventBus, resources, constants, templates);
+            ApplicationConstants constants, ApplicationTemplates templates, 
ApplicationMessages messages) {
+        super(eventBus, resources, constants, templates, messages);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
index e526dce..8617845 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
@@ -3,7 +3,9 @@
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
+import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.BondNetworkInterfaceModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.LogicalNetworkModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkInterfaceModel;
@@ -43,6 +45,7 @@
             
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkNotSyncImage()).getHTML());
     SafeHtml alertImage =
             
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.alertImage()).getHTML());
+    private static int defaultMtu = (Integer) 
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.DefaultMtu);
 
     public ItemInfoPopup() {
         super(true);
@@ -127,8 +130,9 @@
         }
 
         // Mtu
-        if (entity.getMtu() != 0) {
-            addRow(constants.mtuItemInfo(), String.valueOf(entity.getMtu()));
+        if (!entity.isExternal()) {
+            addRow(constants.mtuItemInfo(),
+                    entity.getMtu() == 0 ? messages.defaultMtu(defaultMtu) : 
String.valueOf(entity.getMtu()));
         }
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkGeneralView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkGeneralView.java
index 68898f5..b42a571 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkGeneralView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkGeneralView.java
@@ -16,6 +16,7 @@
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.SubTabNetworkGeneralPresenter;
+import org.ovirt.engine.ui.webadmin.widget.renderer.MtuRenderer;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.editor.client.Editor;
@@ -41,7 +42,7 @@
     TextBoxLabel description = new TextBoxLabel();
     TextBoxLabel role = new TextBoxLabel();
     ValueLabel<Integer> vlan = new ValueLabel<Integer>(new 
EmptyValueRenderer<Integer>(constants.noneVlan()));
-    ValueLabel<Integer> mtu = new ValueLabel<Integer>(new 
EmptyValueRenderer<Integer>(constants.defaultMtu()));
+    ValueLabel<Integer> mtu = new ValueLabel<Integer>(new MtuRenderer());
     TextBoxLabel externalId = new TextBoxLabel();
 
     @UiField(provided = true)
@@ -70,7 +71,11 @@
 
         formBuilder.addFormItem(new FormItem(constants.roleNetwork(), role, 0, 
1));
         formBuilder.addFormItem(new FormItem(constants.vlanNetwork(), vlan, 1, 
1));
-        formBuilder.addFormItem(new FormItem(constants.mtuNetwork(), mtu, 2, 
1));
+        formBuilder.addFormItem(new FormItem(constants.mtuNetwork(), mtu, 2, 
1) {
+            public boolean getIsAvailable() {
+                return getDetailModel().getExternalId() == null;
+            }
+        });
 
         formBuilder.addFormItem(new 
FormItem(constants.externalIdProviderNetwork(), externalId, 3, 0) {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/renderer/MtuRenderer.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/renderer/MtuRenderer.java
new file mode 100644
index 0000000..7974374
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/renderer/MtuRenderer.java
@@ -0,0 +1,22 @@
+package org.ovirt.engine.ui.webadmin.widget.renderer;
+
+import org.ovirt.engine.core.common.queries.ConfigurationValues;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.text.shared.AbstractRenderer;
+
+public class MtuRenderer extends AbstractRenderer<Integer> {
+
+    private static int defaultMtu =
+            (Integer) 
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.DefaultMtu);
+
+    private final ApplicationMessages messages = 
GWT.create(ApplicationMessages.class);
+
+    @Override
+    public String render(Integer mtu) {
+        return mtu == 0 ? messages.defaultMtu(defaultMtu) : mtu.toString();
+    }
+
+}


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

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

Reply via email to