com.partnersoft.gadgets
Class EventMulticaster<L extends java.util.EventListener,E extends java.util.EventObject>

java.lang.Object
  extended by com.partnersoft.gadgets.EventMulticaster<L,E>

public abstract class EventMulticaster<L extends java.util.EventListener,E extends java.util.EventObject>
extends java.lang.Object

A utility for managing Event multicasting. Use it as an inline class like so:

 specificEventMulticaster = new EventMulticaster() { 
                protected void dispatchEvent(SpecificListenerType listener, SpecificEventType event) {
                        listener.takeSpecificEvent(event);
                } 
 };
 
Then use it like so:
 specificEventMulticaster.dispatchEvent(new SpecificEvent());
 
Use the generics parameters to make it relatively type-safe.

A listener can only be registered once; adding one twice is the same as adding it once.

Copyright 1997-2009 Partner Software, Inc.

Version:
1.0 3/5/97
Author:
Paul Reavis

Constructor Summary
EventMulticaster()
           
 
Method Summary
 void addListener(L listener)
          Adds a listener.
 void addListenerImp(L listener)
           
 void dispatchEvent(E evt)
          Dispatches event to all listeners.
protected abstract  void dispatchEvent(L listener, E evt)
          Dispatches event to a single listener.
 void removeAllListeners()
           
 void removeListener(L listener)
          Removes a listener.
 void removeListenerImp(L listener)
          Removes a listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EventMulticaster

public EventMulticaster()
Method Detail

addListener

public void addListener(L listener)
Adds a listener.


removeListener

public void removeListener(L listener)
Removes a listener.


dispatchEvent

public void dispatchEvent(E evt)
Dispatches event to all listeners.


dispatchEvent

protected abstract void dispatchEvent(L listener,
                                      E evt)
Dispatches event to a single listener. Subclasses must override this.


addListenerImp

public void addListenerImp(L listener)

removeListenerImp

public void removeListenerImp(L listener)
Removes a listener.


removeAllListeners

public void removeAllListeners()