package copyto.core.models; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import org.eclipse.core.runtime.PlatformObject; public abstract class AbstractModel extends PlatformObject { protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); /** * @param listener */ public void addPropertyChangeListener(final PropertyChangeListener listener) { pcs.addPropertyChangeListener(listener); } /** * @param propertyName * @param listener */ public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) { pcs.addPropertyChangeListener(propertyName, listener); } /** * @param listener */ public void removePropertyChangeListener( final PropertyChangeListener listener) { pcs.removePropertyChangeListener(listener); } /** * @param propertyName * @param listener */ public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) { pcs.removePropertyChangeListener(propertyName, listener); } protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) { pcs.firePropertyChange(propertyName, oldValue, newValue); } }