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