Class EventBus
- java.lang.Object
-
- com.google.web.bindery.event.shared.EventBus
-
- Direct Known Subclasses:
CountingEventBus
,EventBus
,RecordingEventBus
,ResettableEventBus
,SimpleEventBus
public abstract class EventBus extends java.lang.Object
DispatchesEvent
s to interested parties. Eases decoupling by allowing objects to interact without having direct dependencies upon one another, and without requiring event sources to deal with maintaining handler lists. There will typically be one EventBus per application, broadcasting events that may be of general interest.- See Also:
SimpleEventBus
,ResettableEventBus
,CountingEventBus
-
-
Constructor Summary
Constructors Constructor Description EventBus()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract <H> HandlerRegistration
addHandler(Event.Type<H> type, H handler)
Adds an unfiltered handler to receive events of this type from all sources.abstract <H> HandlerRegistration
addHandlerToSource(Event.Type<H> type, java.lang.Object source, H handler)
Adds a handler to receive events of this type from the given source.protected static <H> void
dispatchEvent(Event<H> event, H handler)
Invokesevent.dispatch
withhandler
.abstract void
fireEvent(Event<?> event)
Fires the event from no source.abstract void
fireEventFromSource(Event<?> event, java.lang.Object source)
Fires the given event to the handlers listening to the event's type.protected static void
setSourceOfEvent(Event<?> event, java.lang.Object source)
Setssource
as the source ofevent
.
-
-
-
Method Detail
-
dispatchEvent
protected static <H> void dispatchEvent(Event<H> event, H handler)
Invokesevent.dispatch
withhandler
.Protected to allow EventBus implementations in different packages to dispatch events even though the
event.dispatch
method is protected.
-
setSourceOfEvent
protected static void setSourceOfEvent(Event<?> event, java.lang.Object source)
Setssource
as the source ofevent
.Protected to allow EventBus implementations in different packages to set an event source even though the
event.setSource
method is protected.
-
addHandler
public abstract <H> HandlerRegistration addHandler(Event.Type<H> type, H handler)
Adds an unfiltered handler to receive events of this type from all sources.It is rare to call this method directly. More typically an
Event
subclass will provide a staticregister
method, or a widget will accept handlers directly.- Type Parameters:
H
- The type of handler- Parameters:
type
- the event type associated with this handlerhandler
- the handler- Returns:
- the handler registration, can be stored in order to remove the handler later
-
addHandlerToSource
public abstract <H> HandlerRegistration addHandlerToSource(Event.Type<H> type, java.lang.Object source, H handler)
Adds a handler to receive events of this type from the given source.It is rare to call this method directly. More typically a
Event
subclass will provide a staticregister
method, or a widget will accept handlers directly.- Type Parameters:
H
- The type of handler- Parameters:
type
- the event type associated with this handlersource
- the source associated with this handlerhandler
- the handler- Returns:
- the handler registration, can be stored in order to remove the handler later
-
fireEvent
public abstract void fireEvent(Event<?> event)
Fires the event from no source. Only unfiltered handlers will receive it.Any exceptions thrown by handlers will be bundled into a
UmbrellaException
and then re-thrown after all handlers have completed. An exception thrown by a handler will not prevent other handlers from executing.- Parameters:
event
- the event to fire- Throws:
UmbrellaException
- wrapping exceptions thrown by handlers
-
fireEventFromSource
public abstract void fireEventFromSource(Event<?> event, java.lang.Object source)
Fires the given event to the handlers listening to the event's type.Any exceptions thrown by handlers will be bundled into a
UmbrellaException
and then re-thrown after all handlers have completed. An exception thrown by a handler will not prevent other handlers from executing.- Parameters:
event
- the event to fire- Throws:
UmbrellaException
- wrapping exceptions thrown by handlers
-
-