Tal Nisan has uploaded a new change for review.

Change subject: webadmin: Refactored base Model class probihition reason option
......................................................................

webadmin: Refactored base Model class probihition reason option

Changed the base ui model prohibition reason from a list of Strings which
was only used with a single value to a string
Also fixed places in which the prohibition reason was not displayed correctly
due to the reason being set only after the changability property change thus
setting the reason after the rendering of the element as disabled

Change-Id: Idda39fe051b2547c202dab9a0a1970779001b70e
Signed-off-by: Tal Nisan <tni...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.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/hosts/HostListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseEditVmInterfaceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/DiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditVmInterfaceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmData.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmInterfaceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
23 files changed, 84 insertions(+), 123 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/12025/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
index 488c129..1dc685c 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
@@ -205,7 +205,7 @@
         if (model.getIsChangable()) {
             editor.setEnabled(true);
         } else {
-            editor.disable(model.getChangeProhibitionReasons());
+            editor.disable(model.getChangeProhibitionReason());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
index 64c55ec..ee370a6 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
@@ -1,7 +1,5 @@
 package org.ovirt.engine.ui.common.widget;
 
-import java.util.List;
-
 import org.ovirt.engine.ui.common.idhandler.HasElementId;
 import org.ovirt.engine.ui.common.widget.editor.EditorWidget;
 
@@ -195,17 +193,13 @@
     }
 
     @Override
