Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-02-26 08:42:14 +0000
committerspingel2009-02-26 08:42:14 +0000
commit1f32b08fb7267402634b297067a53aec61ed9b96 (patch)
tree88d85e0ceb789b6382d1cae0776c9e57ed312619 /org.eclipse.mylyn.tasks.ui
parentf1d7fde0e8f6f6bc57149c31faeca1b7982c8d52 (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties4
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java4
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[]> {

Back to the top