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