-    public void disable(List<String> disabilityHints) {
+    public void disable(String disabilityHint) {
         setEnabled(false);
-        updateWidgetTitle(getDisabilityTitle(disabilityHints));
+        updateWidgetTitle(disabilityHint);
     }
 
     private void updateWidgetTitle(String title) {
         contentWidget.asWidget().setTitle(title);
-    }
-
-    private String getDisabilityTitle(List<String> disabilityHints) {
-        return disabilityHints != null && disabilityHints.size() > 0 ? 
disabilityHints.get(0) : null;
     }
 
     public void addContentWidgetStyleName(String styleName) {
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
index f6d9c2c..fbf1bfe 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
@@ -1,21 +1,19 @@
 package org.ovirt.engine.ui.common.widget;
 
-import java.util.List;
-
 import com.google.gwt.user.client.ui.HasEnabled;
 
 /**
- * Extends the {@link HasEnabled} interface, allowing widgets to be disabled 
while providing hints describing reasons
+ * Extends the {@link HasEnabled} interface, allowing widgets to be disabled 
while providing hint describing the reason
  * for disabling them.
  */
 public interface HasEnabledWithHints extends HasEnabled {
 
     /**
-     * Disables this widget, providing an optional list of disability hints.
+     * Disables this widget, providing an disability hint.
      *
-     * @param disabilityHints
-     *            Disability hints describing reasons why this widget is 
disabled (can be empty or {@code null}).
+     * @param disabilityHint
+     *            Disability hint describing reason why this widget is 
disabled (can be {@code null}).
      */
-    void disable(List<String> disabilityHints);
+    void disable(String disabilityHint);
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
index 4d92288..7d1c09d 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
@@ -72,8 +72,8 @@
     }
 
     @Override
-    public void disable(List<String> disabilityHints) {
-        widgetWithLabel.disable(disabilityHints);
+    public void disable(String disabilityHint) {
+        widgetWithLabel.disable(disabilityHint);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
index 8fa7fdf..5a0c72e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
@@ -163,7 +163,7 @@
     }
 
     /**
-     * Gets or sets the title of this model. There is no specific purpose for 
this property, use it on your convinience.
+     * Gets or sets the title of this model. There is no specific purpose for 
this property, use it on your convenience.
      */
     private String title;
 
@@ -269,21 +269,21 @@
 
             if (isChangable)
             {
-                getChangeProhibitionReasons().clear();
+                privateChangeProhibitionReason = null;
             }
         }
     }
 
-    private List<String> privateChangeProhibitionReasons;
+    private String privateChangeProhibitionReason;
 
-    public List<String> getChangeProhibitionReasons()
+    public String getChangeProhibitionReason()
     {
-        return privateChangeProhibitionReasons;
+        return privateChangeProhibitionReason;
     }
 
-    private void setChangeProhibitionReasons(List<String> value)
+    public void setChangeProhibitionReason(String value)
     {
-        privateChangeProhibitionReasons = value;
+        privateChangeProhibitionReason = value;
     }
 
     private boolean isSelected;
@@ -416,7 +416,6 @@
         setInvalidityReasons(new ObservableCollection<String>());
         setIsValid(true);
 
-        setChangeProhibitionReasons(new ObservableCollection<String>());
         setIsChangable(true);
         setAvailableInModes(ApplicationMode.AllModes);
         setIsAvailable(true);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
index 06982db..cc7b06d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
@@ -1,5 +1,9 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import org.ovirt.engine.core.common.action.RecoveryStoragePoolParameters;
 import org.ovirt.engine.core.common.action.StoragePoolManagementParameter;
 import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
@@ -47,10 +51,6 @@
 import org.ovirt.engine.ui.uicompat.NotifyCollectionChangedEventArgs;
 import org.ovirt.engine.ui.uicompat.ObservableCollection;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 @SuppressWarnings("unused")
 public class DataCenterListModel extends ListWithDetailsModel implements 
ISupportSystemTreeContext
@@ -325,10 +325,9 @@
                         List<storage_domains> storageDomainList = 
(List<storage_domains>) returnValue;
 
                         if (storageDomainList.size() != 0) {
-                            model.getStorageTypeList().setIsChangable(false);
                             model.getStorageTypeList()
-                                    .getChangeProhibitionReasons()
-                                    .add("Cannot change Repository type with 
Storage Domains attached to it"); //$NON-NLS-1$
+                                    .setChangeProhibitionReason("Cannot change 
Repository type with Storage Domains attached to it"); //$NON-NLS-1$
+                            model.getStorageTypeList().setIsChangable(false);
                         }
 
                     }
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 4dc170b..8f4d000 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
@@ -173,8 +173,7 @@
     public void setSupportBridgesReportByVDSM(boolean 
isSupportBridgesReportByVDSM) {
         if (!isSupportBridgesReportByVDSM) {
             getIsVmNetwork().setEntity(true);
-            
getIsVmNetwork().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
-                    .getMessages()
+            
getIsVmNetwork().setChangeProhibitionReason(ConstantsManager.getInstance().getMessages()
                     
.bridlessNetworkNotSupported(getSelectedDc().getcompatibility_version().toString()));
             getIsVmNetwork().setIsChangable(false);
         } else {
@@ -192,8 +191,7 @@
 
     public void setMTUOverrideSupported(boolean mtuOverrideSupported) {
         if (!mtuOverrideSupported) {
-            
getHasMtu().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
-                    .getMessages()
+            
getHasMtu().setChangeProhibitionReason(ConstantsManager.getInstance().getMessages()
                     
.mtuOverrideNotSupported(getSelectedDc().getcompatibility_version().toString()));
             getHasMtu().setIsChangable(false);
             getMtu().setIsChangable(false);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
index fc6e4cc..b8a5d50 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
@@ -1212,14 +1212,12 @@
 
         if (vds.getStatus() != VDSStatus.Maintenance && vds.getStatus() != 
VDSStatus.PendingApproval)
         {
-            model.getDataCenter().setIsChangable(false);
             model.getDataCenter()
-                    .getChangeProhibitionReasons()
-                    .add("Data Center can be changed only when the Host is in 
Maintenance mode."); //$NON-NLS-1$
-            model.getCluster().setIsChangable(false);
+                    .setChangeProhibitionReason("Data Center can be changed 
only when the Host is in Maintenance mode."); //$NON-NLS-1$
+            model.getDataCenter().setIsChangable(false);
             model.getCluster()
-                    .getChangeProhibitionReasons()
-                    .add("Cluster can be changed only when the Host is in 
Maintenance mode."); //$NON-NLS-1$
+                    .setChangeProhibitionReason("Cluster can be changed only 
when the Host is in Maintenance mode."); //$NON-NLS-1$
+            model.getCluster().setIsChangable(false);
         }
         else if (getSystemTreeSelectedItem() != null)
         {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
index 777dad8..a109d6e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
@@ -183,10 +183,10 @@
         disk.getStorageDomain().setIsChangable(!noTargets);
         disk.getSourceStorageDomain().setIsChangable(!noSources);
         disk.getSourceStorageDomainName().setIsChangable(!noSources);
-        
disk.getStorageDomain().getChangeProhibitionReasons().add(isDiskBasedOnTemplate 
?
+        
disk.getStorageDomain().setChangeProhibitionReason(isDiskBasedOnTemplate ?
                 constants.noActiveStorageDomainWithTemplateMsg() : 
getNoActiveTargetDomainMessage());
-        
disk.getSourceStorageDomain().getChangeProhibitionReasons().add(getNoActiveSourceDomainMessage());
-        
disk.getSourceStorageDomainName().getChangeProhibitionReasons().add(getNoActiveSourceDomainMessage());
+        
disk.getSourceStorageDomain().setChangeProhibitionReason(getNoActiveSourceDomainMessage());
+        
disk.getSourceStorageDomainName().setChangeProhibitionReason(getNoActiveSourceDomainMessage());
     }
 
     private void addSourceStorageDomainName(DiskModel disk, 
ArrayList<storage_domains> sourceStorageDomains) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
index 6eb7a0e..a262b9c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/ImportTemplateModel.java
@@ -87,11 +87,9 @@
                             
templateData.setExistsInSystem(templateExistsInSystem);
                             if (templateExistsInSystem) {
                                 templateData.getClone().setEntity(true);
-                                templateData.getClone()
-                                        .getChangeProhibitionReasons()
-                                        .add(ConstantsManager.getInstance()
-                                                .getConstants()
-                                                
.importTemplateThatExistsInSystemMustClone());
+                                
templateData.getClone().setChangeProhibitionReason(ConstantsManager.getInstance()
+                                        .getConstants()
+                                        
.importTemplateThatExistsInSystemMustClone());
                                 templateData.getClone().setIsChangable(false);
                             }
                             templateDataList.add(templateData);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 95ceaca..2160bfa 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -28,12 +28,12 @@
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
 import org.ovirt.engine.core.common.businessentities.VmOsType;
+import org.ovirt.engine.core.common.businessentities.VmPool;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmType;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
-import org.ovirt.engine.core.common.businessentities.VmPool;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
@@ -815,8 +815,7 @@
                             ((RunOnceModel) 
userPortalListModel.getWindow()).getBootSequence();
                     bootSequenceModel.getNetworkOption().setIsChangable(false);
                     bootSequenceModel.getNetworkOption()
-                            .getChangeProhibitionReasons()
-                            .add("Virtual Machine must have at least one 
network interface defined to boot from network."); //$NON-NLS-1$
+                            .setChangeProhibitionReason("Virtual Machine must 
have at least one network interface defined to boot from network."); 
//$NON-NLS-1$
                 }
             }
         };
@@ -849,8 +848,7 @@
                             ((RunOnceModel) 
userPortalListModel.getWindow()).getBootSequence();
                     
bootSequenceModel.getHardDiskOption().setIsChangable(false);
                     bootSequenceModel.getHardDiskOption()
-                            .getChangeProhibitionReasons()
-                            .add("Virtual Machine must have at least one 
bootable disk defined to boot from hard disk."); //$NON-NLS-1$
+                            .setChangeProhibitionReason("Virtual Machine must 
have at least one bootable disk defined to boot from hard disk."); //$NON-NLS-1$
                 }
             }
         };
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseEditVmInterfaceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseEditVmInterfaceModel.java
index f67037b..7309eed 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseEditVmInterfaceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseEditVmInterfaceModel.java
@@ -57,7 +57,7 @@
         // Plug should be the last one updated, cause it controls the 
changeability of the other editor
         getPlugged().setEntity(getNic().isPlugged());
         if (!hotPlugSupported) {
-            
getPlugged().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
+            
getPlugged().setChangeProhibitionReason(ConstantsManager.getInstance()
                     .getMessages()
                     
.hotPlugNotSupported(getClusterCompatibilityVersion().toString()));
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/DiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/DiskModel.java
index e3b1b98..60376bd 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/DiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/DiskModel.java
@@ -38,8 +38,8 @@
 import org.ovirt.engine.ui.uicommonweb.validation.I18NNameValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation;
-import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyQuotaValidation;
+import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 import 
org.ovirt.engine.ui.uicommonweb.validation.SpecialAsciiI18NOrNoneValidation;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
@@ -743,9 +743,10 @@
                 DiskModel diskModel = (DiskModel) target;
                 boolean isShareableDiskEnabled = (Boolean) returnValue;
 
+                
diskModel.getIsShareable().setChangeProhibitionReason(ConstantsManager.getInstance()
+                        .getConstants()
+                        .shareableDiskNotSupported());
                 
diskModel.getIsShareable().setIsChangable(isShareableDiskEnabled);
-                diskModel.getIsShareable().getChangeProhibitionReasons().add(
-                        
ConstantsManager.getInstance().getConstants().shareableDiskNotSupported());
             }
         }), datacenter.getcompatibility_version().getValue());
     }
@@ -792,9 +793,10 @@
 
     private void updateShareable(VolumeType volumeType, StorageType 
storageType) {
         getIsShareable().setEntity(false);
+        
getIsShareable().setChangeProhibitionReason(ConstantsManager.getInstance()
+                .getConstants()
+                .shareableDiskNotSupportedByConfiguration());
         getIsShareable().setIsChangable(!(storageType.isBlockDomain() && 
volumeType == VolumeType.Sparse));
-        getIsShareable().getChangeProhibitionReasons().add(
-                
ConstantsManager.getInstance().getConstants().shareableDiskNotSupportedByConfiguration());
     }
 
     private boolean isDatacenterAvailable(storage_pool dataCenter)
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditVmInterfaceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditVmInterfaceModel.java
index 7b03d84..da30130 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditVmInterfaceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditVmInterfaceModel.java
@@ -45,14 +45,15 @@
         Boolean plug = isPluggedBeforeAndAfterEdit();
 
         if (plug) {
-            getNicType().getChangeProhibitionReasons()
-                    
.add(ConstantsManager.getInstance().getConstants().hotTypeUpdateNotPossible());
-            getEnableMac().getChangeProhibitionReasons()
-                    
.add(ConstantsManager.getInstance().getConstants().hotMacUpdateNotPossible());
-            getPortMirroring().getChangeProhibitionReasons()
-                    .add(ConstantsManager.getInstance()
-                            .getConstants()
-                            .hotPortMirroringUpdateNotSupported());
+            
getNicType().setChangeProhibitionReason(ConstantsManager.getInstance()
+                    .getConstants()
+                    .hotTypeUpdateNotPossible());
+            
getEnableMac().setChangeProhibitionReason(ConstantsManager.getInstance()
+                    .getConstants()
+                    .hotMacUpdateNotPossible());
+            
getPortMirroring().setChangeProhibitionReason(ConstantsManager.getInstance()
+                    .getConstants()
+                    .hotPortMirroringUpdateNotSupported());
 
             initSelectedType();
             getEnableMac().setEntity(false);
@@ -82,10 +83,9 @@
 
         if (isVmUp() && hotUpdateSupported) {
             if (isPlugged && isPortMirroring) {
-                getLinked().getChangeProhibitionReasons()
-                        .add(ConstantsManager.getInstance()
-                                .getConstants()
-                                
.hotLinkStateUpdateNotSupportedWithPortMirroring());
+                
getLinked().setChangeProhibitionReason(ConstantsManager.getInstance()
+                        .getConstants()
+                        .hotLinkStateUpdateNotSupportedWithPortMirroring());
                 getLinked().setIsChangable(false);
                 initLinked();
                 return;
@@ -105,8 +105,7 @@
 
         if (isVmUp() && hotUpdateSupported) {
             if (isPlugged && isPortMirroring) {
-                getNetwork().getChangeProhibitionReasons()
-                        .add(ConstantsManager.getInstance()
+                
getNetwork().setChangeProhibitionReason(ConstantsManager.getInstance()
                                 .getConstants()
                                 
.hotNetworkUpdateNotSupportedWithPortMirroring());
                 getNetwork().setIsChangable(false);
@@ -114,7 +113,7 @@
                 return;
             }
         } else if (isVmUp() && isPlugged) {
-            
getNetwork().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
+            
getNetwork().setChangeProhibitionReason(ConstantsManager.getInstance()
                     .getMessages()
                     
.hotNetworkUpdateNotSupported(getClusterCompatibilityVersion().toString()));
             getNetwork().setIsChangable(false);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
index bda6d5f..2ef7da9 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
@@ -146,10 +146,9 @@
 
         if (vm.isInitialized())
         {
-            getModel().getTimeZone().setIsChangable(false);
             getModel().getTimeZone()
-                    .getChangeProhibitionReasons()
-                    .add("Time Zone cannot be change since the Virtual Machine 
was booted at the first time."); //$NON-NLS-1$
+                    .setChangeProhibitionReason("Time Zone cannot be change 
since the Virtual Machine was booted at the first time."); //$NON-NLS-1$
+            getModel().getTimeZone().setIsChangable(false);
         }
 
         updateTimeZone(vm.getTimeZone());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmData.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmData.java
index b3fd52f..c353d27 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmData.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmData.java
@@ -22,7 +22,7 @@
                 if (templateExistsInSetup) {
                     if ((Boolean) ((EntityModel) sender).getEntity()) {
                         getCollapseSnapshots().setEntity(true);
-                        
getCollapseSnapshots().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
+                        
getCollapseSnapshots().setChangeProhibitionReason(ConstantsManager.getInstance()
                                 .getConstants()
                                 .importCloneVMMustCollapseSnapshots());
                         getCollapseSnapshots().setIsChangable(false);
@@ -42,7 +42,7 @@
     public void setTemplateExistsInSetup(boolean templateExistsInSetup) {
         if (!templateExistsInSetup) {
             getCollapseSnapshots().setEntity(true);
-            
getCollapseSnapshots().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
+            
getCollapseSnapshots().setChangeProhibitionReason(ConstantsManager.getInstance()
                     
.getConstants().importVMWithTemplateNotInSystemMustCollapseSnapshots());
             getCollapseSnapshots().setIsChangable(false);
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
index 2774efa..4b7227c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
@@ -298,8 +298,7 @@
                         getDisksToConvert().add(vm);
                         ((ImportVmData) 
item).getCollapseSnapshots().setEntity(true);
                         ((ImportVmData) item).getCollapseSnapshots()
-                                .getChangeProhibitionReasons()
-                                .add(ConstantsManager.getInstance()
+                                
.setChangeProhibitionReason(ConstantsManager.getInstance()
                                         .getConstants()
                                         
.importSparseDiskToBlockDeviceMustCollapseSnapshots());
                         ((ImportVmData) 
item).getCollapseSnapshots().setIsChangable(false);
@@ -567,11 +566,9 @@
                             vmData.setExistsInSystem(vmExistsInSystem);
                             if (vmExistsInSystem) {
                                 vmData.getClone().setEntity(true);
-                                vmData.getClone()
-                                        .getChangeProhibitionReasons()
-                                        .add(ConstantsManager.getInstance()
-                                                .getConstants()
-                                                
.importVMThatExistsInSystemMustClone());
+                                
vmData.getClone().setChangeProhibitionReason(ConstantsManager.getInstance()
+                                        .getConstants()
+                                        
.importVMThatExistsInSystemMustClone());
                                 vmData.getClone().setIsChangable(false);
                             }
                             vmDataList.add(vmData);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmInterfaceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmInterfaceModel.java
index 259c664..1d66cfe 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmInterfaceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmInterfaceModel.java
@@ -43,7 +43,7 @@
         initMAC();
 
         if (!hotPlugSupported) {
-            
getPlugged().getChangeProhibitionReasons().add(ConstantsManager.getInstance()
+            
getPlugged().setChangeProhibitionReason(ConstantsManager.getInstance()
                     .getMessages()
                     
.hotPlugNotSupported(getClusterCompatibilityVersion().toString()));
         }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
index 807632c..6daa954 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
@@ -334,10 +334,8 @@
         diskModel.getIsBootable().setEntity(!hasBootableDisk);
         if (hasBootableDisk)
         {
+            diskModel.getIsBootable().setChangeProhibitionReason("There can be 
only one bootable disk defined."); //$NON-NLS-1$
             diskModel.getIsBootable().setIsChangable(false);
-            diskModel.getIsBootable()
-                    .getChangeProhibitionReasons()
-                    .add("There can be only one bootable disk defined."); 
//$NON-NLS-1$
         }
 
         ArrayList<UICommand> commands = new ArrayList<UICommand>();
@@ -503,10 +501,9 @@
                 }
                 if (bootableDisk != null && 
!bootableDisk.getId().equals(disk.getId()))
                 {
-                    diskModel.getIsBootable().setIsChangable(false);
                     diskModel.getIsBootable()
-                            .getChangeProhibitionReasons()
-                            .add("There can be only one bootable disk 
defined."); //$NON-NLS-1$
+                            .setChangeProhibitionReason("There can be only one 
bootable disk defined."); //$NON-NLS-1$
+                    diskModel.getIsBootable().setIsChangable(false);
                 }
                 diskModel.getIsBootable().setEntity(disk.isBoot());
                 diskModel.getIsShareable().setEntity(disk.isShareable());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
index 4f0355f..4a64cda 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
@@ -249,8 +249,8 @@
         model.getIsBootable().setEntity(!hasBootableDisk);
         if (hasBootableDisk)
         {
+            model.getIsBootable().setChangeProhibitionReason("There can be 
only one bootable disk defined."); //$NON-NLS-1$
             model.getIsBootable().setIsChangable(false);
-            model.getIsBootable().getChangeProhibitionReasons().add("There can 
be only one bootable disk defined."); //$NON-NLS-1$
         }
 
         AsyncDataProvider.GetNextAvailableDiskAliasNameByVMId(new 
AsyncQuery(this,
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceModel.java
index 090bf65..5947240 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInterfaceModel.java
@@ -283,11 +283,10 @@
 
                 boolean isPlugChangeable = getPlugged().getIsChangable();
 
-                
getPlugged_IsSelected().getChangeProhibitionReasons().addAll(getLinked().getChangeProhibitionReasons());
+                
getPlugged_IsSelected().setChangeProhibitionReason(getLinked().getChangeProhibitionReason());
                 getPlugged_IsSelected().setIsChangable(isPlugChangeable);
 
-                getUnplugged_IsSelected().getChangeProhibitionReasons()
-                        .addAll(getLinked().getChangeProhibitionReasons());
+                
getUnplugged_IsSelected().setChangeProhibitionReason(getLinked().getChangeProhibitionReason());
                 getUnplugged_IsSelected().setIsChangable(isPlugChangeable);
             } else if (propArgs.PropertyName.equals("IsAvailable")) { 
//$NON-NLS-1$
                 boolean isPlugAvailable = getPlugged().getIsAvailable();
@@ -318,11 +317,10 @@
             } else if (propArgs.PropertyName.equals("IsChangable")) { 
//$NON-NLS-1$
                 boolean isLinkedChangeable = getLinked().getIsChangable();
 
-                
getLinked_IsSelected().getChangeProhibitionReasons().addAll(getLinked().getChangeProhibitionReasons());
+                
getLinked_IsSelected().setChangeProhibitionReason(getChangeProhibitionReason());
                 getLinked_IsSelected().setIsChangable(isLinkedChangeable);
 
-                getUnlinked_IsSelected().getChangeProhibitionReasons()
-                        .addAll(getLinked().getChangeProhibitionReasons());
+                
getUnlinked_IsSelected().setChangeProhibitionReason(getLinked().getChangeProhibitionReason());
                 getUnlinked_IsSelected().setIsChangable(isLinkedChangeable);
             } else if (propArgs.PropertyName.equals("IsAvailable")) { 
//$NON-NLS-1$
                 boolean isLinkedAvailable = getLinked().getIsAvailable();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
index f363dfd..987fb8c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
@@ -922,7 +922,7 @@
 
         model.setEntity(deleteDisks);
         if (!isChangable && changeProhibitionReason != null) {
-            model.getChangeProhibitionReasons().add(changeProhibitionReason);
+            model.setChangeProhibitionReason(changeProhibitionReason);
         }
         model.setIsChangable(isChangable);
     }
@@ -1354,7 +1354,7 @@
     @Override
     protected void sendWarningForNonExportableDisks(VM entity) {
         // load VM disks and check if there is one which doesn't allow snapshot
-        AsyncDataProvider.GetVmDiskList(new AsyncQuery((ExportVmModel) 
getWindow(),
+        AsyncDataProvider.GetVmDiskList(new AsyncQuery(getWindow(),
                 new INewAsyncCallback() {
                     @Override
                     public void OnSuccess(Object target, Object returnValue) {
@@ -1472,10 +1472,9 @@
                 if (!hasNics)
                 {
                     BootSequenceModel bootSequenceModel = 
runOnceModel.getBootSequence();
-                    bootSequenceModel.getNetworkOption().setIsChangable(false);
                     bootSequenceModel.getNetworkOption()
-                            .getChangeProhibitionReasons()
-                            .add("Virtual Machine must have at least one 
network interface defined to boot from network."); //$NON-NLS-1$
+                            .setChangeProhibitionReason("Virtual Machine must 
have at least one network interface defined to boot from network."); 
//$NON-NLS-1$
+                    bootSequenceModel.getNetworkOption().setIsChangable(false);
                 }
             }
         };
@@ -1510,8 +1509,7 @@
                             ((RunOnceModel) 
userPortalListModel.getWindow()).getBootSequence();
                     
bootSequenceModel.getHardDiskOption().setIsChangable(false);
                     bootSequenceModel.getHardDiskOption()
-                            .getChangeProhibitionReasons()
-                            .add("Virtual Machine must have at least one 
bootable disk defined to boot from hard disk."); //$NON-NLS-1$
+                            .setChangeProhibitionReason("Virtual Machine must 
have at least one bootable disk defined to boot from hard disk."); //$NON-NLS-1$
                 }
             }
         };
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
index a36d850..56c187b 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.OriginType;
@@ -252,15 +251,9 @@
             protected boolean canEdit(Object model) {
                 return ((ImportVmData) 
model).getCollapseSnapshots().getIsChangable();
             }
-
                     @Override
                     protected String getDisabledMessage(Object model) {
-                        List<String> reasons =
-                                ((ImportVmData) 
model).getCollapseSnapshots().getChangeProhibitionReasons();
-                        if (reasons != null && !reasons.isEmpty()) {
-                            return reasons.get(0);
-                        }
-                        return null;
+                        return ((ImportVmData) 
model).getCollapseSnapshots().getChangeProhibitionReason();
                     }
         };
         table.addColumn(collapseSnapshotsColumn, 
constants.collapseSnapshots(), "10px"); //$NON-NLS-1$
@@ -284,11 +277,7 @@
 
             @Override
             protected String getDisabledMessage(Object model) {
-                List<String> reasons = ((ImportVmData) 
model).getClone().getChangeProhibitionReasons();
-                if (reasons != null && !reasons.isEmpty()) {
-                    return reasons.get(0);
-                }
-                return null;
+                return ((ImportVmData) 
model).getClone().getChangeProhibitionReason();
             }
         };
         table.addColumn(cloneVMColumn, constants.cloneVM(), "50px"); 
//$NON-NLS-1$


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

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

Reply via email to