Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/DateRange.java6
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java3
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java30
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java9
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java2
6 files changed, 47 insertions, 77 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/DateRange.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/DateRange.java
index a126d14b9..6a505a2e9 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/DateRange.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/DateRange.java
@@ -142,7 +142,7 @@ public class DateRange implements Comparable<DateRange> {
return TaskActivityUtil.getCurrentWeek().next().compareTo(this) == 0;
}
- private boolean isThisWeek() {
+ public boolean isThisWeek() {
if (isWeek()) {
return this.includes(Calendar.getInstance());
}
@@ -170,6 +170,10 @@ public class DateRange implements Comparable<DateRange> {
return getEndDate().compareTo(Calendar.getInstance()) < 0;
}
+ public boolean isBefore(DateRange scheduledDate) {
+ return this.getEndDate().compareTo(scheduledDate.getStartDate()) < 0;
+ }
+
@Override
public int hashCode() {
final int prime = 31;
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java
index d2b06124b..df69805aa 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java
@@ -591,7 +591,8 @@ public class TaskActivityManager implements ITaskActivityManager {
}
public boolean isPastReminder(AbstractTask task) {
- if (task == null || task.isCompleted() || task.getScheduledForDate() == null) {
+ if (task == null || task.isCompleted() || task.getScheduledForDate() == null
+ || !task.getScheduledForDate().isDay()) {
return false;
} else {
return isPastReminder(task.getScheduledForDate(), task.isCompleted());
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java
index dd701d620..3eb112555 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java
@@ -8,12 +8,19 @@
package org.eclipse.mylyn.tasks.tests;
+import java.util.Calendar;
+
import junit.framework.TestCase;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.mylyn.internal.tasks.core.DateRange;
import org.eclipse.mylyn.internal.tasks.core.LocalTask;
+import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
+import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.internal.tasks.ui.views.TaskListInterestSorter;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskListTableSorter;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
import org.eclipse.mylyn.tasks.core.ITask;
@@ -69,6 +76,29 @@ public class TableSorterTest extends TestCase {
}
}
+ public void testScheduledTaskSorting() {
+ final TaskListInterestSorter sorter = new TaskListInterestSorter();
+ MockTask task1 = new MockTask("local", "MYLN:1", "1");
+ MockTask task2 = new MockTask("local", "MYLN:2", "2");
+
+ Calendar start1 = TaskActivityUtil.getCalendar();
+ start1.add(Calendar.WEEK_OF_YEAR, -1);
+ TaskActivityUtil.snapStartOfWorkWeek(start1);
+ Calendar end1 = TaskActivityUtil.getCalendar();
+ end1.setTimeInMillis(start1.getTimeInMillis());
+ TaskActivityUtil.snapEndOfWeek(end1);
+ WeekDateRange range1 = new WeekDateRange(start1, end1);
+ TasksUiPlugin.getTaskActivityManager().setScheduledFor(task1, range1);
+
+ Calendar start2 = TaskActivityUtil.getCalendar();
+ start2.add(Calendar.HOUR_OF_DAY, -1);
+ Calendar end2 = TaskActivityUtil.getCalendar();
+ DateRange range2 = new DateRange(start2, end2);
+ TasksUiPlugin.getTaskActivityManager().setScheduledFor(task2, range2);
+
+ assertTrue(sorter.compare(new EmptyViewer(), task1, task2) < 0);
+ }
+
public void testSummaryOrderSorting() {
final TaskListTableSorter sorter = new TaskListTableSorter(TaskListView.getFromActivePerspective());
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java
index c3fa311f3..2c97f591a 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java
@@ -86,8 +86,7 @@ public class ScheduleTaskMenuContributor implements IDynamicSubMenuContributor {
Action action = createDateSelectionAction(day, CommonImages.SCHEDULE_DAY);
subMenuManager.add(action);
// Special case: Over scheduled tasks always 'scheduled' for today
- if (singleTaskSelection != null && day.equals(singleTaskSelection.getScheduledForDate())
- && isPastReminder(singleTaskSelection)) {
+ if (singleTaskSelection != null && isPastReminder(singleTaskSelection)) {
action.setChecked(true);
}
} else if (day.after(TaskActivityUtil.getCalendar())) {
@@ -112,6 +111,12 @@ public class ScheduleTaskMenuContributor implements IDynamicSubMenuContributor {
// This Week
Action action = createDateSelectionAction(week, CommonImages.SCHEDULE_WEEK);
subMenuManager.add(action);
+ // Special case: This Week holds previous weeks' scheduled tasks
+ if (singleTaskSelection != null && singleTaskSelection.getScheduledForDate().isWeek()
+ && singleTaskSelection.getScheduledForDate().isBefore(week)) {
+ // Tasks scheduled for 'someday' float into this week
+ action.setChecked(true);
+ }
// Next Week
action = createDateSelectionAction(week.next(), null);
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java
index 1e7ef091c..d1d12709b 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java
@@ -35,25 +35,10 @@ public class TaskListInterestSorter extends ViewerSorter {
} else if (o2 instanceof ITaskContainer && o1 instanceof UnmatchedTaskContainer) {
return 1;
}
-//
-// if (o1 instanceof ScheduledTaskContainer && o2 instanceof ScheduledTaskContainer) {
-// ScheduledTaskContainer dateRangeTaskContainer1 = (ScheduledTaskContainer) o1;
-// ScheduledTaskContainer dateRangeTaskContainer2 = (ScheduledTaskContainer) o2;
-// if (dateRangeTaskContainer1.getDateRange().compareTo(dateRangeTaskContainer2.getDateRange())getisCaptureFloating() && !dateRangeTaskContainer2.isCaptureFloating()) {
-// return 1;
-// } else if (!dateRangeTaskContainer1.isCaptureFloating() && dateRangeTaskContainer2.isCaptureFloating()) {
-// return -1;
-// }
-// return -1 * dateRangeTaskContainer2.getStart().compareTo(dateRangeTaskContainer1.getStart());
if (o1 instanceof ScheduledTaskContainer && o2 instanceof ScheduledTaskContainer) {
ScheduledTaskContainer dateRangeTaskContainer1 = (ScheduledTaskContainer) o1;
ScheduledTaskContainer dateRangeTaskContainer2 = (ScheduledTaskContainer) o2;
return dateRangeTaskContainer1.getDateRange().compareTo(dateRangeTaskContainer2.getDateRange());
-// if (dateRangeTaskContainer1.isCaptureFloating() && !dateRangeTaskContainer2.isCaptureFloating()) {
-// return 1;
-// } else if (!dateRangeTaskContainer1.isCaptureFloating() && dateRangeTaskContainer2.isCaptureFloating()) {
-// return -1;
-// }
} else if (o1 instanceof ITaskContainer && o2 instanceof ScheduledTaskContainer) {
return -1;
} else if (o1 instanceof ScheduledTaskContainer && o2 instanceof ITaskContainer) {
@@ -134,16 +119,6 @@ public class TaskListInterestSorter extends ViewerSorter {
}
private int compareScheduledDate(AbstractTask task1, AbstractTask task2) {
-// if (task1.internalIsFloatingScheduledDate() && !task2.internalIsFloatingScheduledDate()) {
-// return 1;
-// } else if (!task1.internalIsFloatingScheduledDate() && task2.internalIsFloatingScheduledDate()) {
-// return -1;
-// } else if (task1.internalIsFloatingScheduledDate() && task2.internalIsFloatingScheduledDate()) {
-// if (task1.getScheduledForDate() != null && task2.getScheduledForDate() != null) {
-// return 0;
-// }
-// }
-
if (isToday(task1) && !isToday(task2)) {
return -1;
} else if (!isToday(task1) && isToday(task2)) {
@@ -154,21 +129,10 @@ public class TaskListInterestSorter extends ViewerSorter {
}
private boolean isToday(AbstractTask task) {
- return task.isPastReminder() || TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task);
+ return TasksUiPlugin.getTaskActivityManager().isPastReminder(task)
+ || TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task);
}
-// private int compareThisWeek(AbstractTask task1, AbstractTask task2) {
-// if (TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task1)
-// && !TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task2)) {
-// return 1;
-// } else if (!TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task1)
-// && TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task2)) {
-// return -1;
-// } else {
-// return 0;
-// }
-// }
-
private int compareCompleted(ITask task1, ITask task2) {
if (task1.isCompleted() && !task2.isCompleted()) {
return 1;
@@ -179,40 +143,6 @@ public class TaskListInterestSorter extends ViewerSorter {
}
}
-// private int compareOverScheduled(AbstractTask task1, AbstractTask task2) {
-// if (task1.isPastReminder() && !task2.isPastReminder()) {
-// return -1;
-// } else if (!task1.isPastReminder() && task2.isPastReminder()) {
-// return 1;
-// } else {
-// return 0;
-// }
-// }
-//
-// private int compareScheduledToday(AbstractTask task1, AbstractTask task2) {
-// if (TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task1)
-// && !TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task2)) {
-// return -1;
-// } else if (!TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task1)
-// && TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task2)) {
-// return 1;
-// } else {
-// return 0;
-// }
-// }
-
- // private int compareChanges(ITask task1, ITask task2) {
- // if (TaskListInterestFilter.hasChanges(task1) &&
- // !TaskListInterestFilter.hasChanges(task2)) {
- // return 1;
- // } else if (!TaskListInterestFilter.hasChanges(task1) &&
- // TaskListInterestFilter.hasChanges(task2)) {
- // return -1;
- // } else {
- // return 0;
- // }
- // }
-
private int comparePrioritiesAndKeys(IRepositoryElement element1, IRepositoryElement element2) {
int priority = comparePriorities(element1, element2);
if (priority != 0) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java
index a27c31687..e09c994de 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java
@@ -201,7 +201,7 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro
return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_OVERDUE);
} else if (TasksUiPlugin.getTaskActivityManager().isDueToday(task)) {
return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_SCHEDULED_TODAY);
- } else if (task.getScheduledForDate() != null && task.getScheduledForDate().isDay()
+ } else if (task.getScheduledForDate() != null
&& TasksUiPlugin.getTaskActivityManager().isPastReminder(task)) {
return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_SCHEDULED_PAST);
} else if (TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)) {

Back to the top