|
SMACS | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.swing.event.EventListenerList
smacs.util.CreateListenerList
Lightweight List of CreateListener objects.
This class is very very similar to EventListenerList list
but it does add its listener objects to the end instead of the head. That
makes it so all listeners are called in the order added.
Here is the documentation as can be seen in EventListenerList:
A class that holds a list of CreateListeners. A single instance can be used to hold all listeners (of all types) for the instance using the list. It is the responsiblity of the class using the CreateListenerList to provide type-safe API (preferably conforming to the JavaBeans spec) and methods which dispatch event notification methods to appropriate Create Listeners on the list. The main benefits that this class provides are that it is relatively cheap in the case of no listeners, and it provides serialization for event-listener lists in a single place, as well as a degree of MT safety (when used correctly). Usage example: Say one is defining a class that sends out FooCreate, and one wants to allow users of the class to register FooListeners and receive notification when FooCreate occurs. The following should be added to the class definition:
EventListenerList listenerList = new EventListenerList();
FooEvent fooEvent = null;
public void addFooListener(FooListener l) {
listenerList.add(FooListener.class, l);
}
public void removeFooListener(FooListener l) {
listenerList.remove(FooListener.class, l);
}
// Notify all listeners that have registered interest for
// notification on this event type. The event instance
// is lazily created using the parameters passed into
// the fire method.
protected void fireFooXXX() {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners first to last, notifying
// those that are interested in this create chain.
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==FooListener.class) {
// Lazily create the event:
if (fooEvent == null)
fooEvent = new FooEvent(this);
((FooListener)listeners[i+1]).fooXXX(fooEvent);
}
}
}
foo should be changed to the appropriate name, and fireFooXxx to the
appropriate method name. One fire method should exist for each notification
method in the FooListener interface.
Warning: this class is dependent on the EventListenerList from Swing of JDK 1.4
EventListenerList,
Serialized Form| Field Summary |
| Fields inherited from class javax.swing.event.EventListenerList |
listenerList |
| Constructor Summary | |
CreateListenerList()
|
|
| Method Summary | |
void |
add(Class t,
CreateListener l)
add to tail of list. |
void |
add(Class t,
EventListener l)
add to head of list. |
| Methods inherited from class javax.swing.event.EventListenerList |
getListenerCount, getListenerCount, getListenerList, getListeners, remove, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public CreateListenerList()
| Method Detail |
public void add(Class t,
EventListener l)
t - - the type of the listener to be addedl - - the listener to be added
public void add(Class t,
CreateListener l)
t - - the type of the listener to be addedl - - the listener to be added
|
SMACS | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||