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
