import java.util.ArrayList;

/**
 * @author Remi Forax
 *
 */
public abstract class AbstractCoordinateModel implements CoordinateModel {

  public void addCoordinateListener(CoordinateListener l) {
    listeners.add(l);
  }

  public void removeCoordinateListener(CoordinateListener l) {
    listeners.remove(l);
  }
  
  protected void firePointChanged(int index,int oldX,int oldY) {
    CoordinateEvent event=new CoordinateEvent(this,index,oldX,oldY);
    for(int i=listeners.size();--i>=0;)
      ((CoordinateListener)listeners.get(i)).pointChanged(event);
  }
  
  protected void fireAllPointsChanged() {
    CoordinateEvent event=new CoordinateEvent(this);
    for(int i=listeners.size();--i>=0;)
      ((CoordinateListener)listeners.get(i)).allPointsChanged(event);
  }

  private ArrayList listeners=new ArrayList();
}
