Noam Slomianko has uploaded a new change for review. Change subject: webadmin: Linit selection of datacenters in new quota ......................................................................
webadmin: Linit selection of datacenters in new quota when creating new quota from the datacenter_quota subtab only the selected datacenter should be an option for the created quota and fixed a possible null pionter exception in a certin race conditions Change-Id: I81c6d13e6ddb704c85593d8ffec317e40a3d3a86 Bug-Url: https://bugzilla.redhat.com/911241 Signed-off-by: Noam Slomianko <nslom...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java 2 files changed, 48 insertions(+), 25 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/12287/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java index 05b74a4..a4d7032 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterQuotaListModel.java @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.uicommonweb.models.datacenters; import java.util.ArrayList; +import java.util.Arrays; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.storage_pool; @@ -11,6 +12,7 @@ import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel; +import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; @@ -80,4 +82,16 @@ protected String getListName() { return "DataCenterQuotaListModel"; //$NON-NLS-1$ } + + @Override + protected void createQuota() { + super.createQuota(false); + + QuotaModel quotaModel = (QuotaModel) getWindow(); + + + quotaModel.getDataCenter().setItems(Arrays.asList(getEntity())); + quotaModel.getDataCenter().setSelectedItem(getEntity()); + quotaModel.getDataCenter().setIsChangable(false); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java index 0e28b59..6986968 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/quota/QuotaListModel.java @@ -9,9 +9,9 @@ import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.QuotaStorage; import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.VDSGroup; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; @@ -144,7 +144,11 @@ getCloneQuotaCommand().setIsExecutionAllowed(items.size() == 1); } - private void createQuota() { + protected void createQuota(){ + createQuota(true); + } + + protected void createQuota(boolean populateDataCenter) { final QuotaModel qModel = new QuotaModel(); qModel.setTitle(ConstantsManager.getInstance().getConstants().newQuotaTitle()); qModel.setHashName("new_quota"); //$NON-NLS-1$ @@ -153,37 +157,42 @@ setWindow(qModel); qModel.StartProgress(null); - AsyncDataProvider.GetDataCenterList(new AsyncQuery(this, new INewAsyncCallback() { + if(populateDataCenter){ + AsyncDataProvider.GetDataCenterList(new AsyncQuery(this, new INewAsyncCallback() { - @Override - public void OnSuccess(Object model, Object returnValue) { - ArrayList<storage_pool> dataCenterList = (ArrayList<storage_pool>) returnValue; - if (dataCenterList == null || dataCenterList.size() == 0) { - return; + @Override + public void OnSuccess(Object model, Object returnValue) { + ArrayList<storage_pool> dataCenterList = (ArrayList<storage_pool>) returnValue; + if (dataCenterList == null || dataCenterList.size() == 0) { + return; + } + QuotaListModel quotaListModel = (QuotaListModel) model; + QuotaModel quotaModel = (QuotaModel) quotaListModel.getWindow(); + quotaModel.getDataCenter().setItems(dataCenterList); + quotaModel.getDataCenter().setSelectedItem(dataCenterList.get(0)); + + if (quotaListModel.getSystemTreeSelectedItem() != null + && quotaListModel.getSystemTreeSelectedItem().getType() == SystemTreeItemType.DataCenter) + { + storage_pool selectDataCenter = + (storage_pool) quotaListModel.getSystemTreeSelectedItem().getEntity(); + + quotaModel.getDataCenter().setSelectedItem(Linq.FirstOrDefault(dataCenterList, + new Linq.DataCenterPredicate(selectDataCenter.getId()))); + quotaModel.getDataCenter().setIsChangable(false); + } } - QuotaListModel quotaListModel = (QuotaListModel) model; - QuotaModel quotaModel = (QuotaModel) quotaListModel.getWindow(); - quotaModel.getDataCenter().setItems(dataCenterList); - quotaModel.getDataCenter().setSelectedItem(dataCenterList.get(0)); - - if (quotaListModel.getSystemTreeSelectedItem() != null - && quotaListModel.getSystemTreeSelectedItem().getType() == SystemTreeItemType.DataCenter) - { - storage_pool selectDataCenter = - (storage_pool) quotaListModel.getSystemTreeSelectedItem().getEntity(); - - quotaModel.getDataCenter().setSelectedItem(Linq.FirstOrDefault(dataCenterList, - new Linq.DataCenterPredicate(selectDataCenter.getId()))); - quotaModel.getDataCenter().setIsChangable(false); - } - } - })); + })); + } qModel.getDataCenter().getSelectedItemChangedEvent().addListener(new IEventListener() { @Override public void eventRaised(Event ev, Object sender, EventArgs args) { storage_pool selectedDataCenter = (storage_pool) qModel.getDataCenter().getSelectedItem(); + if(selectedDataCenter == null){ + return; + } AsyncDataProvider.GetClusterList(new AsyncQuery(this, new INewAsyncCallback() { @Override public void OnSuccess(Object model, Object returnValue) { -- To view, visit http://gerrit.ovirt.org/12287 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I81c6d13e6ddb704c85593d8ffec317e40a3d3a86 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Noam Slomianko <nslom...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches