package org.chartsy.main.chart;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import org.chartsy.main.utils.SerialVersion;
/**
*
* @author Viorel
*/
public abstract class AbstractPropertyListener
implements Serializable
{
private static final long serialVersionUID = SerialVersion.APPVERSION;
private final List<PropertyChangeListener> listeners = Collections.synchronizedList(new LinkedList<PropertyChangeListener>());
public void addPropertyChangeListener(PropertyChangeListener pcl)
{
listeners.add(pcl);
}
public void removePropertyChangeListener(PropertyChangeListener pcl)
{
listeners.remove(pcl);
}
public void clearPropertyChangeListenerList()
{
listeners.clear();
}
protected void fire(String propertyName, Object old, Object nue)
{
if (!old.equals(nue))
for (PropertyChangeListener listener : listeners)
listener.propertyChange(new PropertyChangeEvent(this, propertyName, old, nue));
}
}