--- /dev/null
+package jalview.ws2.helpers;
+
+import java.util.List;
+
+import jalview.ws2.actions.api.JobI;
+import jalview.ws2.actions.api.TaskEventListener;
+import jalview.ws2.actions.api.TaskI;
+import jalview.ws2.api.JobStatus;
+
+public class TaskEventSupport<T>
+{
+ TaskI<T> source;
+ TaskEventListener<T> handler;
+
+ public TaskEventSupport(TaskI<T> source, TaskEventListener<T> handler)
+ {
+ this.source = source;
+ this.handler = handler;
+ }
+
+ public void fireTaskStarted(List<? extends JobI> subJobs)
+ {
+ handler.taskStarted(source, subJobs);
+ }
+
+ public void fireTaskStatusChanged(JobStatus status)
+ {
+ handler.taskStatusChanged(source, status);
+ }
+
+ public void fireTaskCompleted(T result)
+ {
+ handler.taskCompleted(source, result);
+ }
+
+ public void fireTaskException(Exception e)
+ {
+ handler.taskException(source, e);
+ }
+
+ public void fireTaskRestarted()
+ {
+ handler.taskRestarted(source);
+ }
+
+ public void fireSubJobStatusChanged(JobI job, JobStatus status)
+ {
+ handler.subJobStatusChanged(source, job, status);
+ }
+
+ public void fireSubJobLogChanged(JobI job, String log)
+ {
+ handler.subJobLogChanged(source, job, log);
+ }
+
+ public void fireSubJobErrorLogChanged(JobI job, String log)
+ {
+ handler.subJobErrorLogChanged(source, job, log);
+ }
+}