package me.chenyi.mm.model;
import javax.swing.event.EventListenerList;
/**
* Class description goes here
*
* @author $Author:$
* @version $Revision:$
*/
public class ModelEventProxy
{
private static ModelEventProxy instance = null;
protected EventListenerList listenerList = new EventListenerList();
public static ModelEventProxy getInstance()
{
if(instance == null)
{
instance = new ModelEventProxy();
}
return instance;
}
private ModelEventProxy()
{
}
public void addModelEventListener(ModelEventListener l)
{
listenerList.add(ModelEventListener.class, l);
}
public void removeModelEventListener(ModelEventListener l)
{
listenerList.add(ModelEventListener.class, l);
}
public void fireModelObjectAdded(ModelObject obj)
{
Object[] listeners = listenerList.getListenerList();
for(int i = listeners.length - 2; i >= 0; i -= 2)
{
if(listeners[i] == ModelEventListener.class)
{
((ModelEventListener)listeners[i + 1]).objectAdded(obj);
}
}
}
public void fireModelObjectRemoved(ModelObject obj)
{
Object[] listeners = listenerList.getListenerList();
for(int i = listeners.length - 2; i >= 0; i -= 2)
{
if(listeners[i] == ModelEventListener.class)
{
((ModelEventListener)listeners[i + 1]).objectRemoved(obj);
}
}
}
public void fireModelObjectUpdated(ModelObject obj)
{
Object[] listeners = listenerList.getListenerList();
for(int i = listeners.length - 2; i >= 0; i -= 2)
{
if(listeners[i] == ModelEventListener.class)
{
((ModelEventListener)listeners[i + 1]).objectUpdated(obj);
}
}
}
}