EventSource
pentaho.lang.EventSource
The EventSource
class is an implementation IEventSource
that can be used as mixin class for classes that emit events.
The class publicly exposes the IEventSource
interface, allowing the registration and unregistration of event listeners/observers. The ability to emit events is, however, only exposed via the protected interface, through the methods: _emit
, _emitSafe
and _emitGeneric
. The methods _emit
and _emitSafe
can only be used with events of the Event
type, while the _emitGeneric
method can be used with any event type and exposes more control options.
To ascertain whether any listeners are registered for a certain event type and phase, use: _hasListeners
. To ascertain whether any listeners are registered for any of the phases of a certain event type, use: _hasObservers
.
AMD Module
require(["pentaho/lang/EventSource"], function(EventSource) { /* code goes here */ });
Implements
Constructor
Name | Description |
---|---|
new EventSource() | This class was not designed to be constructed directly. It was designed to be used as a mixin. |
Methods
Name | Description |
---|---|
_emit(event) : pentaho.lang.Event Protected | Emits an unstructured event and returns it, unless it was canceled. |
_emitGeneric(event, type, phase, keyArgs) : object Protected | Emits an event given an arbitrary payload object, its type and phase. Returns the event payload object, unless the event is canceled. |
_emitSafe(event) : pentaho.lang.Event Protected | Variation of the |
_hasListeners(type, phase) : boolean Protected | Determines if there are any registrations for a given event type and phase. |
_hasObservers(type) : boolean Protected | Determines if there are any registrations for a given event type, for at least one of its phases. |
off(typeOrHandle, observer) | Removes one registration given its handle, or all registrations of a given event type (or types) and observer (or listener function). |
on(type, observer, keyArgs) : pentaho.lang.IEventRegistrationHandle | Registers an observer (or listener function) for an event(s) of a given type(s). |
Constructor Details
new EventSource() |
---|
This class was not designed to be constructed directly. It was designed to be used as a mixin. |
Methods Details
_emit(event) : pentaho.lang.Event Protected | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Emits an unstructured event and returns it, unless it was canceled. When this method is called, the listeners of existing registrations are notified synchronously, by priority order and then registration order, until either the event is canceled or all of the listeners have been notified. It is safe to register or unregister to/from an event type while it is being emitted. However, changes are only taken into account in subsequent emissions. If a listener function throws an error, the event processing is interrupted. No more registrations are processed and the error is passed to the caller. Source: javascript/web/pentaho/lang/EventSource.js, line 261
See also: pentaho.lang.EventSource#_emitSafe , pentaho.lang.EventSource#_emitGeneric |
_emitGeneric(event, type, phase, keyArgs) : object Protected | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Emits an event given an arbitrary payload object, its type and phase. Returns the event payload object, unless the event is canceled. Source: javascript/web/pentaho/lang/EventSource.js, line 313
|
_emitSafe(event) : pentaho.lang.Event Protected | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Variation of the If an event listener throws an error, the following event listeners are still processed. Source: javascript/web/pentaho/lang/EventSource.js, line 283
See also: pentaho.lang.EventSource#_emit , pentaho.lang.EventSource#_emitGeneric |
_hasListeners(type, phase) : boolean Protected | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Determines if there are any registrations for a given event type and phase. This method can be used to avoid creating expensive event objects for event type and phase pairs that don't have registrations. Source: javascript/web/pentaho/lang/EventSource.js, line 189
Example if(this._hasListeners("select", "will")) { var event = new Event("select", this); if(this._emit(event)) { // Select Will phase } } |
_hasObservers(type) : boolean Protected | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Determines if there are any registrations for a given event type, for at least one of its phases. This method can be used to avoid creating expensive event objects for event types that currently have no registrations. Source: javascript/web/pentaho/lang/EventSource.js, line 232
Example if(this._hasObservers("select")) { var event = new Event("select"); if(this._emitGeneric(event, "select", "will")) { // Select Will this._emitGeneric(event, "select", "did"); } } |
off(typeOrHandle, observer) | ||
---|---|---|
Removes one registration given its handle, or all registrations of a given event type (or types) and observer (or listener function). To remove an event registration, it is sufficient to call the It is safe to unregister from an event type while it is being emitted. However, any registrations removed during the current emission will still execute. Specifying an event registration handle that has already been disposed of has no effect. Specifying an event type and observer (or listener function) that have no registrations has no effect. |
Name | Default Value | Summary |
---|---|---|
typeOrHandle : nonEmptyString | Array.< | pentaho.lang.IEventRegistrationHandle | The type or types of events, or an event registration handle to dispose of. When a string, it can be a comma-separated list of event types. | |
observer : pentaho.lang.IEventObserver | pentaho.lang.EventListener | pentaho.lang.EventListenerAsync | The event observer (or listener function). Required when |
See also: pentaho.lang.IEventSource#on
on(type, observer, keyArgs) : pentaho.lang.IEventRegistrationHandle | ||||||||
---|---|---|---|---|---|---|---|---|
Registers an observer (or listener function) for an event(s) of a given type(s). Optionally, a listening priority may be specified to adjust the order by which an observer is notified, relative to other listeners. Note that if an observer is registered more than once to the same event type, a new registration is created each time and its listeners will be called once per registration. It is safe to register for an event type while it is being emitted. However, new registrations are only taken into account in subsequent emissions. When This method is compatible with the dojo/on API. |
Name | Default Value | Summary | ||||||
---|---|---|---|---|---|---|---|---|
type : nonEmptyString | Array.< | The type or types of events. When a string, it can be a comma-separated list of event types. | |||||||
observer : pentaho.lang.IEventObserver | pentaho.lang.EventListener | pentaho.lang.EventListenerAsync | The event observer (or listener function). | |||||||
keyArgs : object Optional | Keyword arguments.
|
Name | Description |
---|---|
pentaho.lang.IEventRegistrationHandle | An event registration handle that can be used for later removal. |
See also: pentaho.lang.IEventSource#off