/*
* @(#)AbstractDrawingPart.java
*
* Copyright 2002 EGANTT LLP. All rights reserved.
* PROPRIETARY/QPL. Use is subject to license terms.
*/
package com.egantt.model.drawing.part;
import com.egantt.model.drawing.DrawingPart;
import com.egantt.model.drawing.part.event.DrawingPartEvent;
import com.egantt.model.drawing.part.event.DrawingPartListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Intent: to simply the model design
*/
public abstract class AbstractDrawingPart implements DrawingPart
{
protected List <DrawingPartListener>drawingPartListeners = new ArrayList<DrawingPartListener>(2);
// __________________________________________________________________________
public synchronized void addDrawingPartListener(DrawingPartListener drawingPartListener)
{
drawingPartListeners.add(drawingPartListener);
}
public synchronized void removeDrawingPartListener(DrawingPartListener drawingPartListener)
{
drawingPartListeners.remove(drawingPartListener);
}
// __________________________________________________________________________
protected synchronized void fireStateChanged(DrawingPartEvent event)
{
for (Iterator iter = drawingPartListeners.iterator(); iter.hasNext();)
((DrawingPartListener) iter.next()).stateChanged(event);
}
}