Noam Slomianko has uploaded a new change for review.

Change subject: webadmin: Linit selection of datacenters in new quota
......................................................................

webadmin: Linit selection of datacenters in new quota

when creating new quota from the datacenter_quota subtab only the
selected datacenter should be an option for the created quota

and fixed a possible null pionter exception in a certin race conditions

Change-Id: I81c6d13e6ddb704c85593d8ffec317e40a3d3a86
Bug-Url: https://bugzilla.redhat.com/911241
Signed-off-by: Noam Slomianko <nslom...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
2 files changed, 48 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/12287/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java
index 05b74a4..a4d7032 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
@@ -11,6 +12,7 @@
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
+import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
@@ -80,4 +82,16 @@
     protected String getListName() {
         return "DataCenterQuotaListModel"; //$NON-NLS-1$
     }
+
+    @Override
+    protected void createQuota() {
+        super.createQuota(false);
+
+        QuotaModel quotaModel = (QuotaModel) getWindow();
+
+
+        quotaModel.getDataCenter().setItems(Arrays.asList(getEntity()));
+        quotaModel.getDataCenter().setSelectedItem(getEntity());
+        quotaModel.getDataCenter().setIsChangable(false);
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
index 0e28b59..6986968 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java
@@ -9,9 +9,9 @@
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.QuotaStorage;
 import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
@@ -144,7 +144,11 @@
         getCloneQuotaCommand().setIsExecutionAllowed(items.size() == 1);
     }
 
-    private void createQuota() {
+    protected void createQuota(){
+        createQuota(true);
+    }
+
+    protected void createQuota(boolean populateDataCenter) {
         final QuotaModel qModel = new QuotaModel();
         
qModel.setTitle(ConstantsManager.getInstance().getConstants().newQuotaTitle());
         qModel.setHashName("new_quota"); //$NON-NLS-1$
@@ -153,37 +157,42 @@
         setWindow(qModel);
         qModel.StartProgress(null);
 
-        AsyncDataProvider.GetDataCenterList(new AsyncQuery(this, new 
INewAsyncCallback() {
+        if(populateDataCenter){
+            AsyncDataProvider.GetDataCenterList(new AsyncQuery(this, new 
INewAsyncCallback() {
 
-            @Override
-            public void OnSuccess(Object model, Object returnValue) {
-                ArrayList<storage_pool> dataCenterList = 
(ArrayList<storage_pool>) returnValue;
-                if (dataCenterList == null || dataCenterList.size() == 0) {
-                    return;
+                @Override
+                public void OnSuccess(Object model, Object returnValue) {
+                    ArrayList<storage_pool> dataCenterList = 
(ArrayList<storage_pool>) returnValue;
+                    if (dataCenterList == null || dataCenterList.size() == 0) {
+                        return;
+                    }
+                    QuotaListModel quotaListModel = (QuotaListModel) model;
+                    QuotaModel quotaModel = (QuotaModel) 
quotaListModel.getWindow();
+                    quotaModel.getDataCenter().setItems(dataCenterList);
+                    
quotaModel.getDataCenter().setSelectedItem(dataCenterList.get(0));
+
+                    if (quotaListModel.getSystemTreeSelectedItem() != null
+                            && 
quotaListModel.getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter)
+                    {
+                        storage_pool selectDataCenter =
+                                (storage_pool) 
quotaListModel.getSystemTreeSelectedItem().getEntity();
+
+                        
quotaModel.getDataCenter().setSelectedItem(Linq.FirstOrDefault(dataCenterList,
+                                new 
Linq.DataCenterPredicate(selectDataCenter.getId())));
+                        quotaModel.getDataCenter().setIsChangable(false);
+                    }
                 }
-                QuotaListModel quotaListModel = (QuotaListModel) model;
-                QuotaModel quotaModel = (QuotaModel) 
quotaListModel.getWindow();
-                quotaModel.getDataCenter().setItems(dataCenterList);
-                
quotaModel.getDataCenter().setSelectedItem(dataCenterList.get(0));
-
-                if (quotaListModel.getSystemTreeSelectedItem() != null
-                        && 
quotaListModel.getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter)
-                {
-                    storage_pool selectDataCenter =
-                            (storage_pool) 
quotaListModel.getSystemTreeSelectedItem().getEntity();
-
-                    
quotaModel.getDataCenter().setSelectedItem(Linq.FirstOrDefault(dataCenterList,
-                            new 
Linq.DataCenterPredicate(selectDataCenter.getId())));
-                    quotaModel.getDataCenter().setIsChangable(false);
-                }
-            }
-        }));
+            }));
+        }
 
         qModel.getDataCenter().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
 
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
                 storage_pool selectedDataCenter = (storage_pool) 
qModel.getDataCenter().getSelectedItem();
+                if(selectedDataCenter == null){
+                    return;
+                }
                 AsyncDataProvider.GetClusterList(new AsyncQuery(this, new 
INewAsyncCallback() {
                     @Override
                     public void OnSuccess(Object model, Object returnValue) {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I81c6d13e6ddb704c85593d8ffec317e40a3d3a86
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Noam Slomianko <nslom...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to