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