/* 
	newDeviceSupport.java

	Author:			daassi
	Description:	Event set support class for newDeviceListener.
					Manages listener registration and contains fire functions.
*/

package newDeviceListener;

import java.awt.event.*;
import java.util.Vector;

public class newDeviceSupport implements java.io.Serializable
{
	Vector newDeviceListeners = new Vector();

	public synchronized void addnewDeviceListener(newDeviceListener l)
	{
		// add a listener if it is not already registered
		if (!newDeviceListeners.contains(l))
		{
			newDeviceListeners.addElement(l);
		}
	}

	public synchronized void removenewDeviceListener(newDeviceListener l)
	{
		// remove it if it is registered
		if (newDeviceListeners.contains(l))
		{
			newDeviceListeners.removeElement(l);
		}
	}
    
    public void fireDeviceConnected(ItemEvent event)
	{
		// Make a copy of the listener object vector so that
		// it cannot be changed while we are firing events.
		Vector v;
		synchronized(this)
		{
			v = (Vector) newDeviceListeners.clone();
		}
		
		// Fire the event to all listeners.
		int count = v.size();
		for (int i = 0; i < count; i++)
		{
			newDeviceListener listener = (newDeviceListener) v.elementAt(i);
			listener.deviceConnected(event);
		}
	}
	
    public void fireDeviceRemoved(ItemEvent event)
	{
		// Make a copy of the listener object vector so that
		// it cannot be changed while we are firing events.
		Vector v;
		synchronized(this)
		{
			v = (Vector) newDeviceListeners.clone();
		}
		
		// Fire the event to all listeners.
		int count = v.size();
		for (int i = 0; i < count; i++)
		{
			newDeviceListener listener = (newDeviceListener) v.elementAt(i);
			listener.deviceRemoved(event);
		}
	}
    
}

/* newDeviceSupport.java */
