diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java index 3948f1331..ae5f8b771 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/Task.java @@ -177,9 +177,10 @@ public class Task implements ITask { * Refreshes the tasklist viewer. */ public void notifyTaskDataChange() { + final Task task = this; Workbench.getInstance().getDisplay().asyncExec(new Runnable() { public void run() { - if (TaskListView.getDefault() != null) TaskListView.getDefault().notifyTaskDataChanged(); + if (TaskListView.getDefault() != null) TaskListView.getDefault().notifyTaskDataChanged(task); } }); } @@ -304,16 +305,16 @@ public class Task implements ITask { return complete; } - public boolean hasCompletedSubTasks() { - return findCompletedSubtask(getChildren()); + public boolean hasCompletedSubTasks(boolean completed) { + return findCompletedSubtask(getChildren(), completed); } - private boolean findCompletedSubtask(List<ITask> subtasks) { + private boolean findCompletedSubtask(List<ITask> subtasks, boolean completed) { for(ITask t : subtasks) { - if (t.isCompleted()) { + if (t.isCompleted() == completed) { return true; } - findCompletedSubtask(t.getChildren()); + findCompletedSubtask(t.getChildren(), completed); } return false; } @@ -349,4 +350,18 @@ public class Task implements ITask { } return maxHandle; } + + public boolean hasSubTaskWithPriority(String priority) { + return findSubTaskWithPriority(getChildren(), priority); + } + + private boolean findSubTaskWithPriority(List<ITask> subtasks, String priority) { + for(ITask t : subtasks) { + if (t.getPriority().equals(priority)) { + return true; + } + findSubTaskWithPriority(t.getChildren(), priority); + } + return false; + } } |