Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Refactored code concerning Network creation
......................................................................

webadmin: Refactored code concerning Network creation

Since the Data Center list initialization is done for both
NewNetworkModel and EditNetworkModel, I moved the logic from
NetworkListModel to NetworkModel (the parent class of NewNetworkModel
and EditNetworkModel). This to enable further code reuse in the new
ProviderNewNetworkModel.

Change-Id: I624ab3a11045264dc4584b4426111c425c30c143
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java
5 files changed, 51 insertions(+), 72 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/30/15030/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
index 1273da2..80350cf 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
@@ -1,9 +1,13 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
+import java.util.List;
+
 import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
@@ -33,6 +37,21 @@
         initIsVm();
     }
 
+    protected void selectDataCenter() {
+        StoragePool currentDc =
+                findDc(getNetwork().getDataCenterId().getValue(), 
(List<StoragePool>) getDataCenters().getItems());
+        getDataCenters().setSelectedItem(currentDc);
+    }
+
+    private StoragePool findDc(Guid dcId, List<StoragePool> dataCenters) {
+        for (StoragePool dc : dataCenters) {
+            if (dcId.equals(dc.getId())) {
+                return dc;
+            }
+        }
+        return null;
+    }
+
     @Override
     public void syncWithBackend() {
         super.syncWithBackend();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index 75d6d6c..16b7f30 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -1,10 +1,14 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
+import java.util.ArrayList;
+
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -78,8 +82,29 @@
         EntityModel publicUse = new EntityModel();
         publicUse.setEntity(true);
         setPublicUse(publicUse);
+
+        initDcList();
     }
 
+    private void initDcList() {
+        startProgress(null);
+
+        // Get all data centers
+        AsyncDataProvider.getDataCenterList(new AsyncQuery(sourceListModel, 
new INewAsyncCallback() {
+
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) 
returnValue;
+                getDataCenters().setItems(dataCenters);
+                selectDataCenter();
+
+                stopProgress();
+            }
+        }));
+    }
+
+    protected abstract void selectDataCenter();
+
     public EntityModel getName()
     {
         return privateName;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
index 9495403..13c686a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
@@ -9,12 +9,14 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
@@ -46,6 +48,10 @@
         setHashName("new_logical_network"); //$NON-NLS-1$
     }
 
+    protected void selectDataCenter() {
+        
getDataCenters().setSelectedItem(Linq.firstOrDefault((List<StoragePool>) 
getDataCenters().getItems()));
+    }
+
     @Override
     public void syncWithBackend() {
         super.syncWithBackend();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
index 01a3fe2..6080685 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
@@ -1,10 +1,8 @@
 package org.ovirt.engine.ui.uicommonweb.models.networks;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkView;
 import org.ovirt.engine.core.common.interfaces.SearchType;
@@ -12,12 +10,8 @@
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.SearchParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.searchbackend.SearchObjects;
-import org.ovirt.engine.ui.frontend.AsyncQuery;
-import org.ovirt.engine.ui.frontend.INewAsyncCallback;
-import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
@@ -25,7 +19,6 @@
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
 import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
-import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
 import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.EditNetworkModel;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel;
@@ -72,8 +65,6 @@
 
         final NetworkModel networkModel = new NewNetworkModel(this);
         setWindow(networkModel);
-
-        initDcList(networkModel);
     }
 
     public void edit() {
@@ -86,9 +77,6 @@
 
         final NetworkModel networkModel = new EditNetworkModel(network, this);
         setWindow(networkModel);
-
-        initDcList(networkModel);
-
     }
 
     public void remove() {
@@ -99,46 +87,6 @@
 
         ConfirmationModel model = new RemoveNetworksModel(this);
         setConfirmWindow(model);
-    }
-
-    private void initDcList(final NetworkModel networkModel) {
-        SystemTreeItemModel treeSelectedDc = 
SystemTreeItemModel.findAncestor(SystemTreeItemType.DataCenter, 
getSystemTreeSelectedItem());
-        if (treeSelectedDc != null) {
-            StoragePool dc = (StoragePool) treeSelectedDc.getEntity();
-            networkModel.getDataCenters().setItems(Arrays.asList(dc));
-            networkModel.getDataCenters().setSelectedItem(dc);
-            networkModel.getDataCenters().setIsChangable(false);
-            return;
-        }
-
-        // Get all data centers
-        AsyncDataProvider.getDataCenterList(new 
AsyncQuery(NetworkListModel.this, new INewAsyncCallback() {
-
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-
-                ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) 
returnValue;
-                networkModel.getDataCenters().setItems(dataCenters);
-
-                if (networkModel instanceof EditNetworkModel) {
-                    StoragePool currentDc =
-                            
findDc(networkModel.getNetwork().getDataCenterId().getValue(), dataCenters);
-                    networkModel.getDataCenters().setSelectedItem(currentDc);
-                } else {
-                    
networkModel.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
-                }
-
-            }
-        }));
-    }
-
-    private StoragePool findDc(Guid dcId, List<StoragePool> dataCenters) {
-        for (StoragePool dc : dataCenters) {
-            if (dcId.equals(dc.getId())) {
-                return dc;
-            }
-        }
-        return null;
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java
index 2d2bc09..6cdeadf 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java
@@ -7,19 +7,14 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.Provider;
-import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.StringHelper;
-import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
-import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
-import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
-import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
@@ -99,21 +94,7 @@
         if (getWindow() != null) {
             return;
         }
-
-        final ProviderNewNetworkModel providerNewNetworkModel = new 
ProviderNewNetworkModel(this);
-        setWindow(providerNewNetworkModel); // delegate to the popup window 
model
-        AsyncDataProvider.getDataCenterList(new AsyncQuery(this, new 
INewAsyncCallback() {
-
-            @SuppressWarnings("unchecked")
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-                List<StoragePool> dataCenters = (List<StoragePool>) 
returnValue;
-                ListModel dataCenterListModel = 
providerNewNetworkModel.getDataCenters();
-                dataCenterListModel.setItems(dataCenters);
-                
dataCenterListModel.setSelectedItem(Linq.firstOrDefault(dataCenters));
-            }
-
-        }));
+        setWindow(new ProviderNewNetworkModel(this));
     }
 
     public void remove() {


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

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

Reply via email to