Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Added Import command to Networks main tab
......................................................................

webadmin: Added Import command to Networks main tab

This command is a variation of the network provider Discover dialog,
only here one may choose provider among available network providers
within the dialog. This is more general than Discover, so
DiscoverNetwork now inherits from ImportNetwork.

Change-Id: I1c84085e19576f6d7de98bccfaf30dc5b70a9621
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.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/DiscoverNetworksModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/DiscoverNetworkPopupPresenterWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java
10 files changed, 295 insertions(+), 166 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/16070/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java
new file mode 100644
index 0000000..df3aed7
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java
@@ -0,0 +1,194 @@
+package org.ovirt.engine.ui.uicommonweb.models.networks;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.ovirt.engine.core.common.VdcObjectType;
+import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
+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.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.Linq;
+import org.ovirt.engine.ui.uicommonweb.Linq.IPredicate;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.HorizontalSplitTableModel;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
+import org.ovirt.engine.ui.uicommonweb.models.providers.ExternalNetwork;
+import org.ovirt.engine.ui.uicompat.ConstantsManager;
+import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.EventArgs;
+import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IEventListener;
+import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
+
+@SuppressWarnings("deprecation")
+public class ImportNetworksModel extends HorizontalSplitTableModel {
+
+    private static final String CMD_IMPORT = "OnImport"; //$NON-NLS-1$
+    private static final String CMD_CANCEL = "Cancel"; //$NON-NLS-1$
+
+    private final SearchableListModel sourceListModel;
+
+    private final ListModel providers = new ListModel();
+    private final ListModel dataCenters = new ListModel();
+    private final ListModel providerNetworks = new ListModel();
+    private final ListModel importedNetworks = new ListModel();
+
+    @Override
+    public ListModel getSourceListModel() {
+        return providerNetworks;
+    }
+
+    @Override
+    public ListModel getTargetListModel() {
+        return importedNetworks;
+    }
+
+    public ListModel getProviders() {
+        return providers;
+    }
+
+    public ListModel getDataCenters() {
+        return dataCenters;
+    }
+
+    public ImportNetworksModel(SearchableListModel sourceListModel) {
+        this.sourceListModel = sourceListModel;
+
+        
setTitle(ConstantsManager.getInstance().getConstants().importNetworksTitle());
+        setHashName("import_networks"); //$NON-NLS-1$
+
+        UICommand tempVar = new UICommand(CMD_IMPORT, this);
+        
tempVar.setTitle(ConstantsManager.getInstance().getConstants().importNetworksButton());
+        tempVar.setIsDefault(true);
+        getCommands().add(tempVar);
+        UICommand tempVar2 = new UICommand(CMD_CANCEL, this);
+        
tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+        tempVar2.setIsCancel(true);
+        getCommands().add(tempVar2);
+
+        providers.getSelectedItemChangedEvent().addListener(new 
IEventListener() {
+
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                onProviderChosen();
+            }
+        });
+        AsyncDataProvider.GetAllProviders(new AsyncQuery(this, new 
INewAsyncCallback() {
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                Iterable<Provider> allProviders = (Iterable<Provider>) 
returnValue;
+                Collection<Provider> networkProviders = new 
ArrayList<Provider>();
+                networkProviders.add(null);
+                networkProviders.addAll((Collection<Provider>) 
Linq.where(allProviders, new Linq.IPredicate<Provider>() {
+
+                    @Override
+                    public boolean match(Provider provider) {
+                        return 
provider.getType().getProvidedTypes().contains(VdcObjectType.Network);
+                    }
+                }));
+                Provider selectedProvider = (Provider) 
providers.getSelectedItem();
+                providers.setItems(networkProviders);
+                providers.setSelectedItem(selectedProvider);
+            }
+        }));
+    }
+
+    public void onProviderChosen() {
+        final Provider provider = (Provider) providers.getSelectedItem();
+        if (provider == null) {
+            return;
+        }
+
+        final AsyncQuery networkQuery = new AsyncQuery();
+        networkQuery.asyncCallback = new INewAsyncCallback() {
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                Iterable<Network> networks = (Iterable<Network>) returnValue;
+                Collection<ExternalNetwork> items = new 
ArrayList<ExternalNetwork>();
+                for (Network network : networks) {
+                    ExternalNetwork externalNetwork = new ExternalNetwork();
+                    externalNetwork.setNetwork(network);
+                    Iterable<Object> dcList = getDataCenters().getItems();
+                    externalNetwork.getDataCenters().setItems(dcList);
+                    
externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(dcList));
+                    externalNetwork.setPublicUse(false);
+                    items.add(externalNetwork);
+                }
+                providerNetworks.setItems(items);
+
+                stopProgress();
+            }
+        };
+
+        final AsyncQuery dcQuery = new AsyncQuery();
+        dcQuery.asyncCallback = new INewAsyncCallback() {
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                Iterable<StoragePool> dataCenters = (Iterable<StoragePool>) 
returnValue;
+                getDataCenters().setItems(dataCenters);
+                
getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
+
+                AsyncDataProvider.GetExternalNetworkList(networkQuery, 
provider.getId());
+            }
+        };
+
+        startProgress(null);
+        AsyncDataProvider.getDataCenterList(dcQuery);
+    }
+
+    public void cancel() {
+        sourceListModel.setWindow(null);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void onImport() {
+        ArrayList<VdcActionParametersBase> mulipleActionParameters =
+                new ArrayList<VdcActionParametersBase>();
+
+        for (ExternalNetwork externalNetwork : (Iterable<ExternalNetwork>) 
importedNetworks.getItems()) {
+            Guid dcId = ((StoragePool) 
externalNetwork.getDataCenters().getSelectedItem()).getId();
+            externalNetwork.getNetwork().setDataCenterId(dcId);
+            AddNetworkStoragePoolParameters params =
+                    new AddNetworkStoragePoolParameters(dcId, 
externalNetwork.getNetwork());
+            params.setPublicUse(externalNetwork.isPublicUse());
+            mulipleActionParameters.add(params);
+        }
+
+        Frontend.RunMultipleActions(VdcActionType.AddNetwork, 
mulipleActionParameters, new IFrontendActionAsyncCallback() {
+
+            @Override
+            public void executed(FrontendActionAsyncResult result) {
+                sourceListModel.getSearchCommand().execute();
+            }
+        });
+        cancel();
+    }
+
+    @Override
+    public void executeCommand(UICommand command) {
+        super.executeCommand(command);
+
+        if (StringHelper.stringsEqual(command.getName(), CMD_IMPORT)) {
+            onImport();
+        } else if (StringHelper.stringsEqual(command.getName(), CMD_CANCEL)) {
+            cancel();
+        }
+    }
+
+}
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 c114025..c6aba05 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
@@ -41,6 +41,7 @@
             (String) 
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.ManagementNetwork);
 
     private UICommand newCommand;
