Make EventBus backward compatible.

Review at http://gwt-code-reviews.appspot.com/1423803

Review by: robertvawter@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10023 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/event/shared/EventBus.java b/user/src/com/google/gwt/event/shared/EventBus.java
index 09a4385..50bfdaa 100644
--- a/user/src/com/google/gwt/event/shared/EventBus.java
+++ b/user/src/com/google/gwt/event/shared/EventBus.java
@@ -21,8 +21,9 @@
  * Extends {com.google.web.bindery.event.shared.EventBus} for legacy
  * compatibility.
  */
-public abstract class EventBus extends com.google.web.bindery.event.shared.EventBus implements HasHandlers {
-  
+public abstract class EventBus extends com.google.web.bindery.event.shared.EventBus implements
+    HasHandlers {
+
   public <H extends EventHandler> HandlerRegistration addHandler(GwtEvent.Type<H> type, H handler) {
     return wrap(addHandler((Event.Type<H>) type, handler));
   }
@@ -31,8 +32,24 @@
       Object source, H handler) {
     return wrap(addHandlerToSource((Event.Type<H>) type, source, handler));
   }
-  
-  public void fireEvent(GwtEvent<?> event) {
+
+  public void fireEvent(Event<?> event) {
+    throw new UnsupportedOperationException("Subclass responsibility. "
+        + "This class is a legacy wrapper for com.google.web.bindery.event.shared.EventBus. "
+        + "Use that directly, or try com.google.gwt.event.shared.SimpleEventBus");
+  }
+
+  public abstract void fireEvent(GwtEvent<?> event);
+
+  public void fireEventFromSource(Event<?> event, Object source) {
+    throw new UnsupportedOperationException("Subclass responsibility. "
+        + "This class is a legacy wrapper for com.google.web.bindery.event.shared.EventBus. "
+        + "Use that directly, or try com.google.gwt.event.shared.SimpleEventBus");
+  }
+
+  public abstract void fireEventFromSource(GwtEvent<?> event, Object source);
+
+  protected void castFireEvent(GwtEvent<?> event) {
     try {
       fireEvent((Event<?>) event);
     } catch (com.google.web.bindery.event.shared.UmbrellaException e) {
@@ -40,7 +57,7 @@
     }
   }
 
-  public void fireEventFromSource(GwtEvent<?> event, Object source) {
+  protected void castFireEventFromSource(GwtEvent<?> event, Object source) {
     try {
       fireEventFromSource((Event<?>) event, source);
     } catch (com.google.web.bindery.event.shared.UmbrellaException e) {
diff --git a/user/src/com/google/gwt/event/shared/ResettableEventBus.java b/user/src/com/google/gwt/event/shared/ResettableEventBus.java
index b4fa3eb..719e7a9 100644
--- a/user/src/com/google/gwt/event/shared/ResettableEventBus.java
+++ b/user/src/com/google/gwt/event/shared/ResettableEventBus.java
@@ -60,10 +60,20 @@
   }
 
   @Override
+  public void fireEvent(GwtEvent<?> event) {
+    castFireEvent(event);
+  }
+
+  @Override
   public void fireEventFromSource(Event<?> event, Object source) {
     real.fireEventFromSource(event, source);
   }
 
+  @Override
+  public void fireEventFromSource(GwtEvent<?> event, Object source) {
+    castFireEventFromSource(event, source);
+  }
+
   public void removeHandlers() {
     real.removeHandlers();
   }
diff --git a/user/src/com/google/gwt/event/shared/SimpleEventBus.java b/user/src/com/google/gwt/event/shared/SimpleEventBus.java
index 94a7abe..08c6f33 100644
--- a/user/src/com/google/gwt/event/shared/SimpleEventBus.java
+++ b/user/src/com/google/gwt/event/shared/SimpleEventBus.java
@@ -43,7 +43,17 @@
   }
 
   @Override
+  public void fireEvent(GwtEvent<?> event) {
+    castFireEvent(event);
+  }
+
+  @Override
   public void fireEventFromSource(Event<?> event, Object source) {
     real.fireEventFromSource(event, source);
   }
+
+  @Override
+  public void fireEventFromSource(GwtEvent<?> event, Object source) {
+    castFireEventFromSource(event, source);
+  }
 }
diff --git a/user/src/com/google/gwt/event/shared/testing/CountingEventBus.java b/user/src/com/google/gwt/event/shared/testing/CountingEventBus.java
index e92fcf6..f20110e 100644
--- a/user/src/com/google/gwt/event/shared/testing/CountingEventBus.java
+++ b/user/src/com/google/gwt/event/shared/testing/CountingEventBus.java
@@ -51,10 +51,20 @@
   }
 
   @Override
+  public void fireEvent(GwtEvent<?> event) {
+    castFireEvent(event);
+  }
+
+  @Override
   public void fireEventFromSource(Event<?> event, Object source) {
     real.fireEventFromSource(event, source);
   }
 
+  @Override
+  public void fireEventFromSource(GwtEvent<?> event, Object source) {
+    castFireEventFromSource(event, source);
+  }
+
   public int getCount(GwtEvent.Type<?> type) {
     return real.getCount(type);
   }