package org.hwo.thread; import java.util.ArrayList; import java.util.EventListener; import java.util.List; public abstract class ThreadedOperation extends Thread{ List updateListeners; private String operationName; public ThreadedOperation() { updateListeners = new ArrayList(); operationName = "AktivitŠt..."; } public void addThreadedOperationUpdateListener(ThreadedOperationUpdateListener listener) { updateListeners.add(listener); } public void removeThreadedOperationUpdateListener(ThreadedOperationUpdateListener listener) { updateListeners.remove(listener); } protected void fireUpdate(ThreadedOperationUpdateArgs updateArgs) { for (ThreadedOperationUpdateListener listener:updateListeners) listener.threadedOperationUpdate(updateArgs); } protected void fireUpdate(Integer progressOperation,Integer progressStep) { fireUpdate(new ThreadedOperationUpdateArgs(progressOperation,progressStep)); } protected void fireUpdate(Integer progressOperation,Integer progressStep,String statusText) { fireUpdate(new ThreadedOperationUpdateArgs(progressOperation,progressStep,statusText)); } protected void fireUpdate(Integer progressOperation,Integer progressStep,String statusText,String stepLabel) { fireUpdate(new ThreadedOperationUpdateArgs(progressOperation,progressStep,statusText,stepLabel)); } protected void fireFinished(int code) { for (ThreadedOperationUpdateListener listener:updateListeners) listener.threadedOperationFinished(code); } protected void fireFinished() { fireFinished(0); } public abstract void run(); public String getOperationName() { return operationName; } public void setOperationName(String operationName) { this.operationName = operationName; } }