Lior Vernia has uploaded a new change for review. Change subject: webadmin: RefreshActiveModelEvent upon AsyncOperationCompleteEvent ......................................................................
webadmin: RefreshActiveModelEvent upon AsyncOperationCompleteEvent The semantics of RefreshActiveModelEvent (at least in its fast forward variant) were to trigger it whenever an async action completed successfully - this is now made explicit. Change-Id: I995fe6068e99ac9c268977c895e95356d9580728 Signed-off-by: Lior Vernia <[email protected]> --- M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/AsyncOperationComplete.java 2 files changed, 42 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/35967/1 diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java index bdd5ff8..969fb3a 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java @@ -18,6 +18,7 @@ import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.ui.frontend.communication.AsyncOperationCompleteEvent; +import org.ovirt.engine.ui.frontend.communication.AsyncOperationCompleteEvent.AsyncOperationCompleteHandler; import org.ovirt.engine.ui.frontend.communication.AsyncOperationStartedEvent; import org.ovirt.engine.ui.frontend.communication.RefreshActiveModelEvent; import org.ovirt.engine.ui.frontend.communication.StorageCallback; @@ -174,6 +175,16 @@ this.canDoActionErrorsTranslator = canDoActionErrorsTranslator; this.vdsmErrorsTranslator = vdsmErrorsTranslator; eventBus = gwtEventBus; + + eventBus.addHandler(AsyncOperationCompleteEvent.getType(), new AsyncOperationCompleteHandler() { + + @Override + public void onAsyncOperationComplete(AsyncOperationCompleteEvent event) { + if (event.isAction() && event.isSuccess()) { + RefreshActiveModelEvent.fire(Frontend.this, true); + } + } + }); } /** @@ -253,7 +264,8 @@ } } } finally { - AsyncOperationCompleteEvent.fire(Frontend.this, callback.getModel()); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent(callback.getModel(), true)); } } @@ -271,7 +283,8 @@ callback.getDel().onSuccess(callback.getModel(), null); } } finally { - AsyncOperationCompleteEvent.fire(Frontend.this, callback.getModel()); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent(callback.getModel(), false)); } } }); @@ -330,7 +343,7 @@ FrontendMultipleQueryAsyncResult f = new FrontendMultipleQueryAsyncResult(queryTypeList, queryParamsList, resultObject); callback.executed(f); - AsyncOperationCompleteEvent.fire(Frontend.this, state); + AsyncOperationCompleteEvent.fire(Frontend.this, new AsyncOperationCompleteEvent(state, true)); } @Override @@ -346,7 +359,7 @@ failureEventHandler(caught); callback.executed(f); } finally { - AsyncOperationCompleteEvent.fire(Frontend.this, state); + AsyncOperationCompleteEvent.fire(Frontend.this, new AsyncOperationCompleteEvent(state, false)); } } }; @@ -432,8 +445,8 @@ logger.finer("Frontend: sucessfully executed runAction, determining result!"); //$NON-NLS-1$ handleActionResult(actionType, parameters, result, callback != null ? callback : NULLABLE_ASYNC_CALLBACK, state, showErrorDialog); - AsyncOperationCompleteEvent.fire(Frontend.this, state); - RefreshActiveModelEvent.fire(Frontend.this, true); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent.Builder(state, true).action(true).build()); } @Override @@ -448,7 +461,8 @@ if (callback != null) { callback.executed(f); } - AsyncOperationCompleteEvent.fire(Frontend.this, state); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent.Builder(state, false).action(true).build()); } }); @@ -529,8 +543,8 @@ callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, resultObject, state)); } - AsyncOperationCompleteEvent.fire(Frontend.this, state); - RefreshActiveModelEvent.fire(Frontend.this, true); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent.Builder(state, true).action(true).build()); } @Override @@ -546,7 +560,8 @@ callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, null, state)); } - AsyncOperationCompleteEvent.fire(Frontend.this, state); + AsyncOperationCompleteEvent.fire(Frontend.this, + new AsyncOperationCompleteEvent.Builder(state, false).action(true).build()); } }; diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/AsyncOperationComplete.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/AsyncOperationComplete.java index fc314be..6a72a8a 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/AsyncOperationComplete.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/AsyncOperationComplete.java @@ -1,14 +1,30 @@ package org.ovirt.engine.ui.frontend.communication; import com.gwtplatform.dispatch.annotation.GenEvent; +import com.gwtplatform.dispatch.annotation.Optional; +import com.gwtplatform.dispatch.annotation.Order; /** - * Event triggered when VdcOperation completes. Used primarily to monitor progress display in dialogs. + * Event triggered when VdcOperation completes. Used primarily to monitor progress display in dialogs, but also to + * trigger refresh events on active models. */ @GenEvent public class AsyncOperationComplete { /** * the model to which this operation is relevant. */ + @Order(1) Object target; + + /** + * whether this operation was successful. + */ + @Order(2) + boolean success; + + /** + * whether this operation corresponds to an action or a query. + */ + @Optional + boolean action; } -- To view, visit http://gerrit.ovirt.org/35967 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I995fe6068e99ac9c268977c895e95356d9580728 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
