public class IlvEventListenerList<L extends EventListener> extends IlvAbstractEventListenerCollection<L>
IlvEventListenerList
implements a thread-safe collection of
event listeners backed by a list. Some of the pros and cons of using an
IlvEventListenerList
to manage the event dispatch system
for a class are:
IlvEventListenerList
provides excellent and nearly constant
performance for dispatching events to registered listeners.IlvEventListenerList
provides excellent performance for adding event listeners, but increasingly poor
performance for removing them as the number of registered listeners grows.
This is because of the linear search required to find the specified listener.
Here is an example that shows how a class can use an
IlvEventListenerList
for registering event
listeners and dispatching events to them:
public class MyClass { IlvEventListenerCollection<XYZListener> xyzListeners = new IlvEventListenerList<XYZListener>(); public void addXYZListener(XYZListener aListener) { xyzListeners.addListener(aListener); } public void removeXYZListener(XYZListener aListener) { xyzListeners.removeListener(aListener); } public void notifyXYZListeners () { XYZEvent event = new XYZEvent(this); for (Iterator<XYZListener> i = xyzListeners.getListeners(); i.hasNext(); ) { XYZListener xyzListener = i.next(); xyzListener.xyzHappened(event); } } }
Constructor and Description |
---|
IlvEventListenerList()
Creates a new
IlvEventListenerList . |
Modifier and Type | Method and Description |
---|---|
protected Collection<L> |
cloneListeners()
Returns a copy of the collection of event listeners.
|
protected void |
initListeners()
Initializes the collection of event listeners.
|
addListener, contains, getListeners, removeListener, save, size
public IlvEventListenerList()
IlvEventListenerList
.protected void initListeners()
initListeners
in class IlvAbstractEventListenerCollection<L extends EventListener>
protected Collection<L> cloneListeners()
cloneListeners
in class IlvAbstractEventListenerCollection<L extends EventListener>
© Copyright Rogue Wave Software, Inc. 1997, 2018. All Rights Reserved.