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