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