com.vaadin.flow.component.
Class ComponentEventBus
All Implemented Interfaces:
An event bus for Component
s.
Handles adding and removing event listeners, and firing events of type
ComponentEvent
.
Events can either be fired manually through
fireEvent(ComponentEvent)
or automatically based on a DOM event (see
DomEvent
). Automatically fired events must have a suitable
constructor, as defined in DomEvent
.
Since:
1.0
Author:
Vaadin Ltd
See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionComponentEventBus
(Component component) Creates an event bus for the given component.
-
Method Summary
Modifier and TypeMethodDescription<T extends ComponentEvent<?>>
RegistrationaddListener
(Class<T> eventType, ComponentEventListener<T> listener) Adds a listener for the given event type.
<T extends ComponentEvent<?>>
RegistrationaddListener
(Class<T> eventType, ComponentEventListener<T> listener, Consumer<DomListenerRegistration> domListenerConsumer) Adds a listener for the given event type, and customizes the corresponding DOM event listener with the given consumer.
void
fireEvent
(ComponentEvent event) Dispatches the event to all listeners registered for the event type.
Collection<?>
getListeners
(Class<? extends ComponentEvent> eventType) Returns all listeners that match or extend the given event type.
boolean
hasListener
(Class<? extends ComponentEvent> eventType) Checks if there is at least one listener registered for the given event type.
-
Constructor Details
-
ComponentEventBus
Creates an event bus for the given component.
Parameters:
component
- the component which will be used as a source for all fired events
-
-
Method Details
-
addListener
public <T extends ComponentEvent<?>> Registration addListener(Class<T> eventType, ComponentEventListener<T> listener) Adds a listener for the given event type.
Type Parameters:
T
- the event typeParameters:
eventType
- the event type for which to call the listenerlistener
- the listener to call when the event occursReturns:
an object which can be used to remove the event listener
-
addListener
public <T extends ComponentEvent<?>> Registration addListener(Class<T> eventType, ComponentEventListener<T> listener, Consumer<DomListenerRegistration> domListenerConsumer) Adds a listener for the given event type, and customizes the corresponding DOM event listener with the given consumer. This allows overriding eg. the debounce settings defined in the
DomEvent
annotation.Note that customizing the DOM event listener works only for event types which are annotated with
DomEvent
. UseaddListener(Class, ComponentEventListener)
for other listeners, or if you don't need to customize the DOM listener.Type Parameters:
T
- the event typeParameters:
eventType
- the event type for which to call the listener, must be annotated withDomEvent
listener
- the listener to call when the event occursdomListenerConsumer
- a consumer to customize the behavior of the DOM event listener, notnull
Returns:
an object which can be used to remove the event listener
Throws:
IllegalArgumentException
- if the event type is not annotated withDomEvent
-
hasListener
Checks if there is at least one listener registered for the given event type.
Parameters:
eventType
- the component event typeReturns:
true
if at least one listener is registered,false
otherwise -
getListeners
Returns all listeners that match or extend the given event type.
Parameters:
eventType
- the component event typeReturns:
A collection with all registered listeners for a given event type. Empty if no listeners are found.
-
fireEvent
Dispatches the event to all listeners registered for the event type.
Parameters:
event
- the event to fire
-