+    private UICommand importCommand;
     private UICommand editCommand;
     private UICommand removeCommand;
 
@@ -56,6 +57,7 @@
         setAvailableInModes(ApplicationMode.VirtOnly);
 
         setNewCommand(new UICommand("New", this)); //$NON-NLS-1$
+        setImportCommand(new UICommand("Import", this)); //$NON-NLS-1$
         setEditCommand(new UICommand("Edit", this)); //$NON-NLS-1$
         setRemoveCommand(new UICommand("Remove", this)); //$NON-NLS-1$
 
@@ -76,6 +78,14 @@
 
         networkModel.startProgress(null);
         initDcList(networkModel);
+    }
+
+    public void importNetworks() {
+        if (getWindow() != null) {
+            return;
+        }
+
+        setWindow(new ImportNetworksModel(this));
     }
 
     public void edit() {
@@ -235,6 +245,10 @@
         {
             newNetwork();
         }
+        else if (command == getImportCommand())
+        {
+            importNetworks();
+        }
         else if (command == getEditCommand())
         {
             edit();
@@ -282,6 +296,14 @@
         newCommand = value;
     }
 
+    public UICommand getImportCommand() {
+        return importCommand;
+    }
+
+    private void setImportCommand(UICommand value) {
+        importCommand = value;
+    }
+
     @Override
     public UICommand getEditCommand() {
         return editCommand;
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java
index 52a3eeb..0e9dd6e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java
@@ -1,152 +1,24 @@
 package org.ovirt.engine.ui.uicommonweb.models.providers;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
-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.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.Linq;
-import org.ovirt.engine.ui.uicommonweb.UICommand;
-import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
-import org.ovirt.engine.ui.uicommonweb.models.HorizontalSplitTableModel;
-import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
+import org.ovirt.engine.ui.uicommonweb.models.networks.ImportNetworksModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
-import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
-import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
 
-@SuppressWarnings("deprecation")
-public class DiscoverNetworksModel extends HorizontalSplitTableModel {
+public class DiscoverNetworksModel extends ImportNetworksModel {
 
-    private static final String CMD_DISCOVER = "OnDiscover"; //$NON-NLS-1$
-    private static final String CMD_CANCEL = "Cancel"; //$NON-NLS-1$
-
-    private final SearchableListModel sourceListModel;
     private final Provider provider;
 
-    private final ListModel dataCenters = new ListModel();
-    private final ListModel providerNetworks = new ListModel();
-    private final ListModel importedNetworks = new ListModel();
-
-    @Override
-    public ListModel getSourceListModel() {
-        return providerNetworks;
-    }
-
-    @Override
-    public ListModel getTargetListModel() {
-        return importedNetworks;
-    }
-
-    public ListModel getDataCenters() {
-        return dataCenters;
-    }
-
     public DiscoverNetworksModel(SearchableListModel sourceListModel, Provider 
provider) {
-        this.sourceListModel = sourceListModel;
+        super(sourceListModel);
         this.provider = provider;
-
         
setTitle(ConstantsManager.getInstance().getConstants().discoverNetworksTitle());
         setHashName("discover_networks"); //$NON-NLS-1$
-
-        UICommand tempVar = new UICommand(CMD_DISCOVER, this);
-        
tempVar.setTitle(ConstantsManager.getInstance().getConstants().importNetworksTitle());
-        tempVar.setIsDefault(true);
-        getCommands().add(tempVar);
-        UICommand tempVar2 = new UICommand(CMD_CANCEL, this);
-        
tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel());
-        tempVar2.setIsCancel(true);
-        getCommands().add(tempVar2);
+        getProviders().setIsChangable(false);
     }
 
     public void initBackendData() {
-        final AsyncQuery networkQuery = new AsyncQuery();
-        networkQuery.asyncCallback = new INewAsyncCallback() {
-
-            @SuppressWarnings("unchecked")
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-                List<Network> networks = (ArrayList<Network>) returnValue;
-                List<ExternalNetwork> items = new ArrayList<ExternalNetwork>();
-                for (Network network : networks) {
-                    ExternalNetwork externalNetwork = new ExternalNetwork();
-                    externalNetwork.setNetwork(network);
-                    Iterable<Object> dcList = getDataCenters().getItems();
-                    externalNetwork.getDataCenters().setItems(dcList);
-                    
externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(dcList));
-                    externalNetwork.setPublicUse(false);
-                    items.add(externalNetwork);
-                }
-                providerNetworks.setItems(items);
-
-                stopProgress();
-            }
-        };
-
-        final AsyncQuery dcQuery = new AsyncQuery();
-        dcQuery.asyncCallback = new INewAsyncCallback() {
-
-            @SuppressWarnings("unchecked")
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-                ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) 
returnValue;
-                getDataCenters().setItems(dataCenters);
-                
getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
-
-                AsyncDataProvider.GetExternalNetworkList(networkQuery, 
provider.getId());
-            }
-        };
-
-        startProgress(null);
-        AsyncDataProvider.getDataCenterList(dcQuery);
-    }
-
-    public void cancel() {
-        sourceListModel.setWindow(null);
-    }
-
-    @SuppressWarnings("unchecked")
-    public void onDiscover() {
-        ArrayList<VdcActionParametersBase> mulipleActionParameters =
-                new ArrayList<VdcActionParametersBase>();
-
-        for (ExternalNetwork externalNetwork : (Iterable<ExternalNetwork>) 
importedNetworks.getItems()) {
-            Guid dcId = ((StoragePool) 
externalNetwork.getDataCenters().getSelectedItem()).getId();
-            externalNetwork.getNetwork().setDataCenterId(dcId);
-            AddNetworkStoragePoolParameters params =
-                    new AddNetworkStoragePoolParameters(dcId, 
externalNetwork.getNetwork());
-            params.setPublicUse(externalNetwork.isPublicUse());
-            mulipleActionParameters.add(params);
-        }
-
-        Frontend.RunMultipleActions(VdcActionType.AddNetwork, 
mulipleActionParameters, new IFrontendActionAsyncCallback() {
-
-            @Override
-            public void executed(FrontendActionAsyncResult result) {
-                sourceListModel.getSearchCommand().execute();
-            }
-        });
-        cancel();
-    }
-
-    @Override
-    public void executeCommand(UICommand command) {
-        super.executeCommand(command);
-
-        if (StringHelper.stringsEqual(command.getName(), CMD_DISCOVER)) {
-            onDiscover();
-        } else if (StringHelper.stringsEqual(command.getName(), CMD_CANCEL)) {
-            cancel();
-        }
+        getProviders().setSelectedItem(provider);
     }
 
 }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 97d5d7b..e8df496 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -1913,9 +1913,12 @@
     @DefaultStringValue("Discover Networks")
     String discoverNetworksTitle();
 
