Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Only set cluster once when opening VM dialog
......................................................................

webadmin: Only set cluster once when opening VM dialog

Previously the cluster could potentially be called twice in the
initialization of the dialog: once UiCommonEditorVisitor set the
selected item to be the first in the collection, then if the VM
belonged to another cluster the selection would change. This would
cause issues due to asynchronous tasks, triggered by the
selectedItemChangedEvent, returning in reversed order.

This is fixed by using the new overload of ListModel.setItems(), to
make sure that the selected cluster is properly selected the first
time and so won't trigger dual sets of backend queries.

Change-Id: I5b4dd3328f207dadb73ee93d27f084249f3f9704
Bug-Url: https://bugzilla.redhat.com/1070835
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
1 file changed, 8 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/26232/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 dd10495..9b9b90c 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
@@ -2202,9 +2202,7 @@
                 dataCentersWithClusters.add(new 
DataCenterWithCluster(dataCenter, cluster));
             }
         }
-        getDataCenterWithClustersList().setItems(dataCentersWithClusters);
-
-        selectDataCenterWithCluster(model, selectedCluster, 
dataCentersWithClusters);
+        selectDataCenterWithCluster(selectedCluster, dataCentersWithClusters);
     }
 
     protected void setupDataCenterWithClusters(UnitVmModel model,
@@ -2234,20 +2232,15 @@
                 }
             }
         }
-        getDataCenterWithClustersList().setItems(dataCentersWithClusters);
-
-        selectDataCenterWithCluster(model, selectedCluster, 
dataCentersWithClusters);
+        selectDataCenterWithCluster(selectedCluster, dataCentersWithClusters);
     }
 
-    protected void selectDataCenterWithCluster(UnitVmModel model,
-            Guid selectedCluster,
-            List<DataCenterWithCluster> dataCentersWithClusters) {
-        if (selectedCluster == null) {
-            
getDataCenterWithClustersList().setSelectedItem(Linq.firstOrDefault(dataCentersWithClusters));
-        } else {
-            
model.getDataCenterWithClustersList().setSelectedItem(Linq.firstOrDefault(dataCentersWithClusters,
-                    new 
Linq.DataCenterWithClusterAccordingClusterPredicate(selectedCluster)));
-        }
+    protected void selectDataCenterWithCluster(Guid selectedCluster, 
List<DataCenterWithCluster> dataCentersWithClusters) {
+        DataCenterWithCluster selectedDataCenterWithCluster =
+                (selectedCluster == null) ? 
Linq.firstOrDefault(dataCentersWithClusters)
+                        : Linq.firstOrDefault(dataCentersWithClusters,
+                                new 
Linq.DataCenterWithClusterAccordingClusterPredicate(selectedCluster));
+        getDataCenterWithClustersList().setItems(dataCentersWithClusters, 
selectedDataCenterWithCluster);
     }
 
     private StoragePool getDataCenterAccordingSystemTree(UnitVmModel model, 
List<StoragePool> list) {


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

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

Reply via email to