diff options
author | spingel | 2009-02-26 08:42:14 +0000 |
---|---|---|
committer | spingel | 2009-02-26 08:42:14 +0000 |
commit | 1f32b08fb7267402634b297067a53aec61ed9b96 (patch) | |
tree | 88d85e0ceb789b6382d1cae0776c9e57ed312619 /org.eclipse.mylyn.tasks.ui | |
parent | f1d7fde0e8f6f6bc57149c31faeca1b7982c8d52 (diff) | |
download | org.eclipse.mylyn.tasks-1f32b08fb7267402634b297067a53aec61ed9b96.tar.gz org.eclipse.mylyn.tasks-1f32b08fb7267402634b297067a53aec61ed9b96.tar.xz org.eclipse.mylyn.tasks-1f32b08fb7267402634b297067a53aec61ed9b96.zip |
NEW - bug 261998: fix sorting of Task List
https://bugs.eclipse.org/bugs/show_bug.cgi?id=261998
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
6 files changed, 54 insertions, 55 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java index 01a2c9dd6..6fb0ba9a9 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java @@ -43,7 +43,7 @@ public class Messages extends NLS { public static String TaskListSortDialog_Sort_order; - public static String TaskListSortDialog_Sorting; + public static String TaskListSortDialog_Title; public static String TaskRepositoryCredentialsDialog_Enter_Credentials; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java index f6c7c19db..ec9b5c124 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java @@ -18,7 +18,7 @@ import java.util.Comparator; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.window.IShellProvider; import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; +import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator.SortByIndex; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -50,13 +50,13 @@ public class TaskCompareDialog extends SelectionDialog { public TaskCompareDialog(IShellProvider parentShell, TaskComparator taskComparator) { super(parentShell.getShell()); - propertyText = new String[4]; - propertyText[0] = Messages.TaskCompareDialog_Priority; - propertyText[1] = Messages.TaskCompareDialog_Summary; - propertyText[2] = Messages.TaskCompareDialog_DateCreated; - propertyText[3] = Messages.TaskCompareDialog_TaskID; + SortByIndex[] values = SortByIndex.values(); + propertyText = new String[values.length]; + for (int i = 0; i < values.length; i++) { + propertyText[i] = values[i].getLabel(); + } this.taskComparator = taskComparator; - setTitle(TaskListView.LABEL_VIEW + Messages.TaskCompareDialog_Sorting); + setTitle(Messages.TaskCompareDialog_Sorting); } protected void createDialogStartArea(Composite parent) { @@ -175,35 +175,8 @@ public class TaskCompareDialog extends SelectionDialog { } int a[] = new int[2]; int b[] = new int[2]; - switch (taskComparator.getSortByIndex()) { - case PRIORITY: - a[0] = 0; - break; - case SUMMARY: - a[0] = 1; - break; - case DATE_CREATED: - a[0] = 2; - break; - case TASK_ID: - a[0] = 3; - break; - } - - switch (taskComparator.getSortByIndex2()) { - case PRIORITY: - a[1] = 0; - break; - case SUMMARY: - a[1] = 1; - break; - case DATE_CREATED: - a[1] = 2; - break; - case TASK_ID: - a[1] = 3; - break; - } + a[0] = taskComparator.getSortByIndex().ordinal(); + a[1] = taskComparator.getSortByIndex2().ordinal(); b[0] = taskComparator.getSortDirection(); b[1] = taskComparator.getSortDirection2(); updateUI(a, b); @@ -214,10 +187,8 @@ public class TaskCompareDialog extends SelectionDialog { @Override protected void okPressed() { if (isDirty()) { - taskComparator.setSortByIndex(TaskComparator.SortByIndex.valueOf(priorityCombos[0].getItem( - priorityCombos[0].getSelectionIndex()).replace(' ', '_').toUpperCase())); - taskComparator.setSortByIndex2(TaskComparator.SortByIndex.valueOf(priorityCombos[1].getItem( - priorityCombos[1].getSelectionIndex()).replace(' ', '_').toUpperCase())); + taskComparator.setSortByIndex(SortByIndex.valueOfLabel(priorityCombos[0].getText())); + taskComparator.setSortByIndex2(SortByIndex.valueOfLabel(priorityCombos[1].getText())); if (descendingButtons[0].getSelection()) { taskComparator.setSortDirection(-1); } else { @@ -228,22 +199,18 @@ public class TaskCompareDialog extends SelectionDialog { } else { taskComparator.setSortDirection2(1); } - } super.okPressed(); } - /** - * @return boolean - */ - public boolean isDirty() { + protected boolean isDirty() { return dirty; } /** * Sets the dirty flag to true. */ - public void markDirty() { + protected void markDirty() { dirty = true; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java index b5c7b44b0..36fe7ab10 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java @@ -26,7 +26,7 @@ public class TaskListSortDialog extends TaskCompareDialog { public TaskListSortDialog(IShellProvider parentShell, TaskListView taskListView) { super(parentShell, taskListView.getSorter().getComparator()); - setTitle(TaskListView.LABEL_VIEW + Messages.TaskListSortDialog_Sorting); + setTitle(Messages.TaskListSortDialog_Title); } @Override diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties index 0fb49295c..1513d5c38 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties @@ -2,12 +2,12 @@ TaskCompareDialog_Ascending=Ascending TaskCompareDialog_DateCreated=Date Created TaskCompareDialog_Descending=Descending TaskCompareDialog_Priority=Priority -TaskCompareDialog_Sorting=\ Sorting +TaskCompareDialog_Sorting=Sorting TaskCompareDialog_SortOrder=Sort order: TaskCompareDialog_Summary=Summary TaskCompareDialog_TaskID=Task ID TaskListSortDialog_Sort_order=Sort order for tasks\: -TaskListSortDialog_Sorting=\ Sorting +TaskListSortDialog_Title=Task List Sorting TaskRepositoryCredentialsDialog_Enter_Credentials=Enter Credentials TaskRepositoryCredentialsDialog_Enter_repository_credentials=Enter repository credentials 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 bc2295223..5ffd06506 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 @@ -14,6 +14,9 @@ package org.eclipse.mylyn.internal.tasks.ui.util; import java.util.Comparator; +import org.eclipse.core.runtime.Assert; +import org.eclipse.mylyn.internal.tasks.ui.dialogs.Messages; +import org.eclipse.mylyn.internal.tasks.ui.views.TaskKeyComparator; import org.eclipse.mylyn.tasks.core.IRepositoryElement; import org.eclipse.mylyn.tasks.core.ITask; @@ -23,8 +26,35 @@ import org.eclipse.mylyn.tasks.core.ITask; */ public class TaskComparator implements Comparator<ITask> { + private final TaskKeyComparator taskKeyComparator = new TaskKeyComparator(); + public enum SortByIndex { PRIORITY, SUMMARY, DATE_CREATED, TASK_ID; + + public String getLabel() { + switch (this) { + case PRIORITY: + return Messages.TaskCompareDialog_Priority; + case SUMMARY: + return Messages.TaskCompareDialog_Summary; + case DATE_CREATED: + return Messages.TaskCompareDialog_DateCreated; + case TASK_ID: + return Messages.TaskCompareDialog_TaskID; + default: + return null; + } + } + + public static SortByIndex valueOfLabel(String label) { + for (SortByIndex value : values()) { + if (value.getLabel().equals(label)) { + return value; + } + } + return null; + } + } public static final int DEFAULT_SORT_DIRECTION = 1; @@ -129,15 +159,15 @@ public class TaskComparator implements Comparator<ITask> { } private int sortBySummary(ITask element1, ITask element2, int sortDirection) { - return sortDirection * (element1.getSummary().compareTo(element2.getSummary())); + return sortDirection * (element1.getSummary().compareToIgnoreCase(element2.getSummary())); } private int sortByID(ITask element1, ITask element2, int sortDirection) { - return sortDirection * (element1.getTaskId().compareTo(element2.getTaskId())); + return sortDirection * (taskKeyComparator.compare2(element1.getTaskKey(), element2.getTaskKey())); } private int sortByPriority(ITask element1, ITask element2, int sortDirection) { - return sortDirection * (element1.getPriority().compareTo(element2.getPriority())); + return sortDirection * (element1.getPriority().compareToIgnoreCase(element2.getPriority())); } private int sortByDate(ITask element1, ITask element2, int sortDirection) { @@ -154,6 +184,7 @@ public class TaskComparator implements Comparator<ITask> { } public void setSortByIndex(SortByIndex sortByIndex) { + Assert.isNotNull(sortByIndex); this.sortByIndex = sortByIndex; } @@ -170,6 +201,7 @@ public class TaskComparator implements Comparator<ITask> { } public void setSortByIndex2(SortByIndex sortByIndex) { + Assert.isNotNull(sortByIndex); this.sortByIndex2 = sortByIndex; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java index 43cbc0a52..64d69d68c 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java @@ -6,7 +6,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Eugene Kuleshov - initial API and implementation + * Eugene Kuleshov - initial API and implementation for bug 129511 * Tasktop Technologies - improvements *******************************************************************************/ @@ -17,7 +17,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * @author Eugene Kuleshov (https://bugs.eclipse.org/bugs/show_bug.cgi?taskId=129511) + * @author Eugene Kuleshov */ public class TaskKeyComparator implements Comparator<String[]> { |