fix for bug 70829
perspective sort order in preference page
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
index b271e2e..ba4a69b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
@@ -11,7 +11,10 @@
package org.eclipse.ui.internal.dialogs;
+import java.text.Collator;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -105,6 +108,19 @@
.getString("OpenPerspectiveMode.newWindow"); //$NON-NLS-1$
/**
+ * <code>Comparator</code> to compare two perspective descriptors
+ */
+ private Comparator comparator = new Comparator() {
+ private Collator collator = Collator.getInstance();
+
+ public int compare(Object ob1, Object ob2) {
+ IPerspectiveDescriptor d1 = (IPerspectiveDescriptor) ob1;
+ IPerspectiveDescriptor d2 = (IPerspectiveDescriptor) ob2;
+ return collator.compare(d1.getLabel(), d2.getLabel());
+ }
+ };
+
+ /**
* Creates the page's UI content.
*/
protected Control createContents(Composite parent) {
@@ -285,6 +301,7 @@
perspectives = new ArrayList(persps.length);
for (int i = 0; i < persps.length; i++)
perspectives.add(i, persps[i]);
+ Collections.sort(perspectives, comparator);
defaultPerspectiveId = perspectiveRegistry.getDefaultPerspective();
updateList();