1 6 7 package com.thoughtriver.open.vectorvisuals.task; 8 9 import java.util.*; 10 11 19 public class TaskChain extends AnimationTask { 20 21 22 private final List<AnimationTask> chain; 23 24 27 public TaskChain() { 28 super(-1); 29 chain = Collections.synchronizedList(new LinkedList<AnimationTask>()); 30 } 31 32 38 public void addTask(final AnimationTask task) { 39 task.setManager(getManager()); 40 chain.add(task); 41 } 42 43 49 public void removeTask(final AnimationTask task) { 50 chain.remove(task); 51 } 52 53 61 @Override 62 protected void setManager(final TaskManager manager) { 63 super.setManager(manager); 64 65 for (AnimationTask task : chain) { 66 task.setManager(manager); 67 } 68 } 69 70 77 @Override 78 protected void update(@SuppressWarnings ("unused") 79 final double progress) { 80 81 synchronized (chain) { 82 83 if (chain.isEmpty()) { 85 stop(); 86 return; 87 } 88 89 AnimationTask task = chain.get(0); 92 if (!task.update()) { 93 chain.remove(0); 94 95 TaskEvent event = new TaskEvent(task, ExecutionState.stopped); 97 for (TaskListener listener : getManager().getListeners()) { 98 listener.taskStateChanged(event); 99 } 100 } 101 102 } 103 } 104 105 } 106 | Popular Tags |