From 59cf9d5fad6bf7a4c01bea7d41543be18374e1a2 Mon Sep 17 00:00:00 2001
From: Alena Laskavaia
Date: Sat, 18 Apr 2009 04:01:44 +0000
Subject: - to make workspace/project override of properties work, change to
store indiviual checkers id in properties
---
.../cdt/codan/core/PreferenceConstants.java | 1 +
.../codan/core/builder/CodanPreferencesLoader.java | 134 +++++++++------------
.../cdt/codan/core/model/CheckersRegisry.java | 42 ++++++-
.../internal/ui/preferences/CheckedTreeEditor.java | 1 -
.../ui/preferences/CodanPreferencePage.java | 24 +++-
.../ui/preferences/FieldEditorOverlayPage.java | 35 ++----
.../ui/preferences/ProblemsTreeEditor.java | 53 +++++++-
7 files changed, 173 insertions(+), 117 deletions(-)
(limited to 'codan')
diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/PreferenceConstants.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/PreferenceConstants.java
index a309ae3751a..a4a13741a67 100644
--- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/PreferenceConstants.java
+++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/PreferenceConstants.java
@@ -16,4 +16,5 @@ package org.eclipse.cdt.codan.core;
public class PreferenceConstants {
public static final String P_RUN_ON_BUILD = "booleanPreference";
public static final String P_PROBLEMS = "problems";
+ public static final String P_USE_PARENT = "useParentScope";
}
diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/builder/CodanPreferencesLoader.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/builder/CodanPreferencesLoader.java
index 1e689729849..bf17ba3b362 100644
--- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/builder/CodanPreferencesLoader.java
+++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/builder/CodanPreferencesLoader.java
@@ -10,21 +10,17 @@
*******************************************************************************/
package org.eclipse.cdt.codan.core.builder;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
import org.eclipse.cdt.codan.core.model.CodanProblem;
import org.eclipse.cdt.codan.core.model.CodanSeverity;
import org.eclipse.cdt.codan.core.model.IProblem;
import org.eclipse.cdt.codan.core.model.IProblemProfile;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
/**
* @author Alena
*
*/
public class CodanPreferencesLoader {
- private static String LIST_SEP = ",";
private IProblemProfile baseModel;
/**
@@ -45,101 +41,79 @@ public class CodanPreferencesLoader {
}
/**
- * Stored as element=true|false,...
- *
- * @param stringList
* @return
*/
- public Object modelFromString(String stringList) {
- String[] arr = stringList.split(LIST_SEP);
- for (int i = 0; i < arr.length; i++) {
- String elem = arr[i];
- String[] pair = elem.split("=", 2);
- if (pair.length == 0)
- continue;
- String id = pair[0];
- IProblem p = problemFromString(id);
- if (p == null) {
- System.err.println("cannot find '" + id + "'");
- continue;
- }
- if (pair.length == 1) {
- ((CodanProblem) p).setEnabled(true);
- } else {
- String check = pair[1];
- Boolean c = Boolean.valueOf(check);
- ((CodanProblem) p).setEnabled(c);
- }
- }
- return baseModel;
- }
-
- protected String problemToString(Object element) {
- IProblem p = ((IProblem) element);
- return p.getId() + ":" + p.getSeverity();
+ public IProblem[] getProblems() {
+ IProblem[] problems = baseModel.getProblems();
+ return problems;
}
- protected IProblem problemFromString(String string) {
- String[] pair = string.split(":");
- if (pair.length == 0)
- return null;
- String id = pair[0];
- String arg = "";
- if (pair.length > 1) {
- arg = pair[1];
+ /**
+ * @param id
+ * @param s
+ */
+ public void setProperty(String id, String s) {
+ IProblem prob = baseModel.findProblem(id);
+ if (!(prob instanceof CodanProblem))
+ return;
+ String sevs = s;
+ boolean enabled = true;
+ if (sevs.startsWith("-")) {
+ sevs = sevs.substring(1);
+ enabled = false;
}
+ ((CodanProblem) prob).setEnabled(enabled);
CodanSeverity sev;
try {
- sev = CodanSeverity.valueOf(arg);
+ sev = CodanSeverity.valueOf(sevs);
} catch (RuntimeException e) {
sev = CodanSeverity.Warning;
}
- IProblem prob = baseModel.findProblem(id);
- if (prob instanceof CodanProblem) {
- ((CodanProblem) prob).setSeverity(sev);
- }
- return prob;
+ ((CodanProblem) prob).setSeverity(sev);
}
- /**
- * Combines the given list of items into a single string. This method is the
- * converse of parseString
.
- *
- * Subclasses may implement this method.
- *
+ /*
+ * (non-Javadoc)
*
- * @return the combined string
- * @see #parseString
+ * @see java.lang.Object#toString()
*/
- public String modelToString(Object model) {
- StringBuffer buf = new StringBuffer();
- Map