com.webrenderer.se.event.internal
Class EventListenerManager

java.lang.Object
  extended by com.webrenderer.se.event.internal.EventListenerManager
Direct Known Subclasses:
BrowserManager, DomManager, DOMManager2, JavascriptManager, KeyManager, MouseManager, NetworkManager, PromptManager, ScrollManager, WindowManager

public abstract class EventListenerManager
extends java.lang.Object

The EventListenerManager is a generic listener manager and event propogation system. EventListener's can register with this, and receive events pertaining to this listener.

This abstract class can not be instantiated. Classes can extend this, and with no modifications, have a working EventListener system. In 99.999% of cases, it is not necessary to override the propogation method. Instead, Functors should be written.

The Functor interface is used to call the correct method for each event in a listener. Most listener interfaces have several callback methods, and the propogation algorithm does not have any information about this. The functor is used to invoke the correct callback method, while allowing the generic propogation algorithm to reside in this base class.


Nested Class Summary
static interface EventListenerManager.Functor
          The Functor interface is used to call the correct method for each event in a listener.
 
Field Summary
protected  java.util.Vector listeners
          A list of all registered event listeners
 
Constructor Summary
EventListenerManager()
           
 
Method Summary
 void addListener(java.util.EventListener l)
          Add an event listener.
 boolean noListeners()
           
 void propogate(EventListenerManager.Functor f, java.util.EventObject e)
          Propogates a given event object to all of the registered event listeners.
 void removeListener(java.util.EventListener l)
          Remove a event listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listeners

protected java.util.Vector listeners
A list of all registered event listeners

Constructor Detail

EventListenerManager

public EventListenerManager()
Method Detail

addListener

public void addListener(java.util.EventListener l)
Add an event listener.

Parameters:
l - A listener.

removeListener

public void removeListener(java.util.EventListener l)
Remove a event listener.

Parameters:
l - A listener.

noListeners

public boolean noListeners()

propogate

public void propogate(EventListenerManager.Functor f,
                      java.util.EventObject e)
Propogates a given event object to all of the registered event listeners. The functor must be given that invokes the correct method. The functor will call the correct function, while allowing the generic propogation algorithm to reside in this base class.

Parameters:
f - Functor that invokes each event listeners methods.
e - The event object being propogated.