Shahar Havivi has uploaded a new change for review.

Change subject: UI: support multi monitor only for cluster 3.3 and up
......................................................................

UI: support multi monitor only for cluster 3.3 and up

When the cluster is less then 3.3 or non Linux OS we set the SinglePCI
checkbox to false and hide it.

Change-Id: I5f65dd3d5ca1409402b9b0b93e1585f4bfa47a64
Bug-Url: https://bugzilla.redhat.com/1009391
Signed-off-by: Shahar Havivi <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
2 files changed, 32 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/20340/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index e28316f..59dbe66 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -166,7 +166,7 @@
             getDisplayProtocol().setIsChangable(false);
             getUsbPolicy().setIsChangable(false);
             getNumOfMonitors().setIsChangable(false);
-            getIsSingleQxlEnabled().setIsAvailable(false);
+            getIsSingleQxlEnabled().setIsChangable(false);
             getIsSmartcardEnabled().setIsChangable(false);
             getAllowConsoleReconnect().setIsChangable(false);
             getVncKeyboardLayout().setIsChangable(false);
@@ -1340,7 +1340,7 @@
         getIsSoundcardEnabled().setIsChangable(false);
 
         setIsSingleQxlEnabled(new NotChangableForVmInPoolEntityModel());
-        getIsSingleQxlEnabled().setEntity(false);
+        getBehavior().enableSinglePCI(false);
 
         setEditingEnabled(new EntityModel());
         getEditingEnabled().setEntity(true);
@@ -1361,7 +1361,7 @@
         getIsHighlyAvailable().setEntity(false);
         getIsAutoAssign().setEntity(true);
         getIsTemplatePublic().setEntity(true);
-        getIsSingleQxlEnabled().setEntity(false);
+        getBehavior().enableSinglePCI(false);
 
         getHostCpu().setEntity(false);
         getMigrationMode().setIsChangable(true);
@@ -1724,6 +1724,17 @@
         }
 
         updateMaximalVmMemSize();
+        handleQxlClusterLevel();
+    }
+
+    private void handleQxlClusterLevel() {
+        // Enable Single PCI only on cluster 3.3 and high and on Linux OS
+        boolean isLinux = getIsLinuxOS();
+        boolean isQxl = getDisplayType() == DisplayType.qxl;
+        boolean clusterSupportsSinglePci = getSelectedCluster() != null &&
+        
Version.v3_3.compareTo(getSelectedCluster().getcompatibility_version()) <= 0;
+
+        getBehavior().enableSinglePCI(isLinux && isQxl && 
clusterSupportsSinglePci);
     }
 
     private void template_SelectedItemChanged(Object sender, EventArgs args)
@@ -1759,7 +1770,8 @@
         getDomain().setIsChangable(getIsWindowsOS());
 
         getBehavior().updateDefaultTimeZone();
-        getIsSingleQxlEnabled().setEntity(getIsLinuxOS());
+
+        handleQxlClusterLevel();
     }
 
     private void firstBootDevice_SelectedItemChanged(Object sender, EventArgs 
args)
@@ -1792,21 +1804,30 @@
         behavior.provisioning_SelectedItemChanged();
     }
 
-    private void displayProtocol_SelectedItemChanged(Object sender, EventArgs 
args)
-    {
+    private DisplayType getDisplayType() {
         EntityModel entityModel = (EntityModel) 
getDisplayProtocol().getSelectedItem();
         if (entityModel == null)
         {
+            return null;
+        }
+        return (DisplayType) entityModel.getEntity();
+    }
+
+    private void displayProtocol_SelectedItemChanged(Object sender, EventArgs 
args)
+    {
+        if (getDisplayType() == null)
+        {
             return;
         }
-        DisplayType type = (DisplayType) entityModel.getEntity();
+        DisplayType type = getDisplayType();
 
         if (type == DisplayType.vnc)
         {
             
getUsbPolicy().setSelectedItem(org.ovirt.engine.core.common.businessentities.UsbPolicy.DISABLED);
             getIsSmartcardEnabled().setEntity(false);
         }
-        getBehavior().updateSingleQxl(type == DisplayType.qxl);
+
+        handleQxlClusterLevel();
 
         getUsbPolicy().setIsChangable(type == DisplayType.qxl);
         getIsSmartcardEnabled().setIsChangable(type == DisplayType.qxl);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
index 463c6ea..cb18830 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
@@ -1043,7 +1043,8 @@
         behavior.initProfiles(hotUpdateSupported, 
getModel().getSelectedCluster().getId(), 
getModel().getSelectedDataCenter().getId(), query);
     }
 
-    public void updateSingleQxl(boolean visible) {
-       getModel().getIsSingleQxlEnabled().setIsAvailable(visible);
+    public void enableSinglePCI(boolean enabled) {
+        getModel().getIsSingleQxlEnabled().setIsChangable(enabled);
+        getModel().getIsSingleQxlEnabled().setEntity(enabled);
     }
 }


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

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

Reply via email to