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);
}