Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java
index 9cde4c63a..6f8b810bc 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java
@@ -94,6 +94,9 @@ public class TaskComparator implements Comparator<ITask> {
case TASK_TYPE:
result = compare(element1.getTaskKind(), element2.getTaskKind(), key.getDirection());
break;
+ case DUE_DATE:
+ result = sortByDueDate(element1, element2, key.getDirection());
+ break;
default: // NONE
return 0;
}
@@ -142,6 +145,17 @@ public class TaskComparator implements Comparator<ITask> {
return sortDirection * date1.compareTo(date2);
}
+ private int sortByDueDate(ITask element1, ITask element2, int sortDirection) {
+ Date date1 = element1.getDueDate();
+ Date date2 = element2.getDueDate();
+ if (date1 == null) {
+ return (date2 != null) ? sortDirection : 0;
+ } else if (date2 == null) {
+ return -sortDirection;
+ }
+ return sortDirection * date1.compareTo(date2);
+ }
+
private <T> int compare(Comparable<T> key1, T key2, int sortDirection) {
if (key1 == null) {
return (key2 != null) ? sortDirection : 0;

Back to the top