Arik Hadas has uploaded a new change for review.

Change subject: core: usb
......................................................................

core: usb

Change-Id: Ibcaad740c8950820479aeb958747e5e685e64740
Signed-off-by: Arik Hadas <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
1 file changed, 36 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/23863/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 164633d..c4d27c2 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
@@ -1714,41 +1714,47 @@
             return;
         }
 
+        UsbPolicy prevSelection = getUsbPolicy().getSelectedItem();
         getUsbPolicy().setIsChangable(true);
-        if (Version.v3_1.compareTo(cluster.getcompatibility_version()) > 0) {
-            if (AsyncDataProvider.isWindowsOsType(osType)) {
-                getUsbPolicy().setItems(Arrays.asList(
-                        UsbPolicy.DISABLED,
-                        UsbPolicy.ENABLED_LEGACY
-                        ));
-            } else {
-                getUsbPolicy().setItems(Arrays.asList(UsbPolicy.DISABLED));
-                getUsbPolicy().setSelectedItem(UsbPolicy.DISABLED);
-                getUsbPolicy().setIsChangable(false);
-            }
-        }
+        getUsbPolicy().setItems(getPossibleUsbPoliciesForOsAndCluster(osType, 
cluster));
 
-        if (Version.v3_1.compareTo(cluster.getcompatibility_version()) <= 0) {
-            if (AsyncDataProvider.isLinuxOsType(osType)) {
-                getUsbPolicy().setItems(Arrays.asList(
-                        UsbPolicy.DISABLED,
-                        UsbPolicy.ENABLED_NATIVE
-                        ));
-            } else {
-                getUsbPolicy().setItems(
-                        Arrays.asList(
-                                UsbPolicy.DISABLED,
-                                UsbPolicy.ENABLED_LEGACY,
-                                UsbPolicy.ENABLED_NATIVE
-                                ));
-            }
-        }
-
-        if (displayType != DisplayType.qxl) {
+        if (displayType != DisplayType.qxl || 
Linq.count(getUsbPolicy().getItems()) == 1) {
             getUsbPolicy().setIsChangable(false);
         }
 
-        getUsbPolicy().setSelectedItem(UsbPolicy.DISABLED);
+        
getUsbPolicy().setSelectedItem(getUsbPolicyToSelect(getUsbPolicy().getItems(), 
prevSelection));
+    }
+
+    private UsbPolicy getUsbPolicyToSelect(Iterable<UsbPolicy> usbPolicies, 
UsbPolicy prevSelection) {
+        // try to selected the previously selected policy if it exists
+        // in the collection that is going to be presented
+        if (prevSelection != null) {
+            for (UsbPolicy usbPolicy : usbPolicies) {
+                if (usbPolicy == prevSelection) {
+                    return usbPolicy;
+                }
+            }
+        }
+
+        return UsbPolicy.DISABLED;
+    }
+
+    private List<UsbPolicy> getPossibleUsbPoliciesForOsAndCluster(Integer 
osType, VDSGroup cluster) {
+        // backward compatibility
+        if (Version.v3_1.compareTo(cluster.getcompatibility_version()) > 0) {
+            return AsyncDataProvider.isWindowsOsType(osType) ?
+                    Arrays.asList(UsbPolicy.DISABLED, UsbPolicy.ENABLED_LEGACY)
+                    : Arrays.asList(UsbPolicy.DISABLED);
+        }
+
+        // otherwise
+        return AsyncDataProvider.isLinuxOsType(osType) ?
+                Arrays.asList(UsbPolicy.DISABLED, UsbPolicy.ENABLED_NATIVE)
+                : Arrays.asList(
+                        UsbPolicy.DISABLED,
+                        UsbPolicy.ENABLED_LEGACY,
+                        UsbPolicy.ENABLED_NATIVE
+                        );
     }
 
     private void initMinimalVmMemSize()


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

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

Reply via email to