Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: edit vfsConfig- labels
......................................................................

webadmin: edit vfsConfig- labels

Change-Id: Icae8ed1d9b951e36593f38f9390d8d410f22d5cf
Signed-off-by: Alona Kaplan <alkap...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostBondInterfaceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostNicModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksAddBondModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksEditBondModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksJoinBondsModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsNicLabelModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostNicPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.ui.xml
15 files changed, 239 insertions(+), 135 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/36422/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostBondInterfaceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostBondInterfaceModel.java
index b8cc0c5..e8269e8 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostBondInterfaceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostBondInterfaceModel.java
@@ -177,13 +177,13 @@
         return getBootProtocol() == NetworkBootProtocol.STATIC_IP;
     }
 
-    private NicLabelModel labelsModel;
+    private PfNicLabelModel labelsModel;
 
-    public NicLabelModel getLabelsModel() {
+    public PfNicLabelModel getLabelsModel() {
         return labelsModel;
     }
 
-    protected void setLabelsModel(NicLabelModel labelsModel) {
+    protected void setLabelsModel(PfNicLabelModel labelsModel) {
         this.labelsModel = labelsModel;
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostNicModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostNicModel.java
index 152fbc8..319e669 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostNicModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostNicModel.java
@@ -4,6 +4,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.SortedSet;
 
 import org.ovirt.engine.core.common.businessentities.network.HostNicVfsConfig;
 import org.ovirt.engine.core.common.businessentities.network.Network;
@@ -14,13 +15,13 @@
 public class HostNicModel extends Model {
 
     public static final VfsConfigModel EMPTY_VFS_CONFIG_MODEL = new 
VfsConfigModel();
-    public static final NicLabelModel EMPTY_LABELS_MODEL = new NicLabelModel();
+    public static final PfNicLabelModel EMPTY_LABELS_MODEL = new 
PfNicLabelModel();
 
-    private NicLabelModel labelsModel = EMPTY_LABELS_MODEL;
+    private PfNicLabelModel labelsModel = EMPTY_LABELS_MODEL;
     private VfsConfigModel vfsConfigModel = EMPTY_VFS_CONFIG_MODEL;
     private VdsNetworkInterface iface;
 
-    public NicLabelModel getLabelsModel() {
+    public PfNicLabelModel getLabelsModel() {
         return labelsModel;
     }
 
@@ -28,16 +29,17 @@
             Collection<String> suggestedLabels,
             Map<String, String> labelToIface,
             HostNicVfsConfig vfsConfig,
-            List<Network> allClusterNetworks) {
+            List<Network> allClusterNetworks,
+            SortedSet<String> dcLabels) {
         
setTitle(ConstantsManager.getInstance().getMessages().editInterfaceTitle(iface.getName()));
         this.iface = iface;
 
         if (labelToIface != null) {
-            labelsModel = new NicLabelModel(Collections.singletonList(iface), 
suggestedLabels, labelToIface);
+            labelsModel = new 
PfNicLabelModel(Collections.singletonList(iface), suggestedLabels, 
labelToIface);
         }
 
         if (vfsConfig != null) {
-            vfsConfigModel = new VfsConfigModel(vfsConfig, allClusterNetworks);
+            vfsConfigModel = new VfsConfigModel(vfsConfig, allClusterNetworks, 
dcLabels);
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
index 10509c4..1468f31 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
@@ -37,6 +37,7 @@
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.VfsConfigModel.AllNetworksSelector;
@@ -251,7 +252,7 @@
         return operationCandidateEvent;
     }
 
-    private Set<LogicalNetworkModel> computeLabelChanges(NicLabelModel 
labelsModel,
+    private Set<LogicalNetworkModel> computeLabelChanges(PfNicLabelModel 
labelsModel,
             Collection<LogicalNetworkModel> originalNetworks) {
 
         Collection<String> removedLabels = labelsModel.getRemovedLabels();
@@ -294,7 +295,7 @@
         return valid;
     }
 
-    private void commitLabelChanges(NicLabelModel labelModel,
+    private void commitLabelChanges(PfNicLabelModel labelModel,
             VdsNetworkInterface iface,
             Collection<LogicalNetworkModel> potentialNetworks) {
 
@@ -307,8 +308,10 @@
     private void commitVfsConfigChanges(final HostNicVfsConfig 
hostNicVfsConfig,
             final VfsConfigModel vfsConfigModel) {
         if (hostNicVfsConfig != null) {
+            // Num of vfs
             
hostNicVfsConfig.setNumOfVfs(vfsConfigModel.getNumOfVfs().getEntity());
 
+            // Networks
             hostNicVfsConfig.setAllNetworksAllowed(vfsConfigModel
                     .getAllNetworksAllowed().getSelectedItem() == 
AllNetworksSelector.allNetworkAllowed);
             Set<Guid> networks = new HashSet<>();
@@ -319,7 +322,8 @@
             }
             hostNicVfsConfig.setNetworks(networks);
 
-            hostNicVfsConfig.setLabels(new 
HashSet<>(vfsConfigModel.getLabels().getItems()));
+            // Labels
+            
hostNicVfsConfig.setLabels(vfsConfigModel.getLabelsModel().computeSelcetedLabels());
         }
     }
 
@@ -364,7 +368,8 @@
                             isBondSalve ? null : getFreeLabels(),
                             isBondSalve ? null : labelToIface,
                             nicToVfsConfig.get(entity.getId()),
-                            allNetworks);
+                            allNetworks,
+                            dcLabels);
             editPopup = interfacePopupModel;
 
             // OK Target
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
index a254c3f..b3febaf 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
@@ -1,58 +1,20 @@
 package org.ovirt.engine.ui.uicommonweb.models.hosts;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
-import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation;
-import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
-import org.ovirt.engine.ui.uicompat.ConstantsManager;
 
-public class NicLabelModel extends ListModel<ListModel<String>> {
+public abstract class NicLabelModel extends ListModel<ListModel<String>> {
+    private List<String> originalLabels;
+    private Collection<String> suggestedLabels;
 
-    private final Collection<VdsNetworkInterface> srcIfaces; // original 
interfaces composing this interface (more than one in case this is a bond)
-    private final Set<String> containedIfaces; // names of the original 
interfaces
-    private final List<String> originalLabels; // union of labels attached 
originally to original interface(s)
-    private final Collection<String> suggestedLabels; // pre-existing DC 
labels that aren't yet assigned to an interface
-    private final Map<String, String> labelToIface; // map from each label to 
the name of the interface that uses it (possibly null)
-    private final Set<String> flushedLabels; // actual labels, as edited in 
the view
-
-    public Collection<String> getSuggestedLabels() {
-        return suggestedLabels;
-    }
-
-    public NicLabelModel() {
-        this(Collections.<VdsNetworkInterface> emptyList(),
-                Collections.<String> emptyList(),
-                Collections.<String, String> emptyMap());
-    }
-
-    public NicLabelModel(Collection<VdsNetworkInterface> srcIfaces,
-            Collection<String> suggestedLabels,
-            Map<String, String> labelToIface) {
-
-        this.srcIfaces = srcIfaces;
-        this.suggestedLabels = suggestedLabels;
-        this.labelToIface = labelToIface;
-
-        originalLabels = new ArrayList<String>();
-        containedIfaces = new HashSet<String>();
-        for (VdsNetworkInterface iface : srcIfaces) {
-            Set<String> labels = iface.getLabels();
-            if (labels != null) {
-                originalLabels.addAll(labels);
-            }
-            containedIfaces.add(iface.getName());
-        }
-
+    protected void initLabelModels() {
         Collections.sort(originalLabels, new LexoNumericComparator());
         LinkedList<ListModel<String>> items = new 
LinkedList<ListModel<String>>();
         for (String label : originalLabels) {
@@ -62,79 +24,33 @@
             items.add(labelModel);
         }
         setItems(items);
-
-        flushedLabels = new HashSet<String>();
     }
 
-    public boolean validate() {
-        Set<String> editedLabels = new HashSet<String>();
-        boolean res = true;
-        for (ListModel<String> labelModel : getItems()) {
-            labelModel.validateSelectedItem(new IValidation[] { new 
AsciiNameValidation() });
+    public Collection<String> getSuggestedLabels() {
+        return suggestedLabels;
+    }
 
-            String label = labelModel.getSelectedItem();
-            String usingIface = labelToIface.get(label);
-            if (usingIface != null && !containedIfaces.contains(usingIface)) {
-                
labelModel.getInvalidityReasons().add(ConstantsManager.getInstance()
-                        .getMessages()
-                        .labelInUse(label, usingIface));
-                labelModel.setIsValid(false);
-            }
+    public void setSuggestedLabels(Collection<String> suggestedLabels) {
+        this.suggestedLabels = suggestedLabels;
+    }
 
-            if (editedLabels.contains(label)) {
-                
labelModel.getInvalidityReasons().add(ConstantsManager.getInstance().getConstants().duplicateLabel());
-                labelModel.setIsValid(false);
-            }
-            editedLabels.add(label);
+    public List<String> getOriginalLabels() {
+        return originalLabels;
+    }
 
-            res &= labelModel.getIsValid();
-        }
-        return res;
+    public void setOriginalLabels(List<String> originalLabels) {
+        this.originalLabels = originalLabels;
     }
 
     /**
      * Flushes the labels as edited in the view into {@link #flushedLabels}.
      */
-    private void flush() {
-        flushedLabels.clear();
+    public Set<String> computeSelcetedLabels() {
+        Set<String> selectedLabels = new HashSet<>();
+        selectedLabels.clear();
         for (ListModel<String> labelModel : getItems()) {
-            flushedLabels.add(labelModel.getSelectedItem());
+            selectedLabels.add(labelModel.getSelectedItem());
         }
+        return selectedLabels;
     }
-
-    /**
-     * Computes which labels have been removed from this interface.
-     */
-    public Collection<String> getRemovedLabels() {
-        flush();
-        Set<String> removedLabels = new HashSet<String>(originalLabels);
-        removedLabels.removeAll(flushedLabels);
-        return removedLabels;
-    }
-
-    /**
-     * Computes which labels have been added to the interface.
-     */
-    public Collection<String> getAddedLabels() {
-        flush();
-        Set<String> addedLabels = new HashSet<String>(flushedLabels);
-        addedLabels.removeAll(originalLabels);
-        return addedLabels;
-    }
-
-    /**
-     * Clears the labels from the original interfaces composing this 
interface, and committing the actual labels (after
-     * removal/addition by the user).
-     *
-     * @param the
-     *            interface to which the actual labels will be committed.
-     */
-    public void commit(VdsNetworkInterface dstIface) {
-        for (VdsNetworkInterface iface : srcIfaces) {
-            iface.setLabels(null);
-        }
-        flush();
-        dstIface.setLabels(flushedLabels.isEmpty() ? null : flushedLabels);
-    }
-
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
new file mode 100644
index 0000000..dfe0df8
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
@@ -0,0 +1,127 @@
+package org.ovirt.engine.ui.uicommonweb.models.hosts;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation;
+import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+
+public class PfNicLabelModel extends NicLabelModel {
+
+    private final Collection<VdsNetworkInterface> srcIfaces; // original 
interfaces composing this interface (more than
+                                                             // one in case 
this is a bond)
+    private final Set<String> containedIfaces; // names of the original 
interfaces
+    private final Map<String, String> labelToIface; // map from each label to 
the name of the interface that uses it
+                                                    // (possibly null)
+    private final Set<String> flushedLabels; // actual labels, as edited in 
the view
+
+    public PfNicLabelModel() {
+        this(Collections.<VdsNetworkInterface> emptyList(),
+                Collections.<String> emptyList(),
+                Collections.<String, String> emptyMap());
+    }
+
+    public PfNicLabelModel(Collection<VdsNetworkInterface> srcIfaces,
+            Collection<String> suggestedLabels,
+            Map<String, String> labelToIface) {
+
+        List<String> tmpOriginalLabels = new ArrayList<String>(); // union of 
labels attached originally to original
+                                                                  // 
interface(s)
+
+        this.srcIfaces = srcIfaces;
+        this.labelToIface = labelToIface;
+
+        containedIfaces = new HashSet<String>();
+        for (VdsNetworkInterface iface : srcIfaces) {
+            Set<String> labels = iface.getLabels();
+            if (labels != null) {
+                tmpOriginalLabels.addAll(labels);
+            }
+            containedIfaces.add(iface.getName());
+        }
+
+        setSuggestedLabels(suggestedLabels);
+        setOriginalLabels(tmpOriginalLabels);
+        initLabelModels();
+
+        flushedLabels = new HashSet<String>();
+    }
+
+    public boolean validate() {
+        Set<String> editedLabels = new HashSet<String>();
+        boolean res = true;
+        for (ListModel<String> labelModel : getItems()) {
+            labelModel.validateSelectedItem(new IValidation[] { new 
AsciiNameValidation() });
+
+            String label = labelModel.getSelectedItem();
+            String usingIface = labelToIface.get(label);
+            if (usingIface != null && !containedIfaces.contains(usingIface)) {
+                
labelModel.getInvalidityReasons().add(ConstantsManager.getInstance()
+                        .getMessages()
+                        .labelInUse(label, usingIface));
+                labelModel.setIsValid(false);
+            }
+
+            if (editedLabels.contains(label)) {
+                
labelModel.getInvalidityReasons().add(ConstantsManager.getInstance().getConstants().duplicateLabel());
+                labelModel.setIsValid(false);
+            }
+            editedLabels.add(label);
+
+            res &= labelModel.getIsValid();
+        }
+        return res;
+    }
+
+    /**
+     * Flushes the labels as edited in the view into {@link #flushedLabels}.
+     */
+    private void flush() {
+        flushedLabels.clear();
+        flushedLabels.addAll(computeSelcetedLabels());
+    }
+
+    /**
+     * Computes which labels have been removed from this interface.
+     */
+    public Collection<String> getRemovedLabels() {
+        flush();
+        Set<String> removedLabels = new HashSet<String>(getOriginalLabels());
+        removedLabels.removeAll(flushedLabels);
+        return removedLabels;
+    }
+
+    /**
+     * Computes which labels have been added to the interface.
+     */
+    public Collection<String> getAddedLabels() {
+        flush();
+        Set<String> addedLabels = new HashSet<String>(flushedLabels);
+        addedLabels.removeAll(getOriginalLabels());
+        return addedLabels;
+    }
+
+    /**
+     * Clears the labels from the original interfaces composing this 
interface, and committing the actual labels (after
+     * removal/addition by the user).
+     * 
+     * @param the
+     *            interface to which the actual labels will be committed.
+     */
+    public void commit(VdsNetworkInterface dstIface) {
+        for (VdsNetworkInterface iface : srcIfaces) {
+            iface.setLabels(null);
+        }
+        flush();
+        dstIface.setLabels(flushedLabels.isEmpty() ? null : flushedLabels);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksAddBondModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksAddBondModel.java
index 9be5fde..857e238 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksAddBondModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksAddBondModel.java
@@ -19,7 +19,7 @@
         getBond().setItems(freeBonds);
         getBond().setSelectedItem(defaultBondName);
 
-        setLabelsModel(new NicLabelModel(ifaces, suggestedLabels, 
labelToIface));
+        setLabelsModel(new PfNicLabelModel(ifaces, suggestedLabels, 
labelToIface));
     }
 
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksEditBondModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksEditBondModel.java
index 7ff4d21..fe16b0e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksEditBondModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksEditBondModel.java
@@ -48,7 +48,7 @@
             getBondingOptions().setSelectedItem(customItem);
         }
 
-        setLabelsModel(new NicLabelModel(Collections.singletonList(bond), 
suggestedLabels, labelToIface));
+        setLabelsModel(new PfNicLabelModel(Collections.singletonList(bond), 
suggestedLabels, labelToIface));
     }
 
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksJoinBondsModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksJoinBondsModel.java
index b8939ab..49a49ff 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksJoinBondsModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/SetupNetworksJoinBondsModel.java
@@ -45,7 +45,7 @@
         getBondingOptions().setItems(bondOptions);
         
getBondingOptions().setSelectedItem(pairForBondOption.get(target.getBondOptions()));
 
-        setLabelsModel(new NicLabelModel(Arrays.asList(source.getEntity(), 
target.getEntity()), suggestedLabels, labelToIface));
+        setLabelsModel(new PfNicLabelModel(Arrays.asList(source.getEntity(), 
target.getEntity()), suggestedLabels, labelToIface));
     }
 
     private void addBondOptionIfMissing(String candidateOption) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigModel.java
index 4ec2d68..a635f1a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigModel.java
@@ -2,8 +2,11 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 import org.ovirt.engine.core.common.businessentities.network.HostNicVfsConfig;
 import org.ovirt.engine.core.common.businessentities.network.Network;
@@ -17,13 +20,13 @@
     private EntityModel<Integer> numOfVfs = new EntityModel<>();
     private ListModel<AllNetworksSelector> allNetworksAllowed = new 
ListModel<>();
     private ListModel<VfsConfigNetwork> networks = new ListModel<>();
-    private ListModel<String> labels = new ListModel<>();
+    private VfsNicLabelModel labelsModel;
 
     public VfsConfigModel() {
-        this(new HostNicVfsConfig(), new ArrayList<Network>());
+        this(new HostNicVfsConfig(), Collections.<Network> emptyList(), new 
TreeSet<String>());
     }
 
-    public VfsConfigModel(HostNicVfsConfig vfsConfig, List<Network> 
allClusterNetworks) {
+    public VfsConfigModel(HostNicVfsConfig vfsConfig, List<Network> 
allClusterNetworks, SortedSet<String> dcLabels) {
         setEntity(vfsConfig);
         maxNumOfVfs.setEntity(vfsConfig.getMaxNumOfVfs());
         numOfVfs.setEntity(vfsConfig.getNumOfVfs());
@@ -31,7 +34,9 @@
         allNetworksAllowed.setSelectedItem(vfsConfig.isAllNetworksAllowed() ? 
AllNetworksSelector.allNetworkAllowed
                 : AllNetworksSelector.specificNetworks);
         initNetworks(allClusterNetworks);
-        labels.setItems(vfsConfig.getLabels());
+
+        dcLabels.removeAll(vfsConfig.getLabels());
+        labelsModel = new VfsNicLabelModel(new 
ArrayList<>(vfsConfig.getLabels()), dcLabels);
     }
 
     public EntityModel<Integer> getNumOfVfs() {
@@ -58,12 +63,12 @@
         this.networks = networks;
     }
 
-    public ListModel<String> getLabels() {
-        return labels;
+    public VfsNicLabelModel getLabelsModel() {
+        return labelsModel;
     }
 
-    public void setLabels(ListModel<String> labels) {
-        this.labels = labels;
+    public void setLabelsModel(VfsNicLabelModel labels) {
+        this.labelsModel = labels;
     }
 
     public EntityModel<Integer> getMaxNumOfVfs() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsNicLabelModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsNicLabelModel.java
new file mode 100644
index 0000000..ca6220d
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsNicLabelModel.java
@@ -0,0 +1,13 @@
+package org.ovirt.engine.ui.uicommonweb.models.hosts;
+
+import java.util.Collection;
+import java.util.List;
+
+public class VfsNicLabelModel extends NicLabelModel {
+
+    public VfsNicLabelModel(List<String> originalLabels, Collection<String> 
suggestedLabels) {
+        setOriginalLabels(originalLabels);
+        setSuggestedLabels(suggestedLabels);
+        initLabelModels();
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostNicPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostNicPopupView.java
index d35714f..534c695 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostNicPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostNicPopupView.java
@@ -117,6 +117,6 @@
     public void showOnlyVfsConfig() {
         tabPanel.setVisible(false);
         contentPanel.setWidget(vfsConfigTab.getContent());
-        mainPanel.setWidth("400px"); //$NON-NLS-1$
+        mainPanel.setWidth("515px"); //$NON-NLS-1$
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.java
index b4b9ba2..0e85709 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.java
@@ -8,10 +8,16 @@
 
 import com.google.gwt.core.shared.GWT;
 import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.Widget;
 
 public class NicLabelWidget extends 
ScrollableAddRemoveRowWidget<NicLabelModel, ListModel<String>, NicLabelEditor> {
 
+    @UiField
+    @Ignore
+    Label titleLabel;
+
     public interface WidgetUiBinder extends UiBinder<Widget, NicLabelWidget> {
         WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.ui.xml
index 3acc82d..269b08e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/NicLabelWidget.ui.xml
@@ -27,7 +27,7 @@
     </ui:style>
 
     <g:FlowPanel addStyleNames="{style.mainPanel} nlw_mainPanel_pfly_fix" >
-        <g:Label text="{constants.labelsHostPopup}" 
addStyleNames="{style.labelStyle}" />
+        <g:Label ui:field="titleLabel" text="{constants.labelsHostPopup}" 
addStyleNames="{style.labelStyle}" />
         <g:ScrollPanel ui:field="scrollPanel" height="110px">
             <g:FlowPanel ui:field="contentPanel" />
         </g:ScrollPanel>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.java
index fe80bd1..f1f2755 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.java
@@ -52,6 +52,8 @@
 
     interface WidgetStyle extends CssResource {
         String valueWidth();
+
+        String labelsTitle();
     }
 
     @UiField
@@ -92,6 +94,10 @@
     @UiField
     FlowPanel allowedNetworksPanel;
 
+    @UiField
+    @Ignore
+    NicLabelWidget labelsWidget;
+
     ApplicationConstants constants;
 
     @Inject
@@ -131,6 +137,7 @@
 
     protected void addStyles() {
         numOfVfs.addContentWidgetStyleName(style.valueWidth());
+        labelsWidget.titleLabel.addStyleName(style.labelsTitle());
     }
 
     interface Style extends CssResource {
@@ -140,6 +147,7 @@
     @Override
     public void edit(final VfsConfigModel model) {
         driver.edit(model);
+        labelsWidget.edit(model.getLabelsModel());
         networks.asEditor().edit(model.getNetworks());
         initNetworksTable();
 
@@ -160,6 +168,7 @@
 
     @Override
     public VfsConfigModel flush() {
+        labelsWidget.flush();
         networks.asEditor().flush();
         return driver.flush();
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.ui.xml
index 9ac4380..04d4b09 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/VfsConfigWidget.ui.xml
@@ -3,7 +3,8 @@
 <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:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic">
+       xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
+       
xmlns:h="urn:import:org.ovirt.engine.ui.webadmin.section.main.view.popup.host">
        <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
 
        <ui:style 
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.host.VfsConfigWidget.WidgetStyle">
@@ -54,6 +55,23 @@
         .clear {
             clear: both;
         }
+
+        .labelWidget {
+            position: absolute !important;
+            width: auto !important;
+            display: inline-block;
+            margin-left: 8px;
+        }
+
+        .networksPanel {
+            display: inline-block;
+            width: 261px;
+        }
+
+        .labelsTitle {
+            font-weight: normal !important;
+            margin-top: 10px !important;
+        }
        </ui:style>
 
        <g:FlowPanel>
@@ -66,10 +84,13 @@
                <e:ListModelRadioGroupEditor 
ui:field="allNetworksSelectorEditor" addStyleNames="{style.allAllowedSelector}" 
/>
                <g:SimplePanel addStyleNames="{style.clear}" />
                <g:FlowPanel ui:field="allowedNetworksPanel" 
addStyleNames="{style.allowedNetworksPanel}" >
-                       <g:Label ui:field="selectNetworksLabel" 
addStyleNames="{style.selectNetworksLabel}" />
-                       <g:ScrollPanel addStyleNames="{style.dock}">
-                               <e:EntityModelCellTable ui:field="networks" />
-                       </g:ScrollPanel>
+                       <g:FlowPanel addStyleNames="{style.networksPanel}" >
+                               <g:Label ui:field="selectNetworksLabel" 
addStyleNames="{style.selectNetworksLabel}" />
+                               <g:ScrollPanel addStyleNames="{style.dock}">
+                                       <e:EntityModelCellTable 
ui:field="networks" />
+                               </g:ScrollPanel>
+                       </g:FlowPanel>
+                       <h:NicLabelWidget ui:field="labelsWidget" 
addStyleNames="{style.labelWidget}" />
                </g:FlowPanel>
        </g:FlowPanel>
 


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

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

Reply via email to