-    @DefaultStringValue("Import")
+    @DefaultStringValue("Import Networks")
     String importNetworksTitle();
 
+    @DefaultStringValue("Import")
+    String importNetworksButton();
+
     @DefaultStringValue("No row has been selected to be added")
     String horizontalSplitTableNoRowSelectedToBeAdded();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index 1b7b1fe..a298af4 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -1726,6 +1726,9 @@
     @DefaultStringValue("New")
     String newNetwork();
 
+    @DefaultStringValue("Import")
+    String importNetwork();
+
     @DefaultStringValue("Edit")
     String editNetwork();
 
@@ -2862,4 +2865,7 @@
 
     @DefaultStringValue("Public Network")
     String publicNetwork();
+
+    @DefaultStringValue("Network Provider")
+    String networkProvider();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java
index 5ef585d..baa4391 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/NetworkModule.java
@@ -41,6 +41,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.HostSetupNetworksPopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksInterfacePopupPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksManagementPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.provider.DiscoverNetworkPopupPresenterWidget;
 
 import com.google.gwt.inject.client.AbstractGinModule;
 import com.google.inject.Provider;
@@ -55,6 +56,7 @@
     @Singleton
     public MainModelProvider<NetworkView, NetworkListModel> 
getNetworkListProvider(ClientGinjector ginjector,
             final Provider<NewNetworkPopupPresenterWidget> 
newNetworkPopupProvider,
+            final Provider<DiscoverNetworkPopupPresenterWidget> 
importNetworkPopupProvider,
             final Provider<EditNetworkPopupPresenterWidget> 
editNetworkPopupProvider,
             final Provider<RemoveConfirmationPopupPresenterWidget> 
removeConfirmPopupProvider) {
         return new MainTabModelProvider<NetworkView, 
NetworkListModel>(ginjector, NetworkListModel.class) {
@@ -64,6 +66,8 @@
 
                 if (lastExecutedCommand == getModel().getNewCommand()) {
                     return newNetworkPopupProvider.get();
+                } else if (lastExecutedCommand == 
getModel().getImportCommand()) {
+                    return importNetworkPopupProvider.get();
                 } else if (lastExecutedCommand == getModel().getEditCommand()) 
{
                     return editNetworkPopupProvider.get();
                 } else {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/DiscoverNetworkPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/DiscoverNetworkPopupPresenterWidget.java
index 58db39c..34a83da 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/DiscoverNetworkPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/DiscoverNetworkPopupPresenterWidget.java
@@ -2,7 +2,7 @@
 
 import 
org.ovirt.engine.ui.common.presenter.popup.HorizontalSplitTablePopupPresenterWidget;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.models.providers.DiscoverNetworksModel;
+import org.ovirt.engine.ui.uicommonweb.models.networks.ImportNetworksModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
@@ -10,9 +10,9 @@
 import com.google.gwt.event.shared.EventBus;
 import com.google.inject.Inject;
 
-public class DiscoverNetworkPopupPresenterWidget extends 
HorizontalSplitTablePopupPresenterWidget<DiscoverNetworksModel, 
DiscoverNetworkPopupPresenterWidget.ViewDef> {
+public class DiscoverNetworkPopupPresenterWidget extends 
HorizontalSplitTablePopupPresenterWidget<ImportNetworksModel, 
DiscoverNetworkPopupPresenterWidget.ViewDef> {
 
-    public interface ViewDef extends 
HorizontalSplitTablePopupPresenterWidget.ViewDef<DiscoverNetworksModel> {
+    public interface ViewDef extends 
HorizontalSplitTablePopupPresenterWidget.ViewDef<ImportNetworksModel> {
         void setDataCenterList(ListModel dcList);
     }
 
@@ -22,7 +22,7 @@
     }
 
     @Override
-    public void init(final DiscoverNetworksModel model) {
+    public void init(final ImportNetworksModel model) {
         super.init(model);
 
         model.getDataCenters().getItemsChangedEvent().addListener(new 
IEventListener() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.java
index 37fe92d..a399d19 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.java
@@ -2,17 +2,20 @@
 
 import java.util.ArrayList;
 
+import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
 import org.ovirt.engine.ui.common.view.HorizontalSplitTablePopupView;
 import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable;
+import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
 import org.ovirt.engine.ui.common.widget.table.column.CheckboxColumn;
 import org.ovirt.engine.ui.common.widget.table.column.ListModelListBoxColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.models.providers.DiscoverNetworksModel;
+import org.ovirt.engine.ui.uicommonweb.models.networks.ImportNetworksModel;
 import org.ovirt.engine.ui.uicommonweb.models.providers.ExternalNetwork;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
@@ -28,18 +31,24 @@
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.Column;
 import com.google.inject.Inject;
 
-public class DiscoverNetworkPopupView extends 
HorizontalSplitTablePopupView<DiscoverNetworksModel> implements 
DiscoverNetworkPopupPresenterWidget.ViewDef {
+public class DiscoverNetworkPopupView extends 
HorizontalSplitTablePopupView<ImportNetworksModel> implements 
DiscoverNetworkPopupPresenterWidget.ViewDef {
 
-    interface Driver extends SimpleBeanEditorDriver<DiscoverNetworksModel, 
DiscoverNetworkPopupView> { }
+    interface Driver extends SimpleBeanEditorDriver<ImportNetworksModel, 
DiscoverNetworkPopupView> { }
 
     private final Driver driver = GWT.create(Driver.class);
 
     interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
DiscoverNetworkPopupView> {
         ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
     }
+
+    @UiField(provided = true)
+    @Path(value = "providers.selectedItem")
+    @WithElementId
+    ListModelListBoxEditor<Object> providersEditor;
 
     @Ignore
     public EntityModelCellTable<ListModel> providerNetworks;
@@ -54,10 +63,18 @@
             ApplicationConstants constants, ApplicationTemplates templates) {
         super(eventBus, resources, constants);
         // Initialize Editors
+        providersEditor = new ListModelListBoxEditor<Object>(new 
NullSafeRenderer<Object>() {
+
+            @Override
+            protected String renderNullSafe(Object object) {
+                return ((Provider) object).getName();
+            }
+        });
         providerNetworks = sourceTable;
         importedNetworks = targetTable;
         initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
         initEntityModelCellTables(constants, templates);
+        providersEditor.setLabel(constants.networkProvider());
         driver.initialize(this);
     }
 
@@ -159,12 +176,12 @@
     }
 
     @Override
-    public void edit(DiscoverNetworksModel object) {
+    public void edit(ImportNetworksModel object) {
         driver.edit(object);
     }
 
     @Override
-    public DiscoverNetworksModel flush() {
+    public ImportNetworksModel flush() {
         return driver.flush();
     }
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.ui.xml
index 69d73d6..f78fdd7 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/DiscoverNetworkPopupView.ui.xml
@@ -12,30 +12,35 @@
                }
        </ui:style>
 
-       <d:SimpleDialogPanel ui:field="mainPanel" width="620px" height="520px">
+       <d:SimpleDialogPanel ui:field="mainPanel" width="620px" height="580px">
                <d:content>
-                       <g:SplitLayoutPanel>
-                               <g:north size="190">
-                                       <g:ScrollPanel>
-                                               <e:EntityModelCellTable 
ui:field="sourceTable" />
-                                       </g:ScrollPanel>
-                               </g:north>
-                               <g:center>
-                                       <g:HorizontalPanel height="100%" 
width="100%">
-                                               <g:cell 
horizontalAlignment="ALIGN_CENTER" verticalAlignment="ALIGN_MIDDLE">
-                                                       <g:HorizontalPanel>
-                                                               <g:Button 
ui:field="addButton" addStyleNames="{style.buttonStyle}" />
-                                                               <g:Button 
ui:field="removeButton" addStyleNames="{style.buttonStyle}" />
-                                                       </g:HorizontalPanel>
-                                               </g:cell>
-                                       </g:HorizontalPanel>
-                               </g:center>
-                               <g:south size="190">
-                                       <g:ScrollPanel>
-                                               <e:EntityModelCellTable 
ui:field="targetTable" />
-                                       </g:ScrollPanel>
-                               </g:south>
-                       </g:SplitLayoutPanel>
+                       <g:VerticalPanel>
+                               <g:FlowPanel>
+                                       <e:ListModelListBoxEditor 
ui:field="providersEditor" />
+                               </g:FlowPanel>
+                               <g:SplitLayoutPanel height="520px">
+                                       <g:north size="220">
+                                               <g:ScrollPanel>
+                                                       <e:EntityModelCellTable 
ui:field="sourceTable" />
+                                               </g:ScrollPanel>
+                                       </g:north>
+                                       <g:center>
+                                               <g:HorizontalPanel 
height="100%" width="100%">
+                                                       <g:cell 
horizontalAlignment="ALIGN_CENTER" verticalAlignment="ALIGN_MIDDLE">
+                                                               
<g:HorizontalPanel>
+                                                                       
<g:Button ui:field="addButton" addStyleNames="{style.buttonStyle}" />
+                                                                       
<g:Button ui:field="removeButton" addStyleNames="{style.buttonStyle}" />
+                                                               
</g:HorizontalPanel>
+                                                       </g:cell>
+                                               </g:HorizontalPanel>
+                                       </g:center>
+                                       <g:south size="220">
+                                               <g:ScrollPanel>
+                                                       <e:EntityModelCellTable 
ui:field="targetTable" />
+                                               </g:ScrollPanel>
+                                       </g:south>
+                               </g:SplitLayoutPanel>
+                       </g:VerticalPanel>
                </d:content>
        </d:SimpleDialogPanel>
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java
index 5c4341c..8c52053 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabNetworkView.java
@@ -158,6 +158,12 @@
                 return getMainModel().getNewCommand();
             }
         });
+        getTable().addActionButton(new 
WebAdminButtonDefinition<NetworkView>(constants.importNetwork()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getMainModel().getImportCommand();
+            }
+        });
         getTable().addActionButton(new 
WebAdminButtonDefinition<NetworkView>(constants.editNetwork()) {
             @Override
             protected UICommand resolveCommand() {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1c84085e19576f6d7de98bccfaf30dc5b70a9621
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