tdp-event-manager-polymer
v2.0.3
Published
A simple event manager web component (for polymer) which is designed to facilitate multiple web components to communicate via events
Downloads
2
Readme
#tdp-event-manager-polymer
##Version Master: V2.0.3
##Semver This project aims to maintain the semver version numbering scheme.
##Changelog See changelog file
##Overview
A very simple javascript event manager/emitter library, wrapped as a polymer web component. tdp-event-manager-polymer
is intended to be used to provide public/consumable event hooks to facilitate inter-web component communucation.
tdp-event-manager-polymer
runs as a "global" in that there is one running instance of the event manager and each tdp-event-manager-polymer
HTML element simply exposes an API interface to that global instance. This means that you can insert as many tdp-event-manager-polymer
HTML elements as you wish and each can access (register, remove, trigger, list) the all of the events.
##Features
- Zero javascript dependencies (does not require e.g.
jquery
) - Packaged as a
bower
component and anNPM
package for ease of use - Automatically and pretty thoroughly tested (though not (yet) multi-browser - via phantom-mocha)
##Requirements
- Production requirements
- None!
- Development/test requirements
##Installation
You can install either via npm
:
npm install tdp-event-manager-polymer --save
(note: with npm
, you'll need to manually/independently install polymer)
or via bower
:
bower install tdp-event-manager-polymer --save
(note that in both cases --save
will add tdp-event-manager-polymer
to your npm
package.json
or bower
bower.json
config file).
##Usage
tdp-event-manager-polymer
provides a polymer/web components custom element called tdp-event-manager
which you can include in the normal polymer fashion:
###In your my-custom-elememt
polymer web component HTML file
<!-- Import Polymer -->
<link rel="import" href="/bower_components/polymer/polymer.html">
<!-- Import tdp-event-manager -->
<link rel="import" href="/bower_components/tdp-event-manager-polymer/elements/tdp-event-manager-polymer/tdp-event-manager-polymer.html">
<polymer-element name="my-custom-element">
<template>
<!-- Instantiate a tdp-event-manager element in this template -->
<!-- Note 1: The tdp-event-manager instance is referred to via this.$.eventManage -->
<tdp-event-manager id="eventManager"></tdp-event-manager>
<!-- ...more template content...-->
</template>
<script>
Polymer(
{
ready:function()
{
// Register a new event called "someEvent"
this.$.eventManager.api.registerEvent("someEvent", function(success)
{
// List the events which have been registered - this should be a single item, "someEvent", which we added above
this.$.eventManager.api.listEvents(function(eventList)
{
console.log("Event list:");
console.dir(eventList);
}.bind(this));
}.bind(this));
}
});
</script>
</polymer-element>
##Public API functions
###registerEvent
(eventName
, callback
)
####Overview
Registers a new event
with the instance.
####Arguments
#####eventName
(String
, mandatory)
A name by which the event is refered (e.g. when it is triggered, removed or when a new eventCallback is registered to it).
#####callback
(Function
, mandatory)
A callback function which will be executed once the event has been registered or when a failure in registration of the event occurs.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####returnValue (Boolean
|| null
)
true
: event was registered successfully.
false
: event was not registered because an event with the same name is already registered.
null
: an error occurred registering the event (usually because arguments are incorrectly specified), the event was not registered.
###registerEventCallback(eventName, eventCallbackName, eventCallbackFunction, callback)
####Overview
Registers a callback (a function which is executed upon the relevant event being triggered) on an existing event
.
####Arguments #####eventName (String, mandatory) A name by which the event is refered (e.g. when it is triggered, removed or when a new eventCallback is registered to it).
#####eventCallbackName (String, mandatory) A name by which the eventCallback is refered (e.g. when it is triggered or removed).
#####eventCallbackFunction (Function, mandatory)
A callback function which will be executed when the event is triggered. eventCallbackFunctions can optionally receive arguments which are passed to the triggerEvent
function.
#####callback (Function, mandatory)
A callback function which will be executed once the eventCallback
has been registered or when a failure in registration of the eventCallback
occurs.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####returnValue (Boolean || null)
true
: eventCallback
was registered successfully.
false
: an error occurred registering the eventCallback
because the specified eventName
does not exist.
null
: an error occurred registering the eventCallback
(usually because arguments are incorrectly specified), the eventCallback
was not registered.
###triggerEvent(eventName, callbackArguments, callback)
####Overview
Triggers the specified eventName
which executes all registered eventCallback
s registered to/on that eventName
.
####Arguments
#####eventName (String, mandatory)
The eventName
whose eventCallback
s will be executed.
#####callbackArguments (Mixed, mandatory)
An argument String, Array, Object, Boolean etc. to pass to each registered eventCallback
which is executed. If not required, this should be set to null
.
#####callback (Function, mandatory)
A callback function which will be executed once the event has been triggered or when a failure in triggering the event occurs.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####returnValue (Boolean || null)
true
: event was triggered successfully.
false
: an error occurred in attempting to trigger the event because eventName
is not a registered event.
null
: an error occurred in attempting to trigger the specified eventName
(usually because arguments are incorrectly specified), the event was not triggered.
###removeEvent(eventName, callback)
####Overview
Remove a previously registered event, eventName
and all registered eventCallback
s for that event.
####Arguments
#####eventName (String, mandatory)
The eventName
which we want to remove.
#####callback (Function, mandatory)
A callback function which will be executed once the event has been removed or when a failure in triggering the event occurs.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####returnValue (Boolean || null)
true
: eventCallback
was removed successfully.
false
: an error occurred in attempting to remove the eventCallback
because eventName
is not a registered event.
null
: an error occurred in attempting to remove the specified eventCallback
(usually because arguments are incorrectly specified), the eventCallback
was not removed.
###removeEventCallback(eventName, eventCallbackName, callback)
####Overview
Remove a previously registered eventCallback
from the specified eventName
.
####Arguments
#####eventName (String, mandatory)
The eventName
whose eventCallback
we want to remove.
#####eventCallbackName (String, mandatory)
The eventCallback
which is to be removed from eventName
.
#####callback (Function, mandatory)
A callback function which will be executed once the eventCallback
has been removed or when a failure in removing the eventCallback
occurs.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####returnValue (Boolean || null)
true
: eventCallback
was removed successfully.
false
: an error occurred in attempting to remove the eventCallback
because eventName
is not a registered event or eventCallback
is not registered.
null
: an error occurred in attempting to remove the specified eventCallback
(usually because arguments are incorrectly specified), the eventCallback
was not removed.
###listEvents(callback) ####Overview Lists all registered events.
####Arguments
#####callback (Function, mandatory)
A callback function which will be executed once the list of events has been retrieved.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####eventList (Array)
An array of registered eventName
s, or an empty array if no events have yet been registered.
###eventIsRegistered(eventName, callback)
####Overview
Check if the specified eventName
has previously been registered.
####Arguments
#####eventName (String, mandatory)
The eventName
to check for.
#####callback (Function, mandatory)
A callback function which will be executed once the list of events has been checked.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####eventIsRegistered (Boolean || null)
true
: eventName
has previously been registered.
false
: eventName
has not previously been registered.
null
: arguments incorrectly specified (e.g. wrong format)
###listEventCallbacks(eventName, callback)
####Overview
Lists all registered callbacks for the specified eventName
.
####Arguments
#####eventName (String, mandatory)
The eventName
whose eventCallback
s in which to check.
#####callback (Function, mandatory)
A callback function which will be executed once the list of events has been retrieved.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####eventCallbackList (Array)
An array of registered eventCallback
s, or an empty array if no eventCallback
s have yet been registered for the specified eventName
.
###eventCallbackIsRegistered(eventName, eventCallbackName, callback)
####Overview
Check if the specified eventName
has previously been registered.
####Arguments
#####eventName (String, mandatory)
The eventName
to check for.
#####eventCallbackName (String, mandatory)
The eventCallback
to check for.
#####callback (Function, mandatory)
A callback function which will be executed once the list of events has been checked.
A hard error will be thrown if callback
is missing or is not of type function
.
####Returns
#####eventIsRegistered (Boolean || null)
true
: eventCallbackName
has previously been registered on eventName
.
false
: eventCallbackName
has not previously been registered on eventName
.
null
: arguments incorrectly specified (e.g. wrong format)