From 41a0020d24a9badd0e876e80e6bb44d3ea896494 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Wed, 7 Jan 2004 17:39:05 +0000 Subject: [PATCH] Fix for PR 49595 The error parsers were not save in the correct order. --- core/org.eclipse.cdt.ui/ChangeLog | 7 ++++ .../ui/dialogs/AbstractErrorParserBlock.java | 39 +++++++++++++------ 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index a5a06b6c18a..dfa775d4f94 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,10 @@ +2004-01-07 Alain Magloire + + Fix for bug 49595 + The error parser order were not save correctly. + + * src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java + 2003-12-31 Hoda Amer Displayed "No Completions Found" message in status bar diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java index 6bbb3c29673..db8fbcc4772 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java @@ -142,16 +142,8 @@ public abstract class AbstractErrorParserBlock extends AbstractCOptionPage { protected void initializeValues() { initMapParsers(); - List list = new ArrayList(mapParsers.size()); - Iterator items = mapParsers.keySet().iterator(); - while( items.hasNext()) { - list.add((String)items.next()); - } - fErrorParserList.setElements(list); - - list.clear(); - String[] parserIDs = EMPTY; + String[] parserIDs; IProject project = getContainer().getProject(); if (project == null) { // From a Preference. @@ -161,7 +153,24 @@ public abstract class AbstractErrorParserBlock extends AbstractCOptionPage { parserIDs = getErrorParserIDs(project); } - fErrorParserList.setCheckedElements(Arrays.asList(parserIDs)); + List checkedList = Arrays.asList(parserIDs); + fErrorParserList.setElements(checkedList); + fErrorParserList.setCheckedElements(checkedList); + + Iterator items = mapParsers.keySet().iterator(); + while( items.hasNext()) { + String item = (String)items.next(); + boolean found = false; + for (int i = 0; i < parserIDs.length; i++) { + if (item.equals(parserIDs[i])) { + found = true; + break; + } + } + if (!found) { + fErrorParserList.addElement(item); + } + } } public void createControl(Composite parent) { @@ -204,7 +213,15 @@ public abstract class AbstractErrorParserBlock extends AbstractCOptionPage { monitor = new NullProgressMonitor(); } monitor.beginTask("Setting Error Parsers...", 1); - List list = fErrorParserList.getCheckedElements(); + List elements = fErrorParserList.getElements(); + int count = elements.size(); + List list = new ArrayList(count); + for (int i = 0; i < count; i++) { + Object obj = elements.get(i); + if (fErrorParserList.isChecked(obj)) { + list.add(obj); + } + } String[] parserIDs = (String[])list.toArray(EMPTY);