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

Reply via email to