IndexBensEventMulticaster.java
/*
* "COM.bensoft.base" Copyright (C) by Michael Benson - 7/27/97
*
* "BensEventMulticaster" keeps track of listeners (like JDK 1.1).
* Multiple listeners can be registered to one event.
*/
package COM.bensoft.base;
import java.awt.*;
import java.util.*;
import java.io.*;
/**
* BensEventMulticaster keeps track of listeners like JDK 1.1, but works
* with JDK 1.0.2. Multiple listeners can be registered to one event.
*
* @author Michael Benson
*/
public class BensEventMulticaster
{
private Vector _listeners;
private boolean _hasListeners; // true if there are any listeners.
/**
* EventMulticaster constructor. Initialize to empty.
*/
public BensEventMulticaster()
{
_listeners = new Vector();
_hasListeners = false;
}
/**
* Allow user to iterate through the list of listeners.
*
* @return a clone of the list of listeners (as a Vector).
*/
public synchronized Enumeration elements()
{
return ((Vector)(_listeners.clone())).elements();
}
/**
* Add a listener.
*
* @param el the listener to be added.
*/
public synchronized void addListener(BensEventListener el)
{
_listeners.addElement(el);
_hasListeners = true;
}
/**
* Remove a listener.
*
* @param el the listener to be removed.
*/
public synchronized void removeListener(BensEventListener el)
{
_listeners.removeElement(el);
_hasListeners = (_listeners.size() > 0);
}
/**
* Returns whether or not there are any listeners present.
*
* @return true if there are listeners, false if not.
*/
public synchronized boolean hasListeners()
{
return _hasListeners;
}
}