Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Moved provider list initialization to NetworkModel
......................................................................

webadmin: Moved provider list initialization to NetworkModel

This to populate the list box correctly in all occurences of the
dialog (not just in networks main tab).

Change-Id: I0856a02c14eafe1fe9b1867df1a3e9ef4d7e20d4
Bug-Url: https://bugzilla.redhat.com/989898
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
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
5 files changed, 55 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/19464/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
index 0688400..c37f671 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java
@@ -1076,6 +1076,21 @@
         }
     }
 
+    public final static class NetworkSameProviderPredicate implements 
IPredicate<Provider> {
+
+        private final Network network;
+
+        public NetworkSameProviderPredicate(Network network) {
+            this.network = network;
+        }
+
+        @Override
+        public boolean match(Provider provider) {
+            return network.isExternal() ? 
provider.getId().equals(network.getProvidedBy().getProviderId()) : false;
+        }
+
+    }
+
     public interface IPredicate<TSource>
     {
         boolean match(TSource source);
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 136be6c..b2b0d3c 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
@@ -7,6 +7,7 @@
 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.Provider;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
@@ -14,6 +15,7 @@
 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.uicommonweb.models.profiles.EditVnicProfileModel;
@@ -76,6 +78,13 @@
     }
 
     @Override
+    protected void selectExternalProvider() {
+        final Network network = getNetwork();
+        
getExternalProviders().setSelectedItem(Linq.firstOrDefault((Iterable<Provider>) 
getExternalProviders().getItems(),
+                new Linq.NetworkSameProviderPredicate(network)));
+    }
+
+    @Override
     protected void initProfiles() {
         AsyncQuery profilesQuery = new AsyncQuery();
         profilesQuery.asyncCallback = new INewAsyncCallback() {
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 024ed38..7efe665 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
@@ -6,13 +6,16 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VnicProfileParameters;
+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.businessentities.network.VnicProfile;
 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.Frontend;
+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;
@@ -84,8 +87,9 @@
             }
         });
 
-        setExternalProviders(new ListModel());
         setNetworkLabel(new EntityModel());
+        setExternalProviders(new ListModel());
+        initExternalProviderList();
 
         EntityModel stpEnabled = new EntityModel();
         stpEnabled.setEntity(false);
@@ -125,6 +129,22 @@
         onExportChanged();
         updateVlanTagChangeability();
         updateMtuChangeability();
+    }
+
+    private void initExternalProviderList() {
+        startProgress(null);
+        AsyncQuery getProvidersQuery = new AsyncQuery();
+        getProvidersQuery.asyncCallback = new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object model, Object result)
+            {
+                List<Provider> providers = (List<Provider>) result;
+                getExternalProviders().setItems(providers);
+                selectExternalProvider();
+                stopProgress();
+            }
+        };
+        AsyncDataProvider.GetAllNetworkProviders(getProvidersQuery);
     }
 
     public EntityModel getName()
@@ -492,6 +512,8 @@
 
     protected abstract void initIsVm();
 
+    protected abstract void selectExternalProvider();
+
     protected abstract void initProfiles();
 
     protected abstract void onExportChanged();
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 5d024ff..5fe1bc7 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
@@ -19,6 +19,7 @@
 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.uicommonweb.models.profiles.NewVnicProfileModel;
@@ -103,6 +104,11 @@
     }
 
     @Override
+    protected void selectExternalProvider() {
+        
getExternalProviders().setSelectedItem(Linq.firstOrDefault(getExternalProviders().getItems()));
+    }
+
+    @Override
     protected void initProfiles() {
         List<VnicProfileModel> profiles = new LinkedList<VnicProfileModel>();
 
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 3833ca7..e618e3e 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
@@ -4,7 +4,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-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.businessentities.network.NetworkView;
@@ -130,7 +129,7 @@
             networkModel.getDataCenters().setItems(Arrays.asList(dc));
             networkModel.getDataCenters().setSelectedItem(dc);
             networkModel.getDataCenters().setIsChangable(false);
-            initExternalProvidersList(networkModel);
+            networkModel.stopProgress();
             return;
         }
 
@@ -150,34 +149,9 @@
                 } else {
                     
networkModel.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
                 }
-                initExternalProvidersList(networkModel);
+                networkModel.stopProgress();
             }
         }));
-    }
-
-    private void initExternalProvidersList(final NetworkModel networkModel) {
-        if (networkModel instanceof NewNetworkModel) {
-            AsyncQuery getProvidersQuery = new AsyncQuery();
-            getProvidersQuery.asyncCallback = new INewAsyncCallback() {
-                @Override
-                public void onSuccess(Object model, Object result)
-                {
-                    List<Provider> providers = (List<Provider>) result;
-                    networkModel.getExternalProviders().setItems(providers);
-                    
networkModel.getExternalProviders().setSelectedItem(Linq.firstOrDefault(providers));
-                    networkModel.stopProgress();
-                }
-            };
-            AsyncDataProvider.GetAllNetworkProviders(getProvidersQuery);
-        } else {
-            NetworkView network = (NetworkView) getSelectedItem();
-            if (network.isExternal()) {
-                Provider provider = new Provider();
-                provider.setName(network.getProviderName());
-                networkModel.getExternalProviders().setSelectedItem(provider);
-            }
-            networkModel.stopProgress();
-        }
     }
 
     private StoragePool findDc(Guid dcId, List<StoragePool> dataCenters) {


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

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

Reply via email to