diff options
author | Jaxsun McCarthy Huggan | 2016-07-26 18:56:44 +0000 |
---|---|---|
committer | Jaxsun McCarthy Huggan | 2016-08-17 21:05:58 +0000 |
commit | 9a4095c743725aa47d7a2ec6cc5ec50437a11291 (patch) | |
tree | 7816e10e3d58c6b9381bb44f0924f45d47055955 /org.eclipse.mylyn.tasks.ui | |
parent | 65e19007e3c45e45a542c7f253fa55ed59d7632f (diff) | |
download | org.eclipse.mylyn.tasks-9a4095c743725aa47d7a2ec6cc5ec50437a11291.tar.gz org.eclipse.mylyn.tasks-9a4095c743725aa47d7a2ec6cc5ec50437a11291.tar.xz org.eclipse.mylyn.tasks-9a4095c743725aa47d7a2ec6cc5ec50437a11291.zip |
319889: TaskListInterestSorter uses configured sort criteria as backup
Change-Id: Iaabefc6ca4d928a8bb60beba3fedff96c06ddc88
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=319889
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
2 files changed, 35 insertions, 29 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FocusTaskListAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FocusTaskListAction.java index dc26b9835..0a549ce58 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FocusTaskListAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FocusTaskListAction.java @@ -112,9 +112,9 @@ public class FocusTaskListAction implements IFilteredTreeListener, IViewActionDe taskListView.addFilter(taskListInterestFilter); } // Setting sorter causes root refresh + taskListInterestSorter.setconfiguredSorter(previousSorter); taskListView.getViewer().setSorter(taskListInterestSorter); taskListView.getViewer().expandAll(); -// taskListView.selectedAndFocusTask(TasksUiPlugin.getTaskList().getActiveTask()); showProgressBar(true); } finally { @@ -163,14 +163,12 @@ public class FocusTaskListAction implements IFilteredTreeListener, IViewActionDe } if (!taskListView.isFocusedMode()) { - TasksUiPlugin.getDefault() - .getPreferenceStore() - .setValue(ITasksUiPreferenceConstants.TASK_LIST_FOCUSED, true); + TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.TASK_LIST_FOCUSED, + true); installInterestFilter(); } else { - TasksUiPlugin.getDefault() - .getPreferenceStore() - .setValue(ITasksUiPreferenceConstants.TASK_LIST_FOCUSED, false); + TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.TASK_LIST_FOCUSED, + false); uninstallInterestFilter(); } } @@ -184,7 +182,7 @@ public class FocusTaskListAction implements IFilteredTreeListener, IViewActionDe } public void dispose() { - // ignore + // ignore } } 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 461e50b38..3cee628e3 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 @@ -31,9 +31,14 @@ public class TaskListInterestSorter extends ViewerSorter { private final TaskKeyComparator taskKeyComparator = new TaskKeyComparator(); + private ViewerSorter configuredSorter; + + public void setconfiguredSorter(ViewerSorter configuredSorter) { + this.configuredSorter = configuredSorter; + } + @Override public int compare(Viewer compareViewer, Object o1, Object o2) { - if (o1 instanceof ITaskContainer && o2 instanceof UnmatchedTaskContainer) { return -1; } else if (o2 instanceof ITaskContainer && o1 instanceof UnmatchedTaskContainer) { @@ -61,8 +66,8 @@ public class TaskListInterestSorter extends ViewerSorter { if (!(o1 instanceof ITask)) {//o1 instanceof AbstractTaskContainer || o1 instanceof AbstractRepositoryQuery) { if (!(o2 instanceof ITask)) {//o2 instanceof AbstractTaskContainer || o2 instanceof AbstractRepositoryQuery) { - return ((IRepositoryElement) o1).getSummary().compareToIgnoreCase( - ((IRepositoryElement) o2).getSummary()); + return ((IRepositoryElement) o1).getSummary() + .compareToIgnoreCase(((IRepositoryElement) o2).getSummary()); } else { return -1; } @@ -93,21 +98,24 @@ public class TaskListInterestSorter extends ViewerSorter { int complete = compareCompleted(task1, task2); if (complete != 0) { return complete; - } else { - int due = compareDueDates(task1, task2); - if (due != 0) { - return due; - } else { - int today = compareScheduledDate(task1, task2); - if (today == 0) { - return comparePrioritiesAndKeys(element1, element2); - } else { - return today; - } - } + } + + int due = compareDueDates(task1, task2); + if (due != 0) { + return due; + } + + int today = compareScheduledDate(task1, task2); + if (today != 0) { + return today; } } } + + if (configuredSorter != null) { + return configuredSorter.compare(compareViewer, o1, o2); + } + return 0; } @@ -153,9 +161,9 @@ public class TaskListInterestSorter extends ViewerSorter { return priority; } - int description = compareKeys(element1, element2); - if (description != 0) { - return description; + int key = compareKeys(element1, element2); + if (key != 0) { + return key; } return 0; } @@ -167,11 +175,11 @@ public class TaskListInterestSorter extends ViewerSorter { private int comparePriorities(IRepositoryElement element1, IRepositoryElement element2) { if (element1 instanceof AbstractTaskContainer && element2 instanceof AbstractTaskContainer) { - return ((AbstractTaskContainer) element1).getPriority().compareTo( - ((AbstractTaskContainer) element2).getPriority()); + return ((AbstractTaskContainer) element1).getPriority() + .compareTo(((AbstractTaskContainer) element2).getPriority()); } else { // TODO: consider implementing - return -1; + return 0; } } |