SortableProjectList是一個可以根據特定排序條件列出Task的工具
建構方式:
public SortableProjectList(Project p, ProjectTreeListener ptl,Comparator c)
此建構方式根據Comparator的排序條件順序列出該Project內的所有Task
public SortableProjectList(Project p, ProjectTreeListener ptl,Comparator c, boolean accending)
此建構方式根據Comparator的排序條件列出該Project內的所有Task,accending為true就順序列出,反之倒序列出。
public SortableProjectList(Task t, ProjectTreeListener ptl,Comparator c)
此建構方式根據Comparator的排序條件順序列出該Task內的所有Subtask
public SortableProjectList(Task t, ProjectTreeListener ptl,Comparator c, boolean accending)
此建構方式根據Comparator的排序條件列出該Task內的所有Subtask,accending為true就順序列出,反之倒序列出。
方法說明:
- public void listTasks()
- ProjectTreeList在建構時不會即時列出所有的Task,用此方法來可以列出所有的Task
假設你有以下的Task
Project A
|
Task A
|- Task E
| |- Task F
| |- Task D
|- Task C
|- Task B
做好ProjectTreeListener: PTLTest
private class PTLTest implements ProjectTreeListener{
public void whenNodeListed(Task task) {
System.out.println(task);
}
public void whenRootListed(Project project) {
System.out.println(project);
}
public void whenRootListed(Task task) {
System.out.println(task);
}
}
TaskNameComparator:根據Task名稱順序排列
然後輸入在void main(String srgs[])輸入以下程式碼:
ptlt=new PTLTest();
ProjectTreeList ptl=new ProjectTreeList(project,ptlt);
ptl.listTasks();
上例將輸出:
Project 1
Task A
Task C
Task B
Task E
Task D
Task F
如改成
ptlt=new PTLTest();
ProjectTreeList ptl=new ProjectTreeList(taskE,ptlt);
ptl.listTasks();
上例將輸出:
Task E
Task D
Task F