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

Reply via email to