summaryrefslogtreecommitdiffstats
path: root/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java')
-rw-r--r--org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java100
1 files changed, 65 insertions, 35 deletions
diff --git a/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java b/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java
index 26e433e..4547028 100644
--- a/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java
+++ b/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/preferences/ProblemsTreeEditor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009 Alena Laskavaia
+ * Copyright (c) 2009, 2010 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
@@ -14,24 +14,27 @@ 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.IProblemElement;
import org.eclipse.cdt.codan.core.model.IProblemProfile;
+import org.eclipse.cdt.codan.core.model.IProblemWorkingCopy;
import org.eclipse.cdt.codan.internal.core.CodanPreferencesLoader;
-import org.eclipse.jface.viewers.BaseLabelProvider;
+import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ICheckStateProvider;
import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
public class ProblemsTreeEditor extends CheckedTreeEditor {
private CodanPreferencesLoader codanPreferencesLoader = new CodanPreferencesLoader();
@@ -136,39 +139,26 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
}
}
+ @Override
public void checkStateChanged(CheckStateChangedEvent event) {
Object element = event.getElement();
- if (element instanceof IProblem) {
- ((IProblem) element).setEnabled(event.getChecked());
- }
- }
-
- class ProblemsLabelProvider extends BaseLabelProvider implements
- IBaseLabelProvider, ITableLabelProvider {
- public Image getColumnImage(Object element, int columnIndex) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getColumnText(Object element, int columnIndex) {
- if (element instanceof IProblem) {
- IProblem p = (IProblem) element;
- if (columnIndex == 0)
- return p.getName();
- if (columnIndex == 1)
- return p.getSeverity().toString();
- }
- if (element instanceof IProblemCategory) {
- IProblemCategory p = (IProblemCategory) element;
- if (columnIndex == 0)
- return p.getName();
+ if (element instanceof IProblemWorkingCopy) {
+ ((IProblemWorkingCopy) element).setEnabled(event.getChecked());
+ } else if (element instanceof IProblemCategory) {
+ IProblemCategory cat = (IProblemCategory) element;
+ IProblemElement[] children = cat.getChildren();
+ for (int i = 0; i < children.length; i++) {
+ IProblemElement pe = children[i];
+ checkStateChanged(new CheckStateChangedEvent(getTreeViewer(),
+ pe, event.getChecked()));
}
- return null;
}
+ getTreeViewer().refresh();
}
public ProblemsTreeEditor(Composite parent, IProblemProfile profile) {
- super(PreferenceConstants.P_PROBLEMS, "Problems", parent);
+ super(PreferenceConstants.P_PROBLEMS,
+ CodanUIMessages.ProblemsTreeEditor_Problems, parent);
setEmptySelectionAllowed(true);
getTreeViewer().getTree().setHeaderVisible(true);
// getTreeViewer().getTree().
@@ -178,8 +168,10 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
TreeViewerColumn column1 = new TreeViewerColumn(getTreeViewer(),
SWT.NONE);
column1.getColumn().setWidth(300);
- column1.getColumn().setText("Name");
+ column1.getColumn().setText(
+ CodanUIMessages.ProblemsTreeEditor_NameColumn);
column1.setLabelProvider(new ColumnLabelProvider() {
+ @Override
public String getText(Object element) {
if (element instanceof IProblem) {
IProblem p = (IProblem) element;
@@ -196,8 +188,31 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
TreeViewerColumn column2 = new TreeViewerColumn(getTreeViewer(),
SWT.NONE);
column2.getColumn().setWidth(100);
- column2.getColumn().setText("Severity");
+ column2.getColumn().setText(
+ CodanUIMessages.ProblemsTreeEditor_SeverityColumn);
column2.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ public Image getImage(Object element) {
+ final ISharedImages images = PlatformUI.getWorkbench()
+ .getSharedImages();
+ if (element instanceof IProblem) {
+ IProblem p = (IProblem) element;
+ switch (p.getSeverity().intValue()) {
+ case IMarker.SEVERITY_INFO:
+ return images
+ .getImage(ISharedImages.IMG_OBJS_INFO_TSK);
+ case IMarker.SEVERITY_WARNING:
+ return images
+ .getImage(ISharedImages.IMG_OBJS_WARN_TSK);
+ case IMarker.SEVERITY_ERROR:
+ return images
+ .getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
+ }
+ }
+ return null;
+ }
+
+ @Override
public String getText(Object element) {
if (element instanceof IProblem) {
IProblem p = (IProblem) element;
@@ -207,23 +222,27 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
}
});
column2.setEditingSupport(new EditingSupport(getTreeViewer()) {
+ @Override
protected boolean canEdit(Object element) {
return element instanceof IProblem;
}
+ @Override
protected CellEditor getCellEditor(Object element) {
return new ComboBoxCellEditor(getTreeViewer().getTree(),
CodanSeverity.stringValues());
}
+ @Override
protected Object getValue(Object element) {
return ((IProblem) element).getSeverity().intValue();
}
+ @Override
protected void setValue(Object element, Object value) {
int index = ((Integer) value).intValue();
CodanSeverity val = CodanSeverity.values()[index];
- ((IProblem) element).setSeverity(val);
+ ((IProblemWorkingCopy) element).setSeverity(val);
getTreeViewer().update(element, null);
}
});
@@ -245,6 +264,9 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
for (int i = 0; i < probs.length; i++) {
String id = probs[i].getId();
String s = getPreferenceStore().getString(id);
+ if (s == null || s.length() == 0) {
+ s = codanPreferencesLoader.getProperty(id);
+ }
codanPreferencesLoader.setProperty(id, s);
}
getViewer().setInput(codanPreferencesLoader.getInput());
@@ -258,6 +280,9 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
for (int i = 0; i < probs.length; i++) {
String id = probs[i].getId();
String s = getPreferenceStore().getDefaultString(id);
+ if (s == null || s.length() == 0) {
+ s = codanPreferencesLoader.getProperty(id);
+ }
codanPreferencesLoader.setProperty(id, s);
}
getViewer().setInput(codanPreferencesLoader.getInput());
@@ -272,12 +297,17 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
*/
@Override
protected void doStore() {
- codanPreferencesLoader.setInput(getViewer().getInput());
+ codanPreferencesLoader.setInput((IProblemProfile) getViewer()
+ .getInput());
IProblem[] probs = codanPreferencesLoader.getProblems();
for (int i = 0; i < probs.length; i++) {
String id = probs[i].getId();
String s = codanPreferencesLoader.getProperty(id);
getPreferenceStore().setValue(id, s);
+ String params = codanPreferencesLoader.getPreferencesString(id);
+ if (params != null)
+ getPreferenceStore().setValue(
+ codanPreferencesLoader.getPreferencesKey(id), params);
}
}
@@ -301,6 +331,6 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
*/
@Override
protected String modelToString(Object model) {
- return "";
+ return ""; //$NON-NLS-1$
}
}