Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2004-01-07 17:39:05 +0000
committerAlain Magloire2004-01-07 17:39:05 +0000
commit41a0020d24a9badd0e876e80e6bb44d3ea896494 (patch)
tree79a8fa509dc4af711bfa17246515074908f3b31e
parent7a48cc3a164ddbe6df77f2fabd577aa391137227 (diff)
downloadorg.eclipse.cdt-41a0020d24a9badd0e876e80e6bb44d3ea896494.tar.gz
org.eclipse.cdt-41a0020d24a9badd0e876e80e6bb44d3ea896494.tar.xz
org.eclipse.cdt-41a0020d24a9badd0e876e80e6bb44d3ea896494.zip
Fix for PR 49595
The error parsers were not save in the correct order.
-rw-r--r--core/org.eclipse.cdt.ui/ChangeLog7
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java39
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);

Back to the top