public Object getChild(Object parent, int index) { Collection c = null; if (parent instanceof IProject) { if (activeOnly()) c = CurrentProject.getTaskList().getActiveSubTasks(null, CurrentDate.get()); else c = CurrentProject.getTaskList().getTopLevelTasks(); } else { ITask t = (ITask) parent; if (activeOnly()) c = CurrentProject.getTaskList().getActiveSubTasks(t.getID(), CurrentDate.get()); else c = t.getSubTasks(); } Object array[] = c.toArray(); Arrays.sort(array, comparator); if (opposite) { return array[array.length - index - 1]; } return array[index]; }