package com.pixelmaid.dresscode.events; import java.util.ArrayList; import java.util.EventObject; import java.util.Iterator; import java.util.List; import com.pixelmaid.dresscode.drawing.primitive2d.Drawable; public class EventSource { protected List _listeners = new ArrayList<CustomEventListener>(); public synchronized void addEventListener(CustomEventListener listener) { _listeners.add(listener); } public synchronized CustomEventListener getListenerAt(int index) { return (CustomEventListener) _listeners.get(index); } public synchronized void removeEventListener(CustomEventListener listener) { _listeners.remove(listener); } // call this method whenever you want to notify //the event listeners of the particular event public synchronized void fireEvent( Object source, int eventType) { Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomInstructionEvent(source, eventType); } } public void fireDrawableEvent(Object source, int event, Drawable d) { Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomDrawableEvent(source, event, d); } } public void fireDrawableEvent(Object source, int event, Drawable d1,Drawable d2) { Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomDrawableEvent(source, event, d1,d2); } } public void fireRuntimeErrorEvent(Object source, int event, String message) { Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomRuntimeErrorEventDrawableEvent(source, event, message); } } public void firePrintEvent(Object source, int event, String value) { Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomPrintEvent(source, event, value); } } public void fireUIModifedEvent(Object source, int event){ Iterator i = _listeners.iterator(); while(i.hasNext()) { ((CustomEventListener) i.next()).handleCustomUIEvent(source, event); } } }