Author: [EMAIL PROTECTED]
Date: Mon Nov 10 07:02:34 2008
New Revision: 3995

Modified:
     
branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java

Log:
Adding onBeforeFire event to handler manager and making the fire event  
final.

Modified:  
branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java
==============================================================================
---  
branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java
       
(original)
+++  
branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java
       
Mon Nov 10 07:02:34 2008
@@ -131,7 +131,7 @@
     *
     * @param event the event
     */
-  public void fireEvent(GwtEvent<?> event) {
+  public final void fireEvent(GwtEvent<?> event) {
      // If it not live we should clear the source and make it live.
      if (event.isLive() == false) {
        revive(event);
@@ -140,10 +140,12 @@
      event.setSource(source);
      try {
        firingDepth++;
-      if (useJs) {
-        javaScriptRegistry.fireEvent(event);
-      } else {
-        javaRegistry.fireEvent(event);
+      if (onBeforeFire(event)) {
+        if (useJs) {
+          javaScriptRegistry.fireEvent(event);
+        } else {
+          javaRegistry.fireEvent(event);
+        }
        }
      } finally {
        firingDepth--;
@@ -168,8 +170,7 @@
     * @param type the handler's event type
     * @return the given handler
     */
-  public <H extends EventHandler> H getHandler(
-      GwtEvent.Type<H> type, int index) {
+  public <H extends EventHandler> H getHandler(GwtEvent.Type<H> type, int  
index) {
      if (useJs) {
        return javaScriptRegistry.getHandler(type, index);
      } else {
@@ -211,13 +212,23 @@
     * @param type the event type
     * @param handler the handler
     */
-  public <H extends EventHandler> void removeHandler(
-      GwtEvent.Type<H> type, final H handler) {
+  public <H extends EventHandler> void removeHandler(GwtEvent.Type<H> type,
+      final H handler) {
      if (firingDepth > 0) {
        enqueueRemove(type, handler);
      } else {
        doRemove(type, handler);
      }
+  }
+
+  /**
+   * Called before an event is fired on its handlers.
+   *
+   * @param event the event
+   * @return whether to fire the event
+   */
+  protected boolean onBeforeFire(GwtEvent<?> event) {
+    return true;
    }

    <H extends EventHandler> void enqueueAdd(GwtEvent.Type<H> type,

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to