From e75f6ccf26b8554ca3757a594f7cd5b0096bb403 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 23 Sep 2009 23:29:36 +0000 Subject: - fixed some API, added comments --- .../META-INF/MANIFEST.MF | 3 +- .../cdt/codan/core/CodanPreferencesLoader.java | 119 --------------------- .../org/eclipse/cdt/codan/core/model/IChecker.java | 16 ++- .../org/eclipse/cdt/codan/core/model/IProblem.java | 28 +++++ .../cdt/codan/core/model/IProblemCategory.java | 19 +++- .../cdt/codan/core/model/IProblemElement.java | 2 +- .../cdt/codan/core/model/IProblemProfile.java | 6 +- .../cdt/codan/core/model/ProblemProfile.java | 103 ------------------ .../cdt/codan/internal/core/CheckersRegisry.java | 3 +- .../internal/core/CodanPreferencesLoader.java | 119 +++++++++++++++++++++ .../internal/core/model/CodanProblemCategory.java | 4 +- .../codan/internal/core/model/ProblemProfile.java | 105 ++++++++++++++++++ .../ui/preferences/ProblemsTreeEditor.java | 2 +- 13 files changed, 296 insertions(+), 233 deletions(-) delete mode 100644 codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanPreferencesLoader.java delete mode 100644 codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/ProblemProfile.java create mode 100644 codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanPreferencesLoader.java create mode 100644 codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/ProblemProfile.java (limited to 'codan') diff --git a/codan/org.eclipse.cdt.codan.core/META-INF/MANIFEST.MF b/codan/org.eclipse.cdt.codan.core/META-INF/MANIFEST.MF index b77eb2ca230..b6eba46dfdd 100644 --- a/codan/org.eclipse.cdt.codan.core/META-INF/MANIFEST.MF +++ b/codan/org.eclipse.cdt.codan.core/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Require-Bundle: org.eclipse.core.runtime, Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Export-Package: org.eclipse.cdt.codan.core, - org.eclipse.cdt.codan.core.model + org.eclipse.cdt.codan.core.model, + org.eclipse.cdt.codan.internal.core;x-friends:="org.eclipse.cdt.codan.core,org.eclipse.cdt.codan.core.test,org.eclipse.cdt.codan.ui" diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanPreferencesLoader.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanPreferencesLoader.java deleted file mode 100644 index 6fd6318d8b3..00000000000 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanPreferencesLoader.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Alena Laskavaia - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Alena Laskavaia - initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.codan.core; - -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.cdt.codan.internal.core.model.CodanProblem; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; - -/** - * @author Alena - * - */ -public class CodanPreferencesLoader { - private IProblemProfile baseModel; - - /** - * @param workspaceProfile - */ - public CodanPreferencesLoader(IProblemProfile profile) { - setInput(profile); - } - - /** - * - */ - public CodanPreferencesLoader() { - } - - public void setInput(Object model) { - baseModel = (IProblemProfile) model; - } - - /** - * @return - */ - public IProblem[] getProblems() { - IProblem[] problems = baseModel.getProblems(); - return problems; - } - - /** - * @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(sevs); - } catch (RuntimeException e) { - sev = CodanSeverity.Warning; - } - ((CodanProblem) prob).setSeverity(sev); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return getInput().toString(); - } - - /** - * @return - */ - public IProblemProfile getInput() { - return baseModel; - } - - /** - * @param id - * @return - */ - public String getProperty(String id) { - IProblem prob = baseModel.findProblem(id); - if (!(prob instanceof CodanProblem)) - return null; - String enabled = prob.isEnabled() ? "" : "-"; - String severity = prob.getSeverity().toString(); - String res = enabled + severity; - return res; - } - - /** - * @param storePreferences - */ - public void load(IEclipsePreferences storePreferences) { - IProblem[] probs = getProblems(); - for (int i = 0; i < probs.length; i++) { - String id = probs[i].getId(); - String s = storePreferences.get(id, null); - if (s != null) { - setProperty(id, s); - } - } - } -} diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IChecker.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IChecker.java index 4f995db40f8..60f7cb2b99e 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IChecker.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IChecker.java @@ -12,9 +12,23 @@ package org.eclipse.cdt.codan.core.model; import org.eclipse.core.resources.IResource; +/** + * Interface that checker must implement. CDT Checker must be able to process a resource. + */ public interface IChecker { - public boolean processResource(IResource resource); + /** + * Main method that checker should implement that actually detects errors + * @param resource - resource to run on + * @return true if need to traverse children + */ + boolean processResource(IResource resource); + /** + * Implement this method to trim down type of resource you are interested in, + * usually it will be c/c++ files only + * @param resource + * @return + */ boolean enabledInContext(IResource resource); /** diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblem.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblem.java index 52cfff26c20..bbab3139dd8 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblem.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblem.java @@ -12,15 +12,38 @@ package org.eclipse.cdt.codan.core.model; import java.util.Collection; +/** + * Interface representing code analysis problem + * + */ public interface IProblem extends IProblemElement { + /** + * Name of the problem - user visible "title", not the message + */ String getName(); + /** + * Unique problem id. Should be qualified by plugin name to maintain uniqueness. + * @return + */ String getId(); + /** + * Is enabled in current context (usually within profile) + * @return true if enabled + */ boolean isEnabled(); + /** + * Get current severity + * @return severity + */ CodanSeverity getSeverity(); + /** + * Message pattern, java patter like 'Variable {0} is never used here' + * @return pattern + */ String getMessagePattern(); void setSeverity(CodanSeverity sev); @@ -31,6 +54,11 @@ public interface IProblem extends IProblemElement { public void setProperty(Object key, Object value); + /** + * Get custom property + * @param property name + * @return property object + */ public Object getProperty(Object key); public Collection getPropertyKeys(); diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemCategory.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemCategory.java index 45a62a0a294..cd3de3a9645 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemCategory.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemCategory.java @@ -10,20 +10,37 @@ *******************************************************************************/ package org.eclipse.cdt.codan.core.model; +/** + * Problem category + * + */ public interface IProblemCategory extends IProblemElement { + /** + * Category name + */ String getName(); + /** + * Unique category id + * @return id + */ String getId(); - Object[] getChildren(); + /** + * Category children (other categories or problems) + * @return + */ + IProblemElement[] getChildren(); /** + * Find problem by id within children recursively * @param id * @return */ IProblem findProblem(String id); /** + * Find category by id within children recursively * @param id * @return */ diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemElement.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemElement.java index b9f7fb8a378..318f304da0e 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemElement.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemElement.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.codan.core.model; /** - * @author Alena + * Problem category or problem * */ public interface IProblemElement extends Cloneable { diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemProfile.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemProfile.java index 9dc465e9b22..896eb101e7b 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemProfile.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/IProblemProfile.java @@ -11,8 +11,10 @@ package org.eclipse.cdt.codan.core.model; /** - * Problem Profile contains tree of categories and problems. Profiles can have - * different categories and different problems set, problems with the same id + * Problem Profile contains tree of categories and problems. For user profile is quick way + * to switch between problems sets depends on task he is doing (i.e. find real bugs, vs doing code style report) + * User can set different profiles in different projects. + * Profiles can have different categories and different problems set, problems with the same id * can have different severities/enablement in different profiles. To obtain * profile use class {@link CheckersRegisry#getResourceProfile, * CheckersRegisry#getDefaultProfile() or CheckersRegisry#getWorkspaceProfile()} diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/ProblemProfile.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/ProblemProfile.java deleted file mode 100644 index ae90e76c8d9..00000000000 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/ProblemProfile.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Alena Laskavaia - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Alena Laskavaia - initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.codan.core.model; - -import java.util.ArrayList; -import java.util.Collection; - -import org.eclipse.cdt.codan.internal.core.model.CodanProblemCategory; - -/** - * @author Alena - * - */ -public class ProblemProfile implements IProblemProfile, Cloneable { - private IProblemCategory rootCategory = new CodanProblemCategory("root", - "root"); - - /* - * (non-Javadoc) - * - * @see - * org.eclipse.cdt.codan.core.model.IProblemProfile#getProblem(java.lang - * .String) - */ - public IProblem findProblem(String id) { - return getRoot().findProblem(id); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.codan.core.model.IProblemProfile#getProblems() - */ - public IProblem[] getProblems() { - Collection problems = new ArrayList(); - collectProblems(getRoot(), problems); - return problems.toArray(new IProblem[problems.size()]); - } - - /** - * @param root - * @param problems - */ - protected void collectProblems(IProblemCategory parent, - Collection problems) { - Object[] children = parent.getChildren(); - for (Object object : children) { - if (object instanceof IProblemCategory) { - IProblemCategory cat = (IProblemCategory) object; - collectProblems(cat, problems); - } else if (object instanceof IProblem) { - problems.add((IProblem) object); - } - } - } - - public IProblemCategory getRoot() { - return rootCategory; - } - - public void addProblem(IProblem p, IProblemCategory cat) { - if (cat == null) - cat = getRoot(); - ((CodanProblemCategory) cat).addChild(p); - } - - public IProblemCategory findCategory(String id) { - return getRoot().findCategory(id); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#clone() - */ - @Override - public Object clone() { - try { - ProblemProfile clone = (ProblemProfile) super.clone(); - clone.rootCategory = (IProblemCategory) ((CodanProblemCategory) this.rootCategory) - .clone(); - return clone; - } catch (CloneNotSupportedException e) { - return this; - } - } - - /** - * @param p - * @param cat - */ - public void addCategory(IProblemCategory category, IProblemCategory parent) { - ((CodanProblemCategory) parent).addChild(category); - } -} diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CheckersRegisry.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CheckersRegisry.java index 82ace802583..64141f31882 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CheckersRegisry.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CheckersRegisry.java @@ -16,16 +16,15 @@ import java.util.HashMap; import java.util.Iterator; import org.eclipse.cdt.codan.core.CodanCorePlugin; -import org.eclipse.cdt.codan.core.CodanPreferencesLoader; import org.eclipse.cdt.codan.core.PreferenceConstants; import org.eclipse.cdt.codan.core.model.IChecker; import org.eclipse.cdt.codan.core.model.ICheckersRegistry; import org.eclipse.cdt.codan.core.model.IProblem; import org.eclipse.cdt.codan.core.model.IProblemCategory; import org.eclipse.cdt.codan.core.model.IProblemProfile; -import org.eclipse.cdt.codan.core.model.ProblemProfile; import org.eclipse.cdt.codan.internal.core.model.CodanProblem; import org.eclipse.cdt.codan.internal.core.model.CodanProblemCategory; +import org.eclipse.cdt.codan.internal.core.model.ProblemProfile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ProjectScope; diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanPreferencesLoader.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanPreferencesLoader.java new file mode 100644 index 00000000000..bafff9a23cb --- /dev/null +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanPreferencesLoader.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright (c) 2009 Alena Laskavaia + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alena Laskavaia - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.codan.internal.core; + +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.cdt.codan.internal.core.model.CodanProblem; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; + +/** + * @author Alena + * + */ +public class CodanPreferencesLoader { + private IProblemProfile baseModel; + + /** + * @param workspaceProfile + */ + public CodanPreferencesLoader(IProblemProfile profile) { + setInput(profile); + } + + /** + * + */ + public CodanPreferencesLoader() { + } + + public void setInput(Object model) { + baseModel = (IProblemProfile) model; + } + + /** + * @return + */ + public IProblem[] getProblems() { + IProblem[] problems = baseModel.getProblems(); + return problems; + } + + /** + * @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(sevs); + } catch (RuntimeException e) { + sev = CodanSeverity.Warning; + } + ((CodanProblem) prob).setSeverity(sev); + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return getInput().toString(); + } + + /** + * @return + */ + public IProblemProfile getInput() { + return baseModel; + } + + /** + * @param id + * @return + */ + public String getProperty(String id) { + IProblem prob = baseModel.findProblem(id); + if (!(prob instanceof CodanProblem)) + return null; + String enabled = prob.isEnabled() ? "" : "-"; + String severity = prob.getSeverity().toString(); + String res = enabled + severity; + return res; + } + + /** + * @param storePreferences + */ + public void load(IEclipsePreferences storePreferences) { + IProblem[] probs = getProblems(); + for (int i = 0; i < probs.length; i++) { + String id = probs[i].getId(); + String s = storePreferences.get(id, null); + if (s != null) { + setProperty(id, s); + } + } + } +} diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemCategory.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemCategory.java index 289e0fdec02..fc6348034e1 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemCategory.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/CodanProblemCategory.java @@ -40,8 +40,8 @@ public class CodanProblemCategory implements IProblemCategory, Cloneable { return name; } - public Object[] getChildren() { - return list.toArray(); + public IProblemElement[] getChildren() { + return (IProblemElement[]) list.toArray(new IProblemElement[list.size()]); } public void addChild(IProblemElement p) { diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/ProblemProfile.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/ProblemProfile.java new file mode 100644 index 00000000000..d2330f194f0 --- /dev/null +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/model/ProblemProfile.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2009 Alena Laskavaia + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alena Laskavaia - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.codan.internal.core.model; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.cdt.codan.core.model.IProblem; +import org.eclipse.cdt.codan.core.model.IProblemCategory; +import org.eclipse.cdt.codan.core.model.IProblemProfile; + +/** + * @author Alena + * + */ +public class ProblemProfile implements IProblemProfile, Cloneable { + private IProblemCategory rootCategory = new CodanProblemCategory("root", + "root"); + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.cdt.codan.core.model.IProblemProfile#getProblem(java.lang + * .String) + */ + public IProblem findProblem(String id) { + return getRoot().findProblem(id); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.cdt.codan.core.model.IProblemProfile#getProblems() + */ + public IProblem[] getProblems() { + Collection problems = new ArrayList(); + collectProblems(getRoot(), problems); + return problems.toArray(new IProblem[problems.size()]); + } + + /** + * @param root + * @param problems + */ + protected void collectProblems(IProblemCategory parent, + Collection problems) { + Object[] children = parent.getChildren(); + for (Object object : children) { + if (object instanceof IProblemCategory) { + IProblemCategory cat = (IProblemCategory) object; + collectProblems(cat, problems); + } else if (object instanceof IProblem) { + problems.add((IProblem) object); + } + } + } + + public IProblemCategory getRoot() { + return rootCategory; + } + + public void addProblem(IProblem p, IProblemCategory cat) { + if (cat == null) + cat = getRoot(); + ((CodanProblemCategory) cat).addChild(p); + } + + public IProblemCategory findCategory(String id) { + return getRoot().findCategory(id); + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#clone() + */ + @Override + public Object clone() { + try { + ProblemProfile clone = (ProblemProfile) super.clone(); + clone.rootCategory = (IProblemCategory) ((CodanProblemCategory) this.rootCategory) + .clone(); + return clone; + } catch (CloneNotSupportedException e) { + return this; + } + } + + /** + * @param p + * @param cat + */ + public void addCategory(IProblemCategory category, IProblemCategory parent) { + ((CodanProblemCategory) parent).addChild(category); + } +} diff --git a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java index 6ba82c63e36..26e433e5e9d 100644 --- a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java +++ b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java @@ -10,12 +10,12 @@ *******************************************************************************/ package org.eclipse.cdt.codan.internal.ui.preferences; -import org.eclipse.cdt.codan.core.CodanPreferencesLoader; import org.eclipse.cdt.codan.core.PreferenceConstants; import org.eclipse.cdt.codan.core.model.CodanSeverity; import org.eclipse.cdt.codan.core.model.IProblem; import org.eclipse.cdt.codan.core.model.IProblemCategory; import org.eclipse.cdt.codan.core.model.IProblemProfile; +import org.eclipse.cdt.codan.internal.core.CodanPreferencesLoader; import org.eclipse.jface.viewers.BaseLabelProvider; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckStateChangedEvent; -- cgit v1.2.3