/* TaskEventProxy.java created 2008-02-15 * */ package org.signalml.app.task; import javax.swing.event.EventListenerList; import org.signalml.task.TaskEvent; import org.signalml.task.TaskEventListener; /** TaskEventProxy * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class TaskEventProxy implements TaskEventListener { private EventListenerList listenerList = new EventListenerList(); private ApplicationTaskWorker worker; public ApplicationTaskWorker getWorker() { return worker; } public void setWorker(ApplicationTaskWorker worker) { if (this.worker != worker) { if (this.worker != null) { this.worker.removeTaskEventListener(this); // release the old worker this.worker.destroy(); } this.worker = worker; if (worker != null) { worker.addTaskEventListener(this); } } } public void addTaskEventListener(TaskEventListener listener) { listenerList.add(TaskEventListener.class, listener); } public void removeTaskEventListener(TaskEventListener listener) { listenerList.remove(TaskEventListener.class, listener); } @Override public void taskAborted(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskAborted(ev); } } } @Override public void taskFinished(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskFinished(ev); } } } @Override public void taskMessageSet(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskMessageSet(ev); } } } @Override public void taskRequestChanged(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskRequestChanged(ev); } } } @Override public void taskResumed(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskResumed(ev); } } } @Override public void taskStarted(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskStarted(ev); } } } @Override public void taskSuspended(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskSuspended(ev); } } } @Override public void taskTickerUpdated(TaskEvent ev) { Object[] listeners = listenerList.getListenerList(); for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TaskEventListener.class) { ((TaskEventListener)listeners[i+1]).taskTickerUpdated(ev); } } } }