Arik Hadas has uploaded a new change for review.

Change subject: frontend: refactor in VmModelBehaviorBase
......................................................................

frontend: refactor in VmModelBehaviorBase

Replace usage of List+indexes with Map+enum values which are more
appropriate to store the timezone values per timezone type (windows
timezone, general timezone).

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


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/13196/1

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 fef95d6..2159917 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
@@ -14,12 +14,12 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
 import org.ovirt.engine.core.common.businessentities.Quota;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import 
org.ovirt.engine.core.common.queries.GetAllRelevantQuotasForVdsGroupParameters;
@@ -141,10 +141,17 @@
 
     }
 
-    private final List<Iterable<Entry<String, String>>> cachedTimeZones = 
Arrays.asList(null, null);
+    private final Map<TimezoneType, Iterable<Entry<String, String>>> 
cachedTimeZones = new HashMap<VmModelBehaviorBase.TimezoneType, 
Iterable<Entry<String,String>>>();
 
-    final int windowsTimezones = 0;
-    final int generalTimezones = 1;
+    private enum TimezoneType {
+        WINDOWS_TIMEZONE,
+        GENERAL_TIMEZONE;
+
+        static TimezoneType getTimezoneByOs(boolean windows) {
+            return windows ? WINDOWS_TIMEZONE : GENERAL_TIMEZONE;
+        }
+    }
+
     private boolean lastIsWinOS = false;
     private String winTimezoneString;
     private String generalTimezonesString;
@@ -155,9 +162,9 @@
 
     protected void updateTimeZone(final String selectedTimeZone)
     {
-        final int index = getModel().getIsWindowsOS() ? windowsTimezones : 
generalTimezones;
+        final TimezoneType timezoneType = 
TimezoneType.getTimezoneByOs(getModel().getIsWindowsOS());
 
-        if (cachedTimeZones.get(index) == null)
+        if (cachedTimeZones.get(timezoneType) == null)
         {
             AsyncDataProvider.GetTimeZoneList(new AsyncQuery(this,
                     new INewAsyncCallback() {
@@ -165,7 +172,8 @@
                         public void OnSuccess(Object target, Object 
returnValue) {
 
                             VmModelBehaviorBase behavior = 
(VmModelBehaviorBase) target;
-                            cachedTimeZones.set(index, ((HashMap<String, 
String>) returnValue).entrySet());
+                            HashMap<String, String> timeZones = 
(HashMap<String, String>) returnValue;
+                            cachedTimeZones.put(timezoneType, 
timeZones.entrySet());
                             behavior.PostUpdateTimeZone(selectedTimeZone);
 
                         }
@@ -177,7 +185,7 @@
         }
     }
 
-    public void PostUpdateTimeZone(String selectedTimeZone)
+    private void PostUpdateTimeZone(String selectedTimeZone)
     {
         if (getModel().getIsWindowsOS() != lastIsWinOS) {
             lastIsWinOS = getModel().getIsWindowsOS();
@@ -198,12 +206,12 @@
                 }
             }
         }
-        final int index = getModel().getIsWindowsOS() ? windowsTimezones : 
generalTimezones;
-        getModel().getTimeZone().setItems(cachedTimeZones.get(index));
+        final TimezoneType timezoneType = 
TimezoneType.getTimezoneByOs(getModel().getIsWindowsOS());
+        getModel().getTimeZone().setItems(cachedTimeZones.get(timezoneType));
 
         // If there was some time zone selected before, try select it again.
         Entry<String, String> selectedTimeZoneEntry =
-                getTimezoneEntryByKey(selectedTimeZone, 
cachedTimeZones.get(index));
+                getTimezoneEntryByKey(selectedTimeZone, 
cachedTimeZones.get(timezoneType));
         Object selectedItem =
                 selectedTimeZoneEntry != null ? selectedTimeZoneEntry : 
getModel().getTimeZone().getSelectedItem();
         String oldTimeZoneKey = selectedItem == null ? null : 
((Map.Entry<String, String>) selectedItem).getKey();
@@ -211,12 +219,12 @@
         if (oldTimeZoneKey != null)
         {
             getModel().getTimeZone()
-                    
.setSelectedItem(Linq.FirstOrDefault(cachedTimeZones.get(index),
+                    
.setSelectedItem(Linq.FirstOrDefault(cachedTimeZones.get(timezoneType),
                             new Linq.TimeZonePredicate(oldTimeZoneKey)));
         }
         else
         {
-            
getModel().getTimeZone().setSelectedItem(Linq.FirstOrDefault(cachedTimeZones.get(index)));
+            
getModel().getTimeZone().setSelectedItem(Linq.FirstOrDefault(cachedTimeZones.get(timezoneType)));
         }
     }
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib7f12c4f8be93adfd0c1983a57c8e60c629ad331
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