Lior Vernia has uploaded a new change for review. Change subject: webadmin: Allow different options for different entries ......................................................................
webadmin: Allow different options for different entries ListModelListBoxCell used to have one set of options for all of the entries. Now it only sets the options in the last minute, when a specific entry is rendered, according to the items in the ListModel backing the specific entry, which enables to have different options for different entries. Change-Id: I703ab631ef959fa3ca3ad5bb6dd878634993a3b2 Bug-Url: https://bugzilla.redhat.com/989909 Signed-off-by: Lior Vernia <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxCell.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxColumn.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java 4 files changed, 8 insertions(+), 44 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/20604/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxCell.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxCell.java index d4e9922..46503dd 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxCell.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxCell.java @@ -7,10 +7,6 @@ import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; -import org.ovirt.engine.ui.uicompat.Event; -import org.ovirt.engine.ui.uicompat.EventArgs; -import org.ovirt.engine.ui.uicompat.IEventListener; - import com.google.gwt.cell.client.AbstractInputCell; import com.google.gwt.cell.client.SelectionCell; import com.google.gwt.cell.client.ValueUpdater; @@ -34,37 +30,18 @@ private static final String PATTERN_SELECT = "<select"; //$NON-NLS-1$ private static final String REPLACEMENT_SELECT = "<select disabled"; //$NON-NLS-1$ - private ListModel model; private SelectionCell delegate; private Map<String, T> entityByName; private final Renderer<T> renderer; - private final IEventListener itemsChangedListener; public ListModelListBoxCell(final Renderer<T> renderer) { super("change"); //$NON-NLS-1$ this.renderer = renderer; delegate = new SelectionCell(new ArrayList<String>()); // just to avoid null pointer in setSelection() - - itemsChangedListener = new IEventListener() { - - @Override - public void eventRaised(Event ev, Object sender, EventArgs args) { - setOptions(); - } - }; - } - - public void edit(final ListModel model) { - if (this.model != null) { - this.model.getItemsChangedEvent().removeListener(itemsChangedListener); - } - this.model = model; - model.getItemsChangedEvent().addListener(itemsChangedListener); - setOptions(); } @SuppressWarnings("unchecked") - private void setOptions() { + private void setOptions(ListModel model) { Iterable<T> items = model.getItems(); if (items == null) { items = new ArrayList<T>(); @@ -83,6 +60,7 @@ @SuppressWarnings("unchecked") @Override public void render(Context context, ListModel value, SafeHtmlBuilder sb) { + setOptions(value); SafeHtmlBuilder sbDelegate = new SafeHtmlBuilder(); delegate.render(context, renderer.render((T) value.getSelectedItem()), sbDelegate); if (value.getIsChangable()) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxColumn.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxColumn.java index 498d211..b14b260 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxColumn.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/ListModelListBoxColumn.java @@ -19,9 +19,4 @@ super(new ListModelListBoxCell<S>(renderer)); } - @SuppressWarnings("unchecked") - public void edit(ListModel model) { - ((ListModelListBoxCell<S>) getCell()).edit(model); - } - } 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 index 695a044..d9b91d2 100644 --- 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 @@ -45,7 +45,6 @@ private final SearchableListModel sourceListModel; - private final ListModel dataCenters = new ListModel(); private final ListModel providers = new ListModel(); private final ListModel providerNetworks = new ListModel(); private final ListModel importedNetworks = new ListModel(); @@ -53,11 +52,7 @@ private UICommand addImportCommand = new UICommand(null, this); private UICommand cancelImportCommand = new UICommand(null, this); - Map<Guid, Collection<VDSGroup>> dcClusters; - - public ListModel getDataCenters() { - return dataCenters; - } + private Map<Guid, Collection<VDSGroup>> dcClusters; public ListModel getProviderNetworks() { return providerNetworks; @@ -110,7 +105,6 @@ startProgress(null); AsyncDataProvider.GetAllNetworkProviders(new AsyncQuery(this, new INewAsyncCallback() { - @SuppressWarnings("unchecked") @Override public void onSuccess(Object model, Object returnValue) { stopProgress(); @@ -127,10 +121,11 @@ return; } + final List<StoragePool> dataCenters = new LinkedList<StoragePool>(); + 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; @@ -139,9 +134,8 @@ ExternalNetwork externalNetwork = new ExternalNetwork(); externalNetwork.setNetwork(network); externalNetwork.setDisplayName(network.getName()); - Iterable<StoragePool> dcList = getDataCenters().getItems(); - externalNetwork.getDataCenters().setItems(dcList); - externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(dcList)); + externalNetwork.getDataCenters().setItems(dataCenters); + externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters)); externalNetwork.setPublicUse(true); items.add(externalNetwork); } @@ -158,10 +152,8 @@ @Override public void onSuccess(Object model, Object returnValue) { - List<StoragePool> dataCenters = (List<StoragePool>) returnValue; + dataCenters.addAll((Collection<StoragePool>) returnValue); Collections.sort(dataCenters, new NameableComparator()); - getDataCenters().setItems(dataCenters); - getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters)); AsyncDataProvider.GetExternalNetworkList(networkQuery, provider.getId()); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java index 70c6ec9..e2581db 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ImportNetworksPopupView.java @@ -222,7 +222,6 @@ model.getImportedNetworks(), model.getAddImportCommand(), model.getCancelImportCommand()); - dcColumn.edit(model.getDataCenters()); driver.edit(model); } -- To view, visit http://gerrit.ovirt.org/20604 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I703ab631ef959fa3ca3ad5bb6dd878634993a3b2 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
