ofri masad has uploaded a new change for review.

Change subject: webadmin: fixed item list in Remove QoS dialog
......................................................................

webadmin: fixed item list in Remove QoS dialog

When removing a QoS entity (or multiple entities), one of two behavior
should be applied to the dialog:
 - if the selected QoS(s) not connected to any profile - show a message
   with a list of the selected entities attached.
 - if the selected QoS(s) is/are connected to profiles - show a message
   with a list of the connected profiles attached.

Change-Id: I042d4696ef3735b7d3b1f99b95eac4d9bb1eab52
Bug-Url: https://bugzilla.redhat.com/1000222
Signed-off-by: Ofri Masad <oma...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/RemoveNetworkQoSModel.java
1 file changed, 38 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/18599/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/RemoveNetworkQoSModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/RemoveNetworkQoSModel.java
index af0ef18..b23a533 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/RemoveNetworkQoSModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/RemoveNetworkQoSModel.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
@@ -16,8 +17,11 @@
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback;
 
 import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class RemoveNetworkQoSModel extends ConfirmationModel {
 
@@ -27,8 +31,6 @@
         this.sourceListModel = sourceListModel;
 
         
setTitle(ConstantsManager.getInstance().getConstants().removeNetworkQoSTitle());
-        // name start with underscore to prevent default message
-        setHashName("_remove_network_qos"); //$NON-NLS-1$
         setMessage();
         UICommand tempVar = new UICommand("onRemove", this); //$NON-NLS-1$
         tempVar.setTitle(ConstantsManager.getInstance().getConstants().ok());
@@ -42,34 +44,44 @@
 
     private void setMessage() {
 
-        AsyncQuery _asyncQuery = new AsyncQuery();
-        _asyncQuery.setModel(this);
-        _asyncQuery.asyncCallback = new INewAsyncCallback() {
+        ArrayList<VdcQueryParametersBase> parameters = new 
ArrayList<VdcQueryParametersBase>();
+        ArrayList<VdcQueryType> queryTypes = new ArrayList<VdcQueryType>();
+        for (Object networkQoS : sourceListModel.getSelectedItems()) {
+            VdcQueryParametersBase parameter = new 
IdQueryParameters(((NetworkQoS) networkQoS).getId());
+            parameters.add(parameter);
+            queryTypes.add(VdcQueryType.GetVnicProfilesByNetworkQosId);
+        }
+        Frontend.RunMultipleQueries(queryTypes, parameters, new 
IFrontendMultipleQueryAsyncCallback() {
+
             @Override
-            public void onSuccess(Object model, Object ReturnValue) {
-                ArrayList<VnicProfileView> vnicProfiles =
-                        (ArrayList<VnicProfileView>) ((VdcQueryReturnValue) 
ReturnValue).getReturnValue();
-                if (vnicProfiles == null || vnicProfiles.isEmpty()) {
-                    
setMessage(ConstantsManager.getInstance().getConstants().removeNetworkQoSMessage());
-                } else {
-                    StringBuilder stringBuilder = new StringBuilder(
-                            
ConstantsManager.getInstance().getMessages().removeNetworkQoSMessage(vnicProfiles.size()));
-                    for (int i = 0; i < vnicProfiles.size(); i++) {
-                        stringBuilder.append("  - 
").append(vnicProfiles.get(i).getName())  //$NON-NLS-1$
-                                .append(" 
(").append(vnicProfiles.get(i).getNetworkName()).append(")\n"); //$NON-NLS-1$  
//$NON-NLS-2$
-                        if (i >= 10) {
-                            stringBuilder.append("    ...");  //$NON-NLS-1$
-                            break;
-                        }
+            public void executed(FrontendMultipleQueryAsyncResult result) {
+                ArrayList<VnicProfileView> vnicProfiles = new 
ArrayList<VnicProfileView>();
+
+                for (VdcQueryReturnValue returnValue : 
result.getReturnValues()) {
+                    vnicProfiles.addAll((ArrayList<VnicProfileView>) 
returnValue.getReturnValue());
+                }
+                if (vnicProfiles.isEmpty()) {
+                    setHashName("remove_network_qos"); //$NON-NLS-1$
+
+                    ArrayList<String> list = new ArrayList<String>();
+                    for (Object item : sourceListModel.getSelectedItems()) {
+                        NetworkQoS i = (NetworkQoS) item;
+                        list.add(i.getName());
                     }
-                    setMessage(stringBuilder.toString());
+                    setItems(list);
+                } else {
+                    // name start with underscore to prevent default message
+                    setHashName("_remove_network_qos"); //$NON-NLS-1$
+                    
setMessage(ConstantsManager.getInstance().getMessages().removeNetworkQoSMessage(vnicProfiles.size()));
+
+                    ArrayList<String> list = new ArrayList<String>();
+                    for (VnicProfileView item : vnicProfiles) {
+                        list.add(item.getName());
+                    }
+                    setItems(list);
                 }
             }
-        };
-
-        IdQueryParameters queryParams = new 
IdQueryParameters(((NetworkQoS)sourceListModel.getSelectedItem()).getId());
-        Frontend.RunQuery(VdcQueryType.GetVnicProfilesByNetworkQosId, 
queryParams, _asyncQuery);
-
+        });
     }
 
     public void onRemove() {


-- 
To view, visit http://gerrit.ovirt.org/18599
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I042d4696ef3735b7d3b1f99b95eac4d9bb1eab52
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: ofri masad <oma...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to