1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-10 17:55:39 +02:00
This commit is contained in:
David Inglis 2004-06-10 19:57:58 +00:00
parent 905660166d
commit 9d340c85d9

View file

@ -8,6 +8,9 @@
******************************************************************************/ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths; package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.cdt.core.model.IPathEntry; import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
@ -57,15 +60,24 @@ public class CPElementSorter extends ViewerSorter {
public void sort(Viewer viewer, Object[] elements) { public void sort(Viewer viewer, Object[] elements) {
// include paths and symbol definitions must not be sorted // include paths and symbol definitions must not be sorted
if (elements.length > 0 && elements[0] instanceof CPElement) { List sort = new ArrayList(elements.length);
CPElement firstElement = (CPElement)elements[0]; List dontSort = new ArrayList(elements.length);
switch (firstElement.getEntryKind()) { for(int i = 0; i < elements.length; i++) {
case IPathEntry.CDT_INCLUDE : if (elements[i] instanceof CPElement) {
case IPathEntry.CDT_MACRO : CPElement element = (CPElement)elements[i];
return; if ( element.getEntryKind() == IPathEntry.CDT_INCLUDE || element.getEntryKind() == IPathEntry.CDT_MACRO) {
dontSort.add(elements[i]);
} else {
sort.add(elements[i]);
}
} else {
sort.add(elements[i]);
} }
} }
super.sort(viewer, elements); Object[] sorted = new Object[elements.length];
System.arraycopy(sort.toArray(), 0, sorted, 0, sort.size());
super.sort(viewer, sorted);
System.arraycopy(dontSort.toArray(), 0, sorted, sort.size(), dontSort.size());
} }
} }