1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-14 19:55:45 +02:00

- added cell editor to pick severity of the problem

This commit is contained in:
Alena Laskavaia 2009-04-22 01:26:58 +00:00
parent 19354a7c8d
commit 724860a02b
3 changed files with 78 additions and 16 deletions

View file

@ -24,4 +24,17 @@ public enum CodanSeverity {
public int intValue() { public int intValue() {
return value; return value;
} }
/**
* @return
*/
public static String[] stringValues() {
CodanSeverity[] values = values();
String[] svalues = new String[values.length];
for (int i = 0; i < values.length; i++) {
CodanSeverity sev = values[i];
svalues[i] = sev.toString();
}
return svalues;
}
} }

View file

@ -215,7 +215,7 @@ public abstract class CheckedTreeEditor extends FieldEditor implements
if (table == null) { if (table == null) {
listParent = parent; listParent = parent;
treeViewer = new CheckboxTreeViewer(parent, SWT.BORDER | SWT.MULTI treeViewer = new CheckboxTreeViewer(parent, SWT.BORDER | SWT.MULTI
| SWT.V_SCROLL | SWT.H_SCROLL); | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
table = treeViewer.getTree(); table = treeViewer.getTree();
table.setFont(parent.getFont()); table.setFont(parent.getFont());
treeViewer.addCheckStateListener(this); treeViewer.addCheckStateListener(this);

View file

@ -13,21 +13,26 @@ package org.eclipse.cdt.codan.internal.ui.preferences;
import org.eclipse.cdt.codan.core.PreferenceConstants; import org.eclipse.cdt.codan.core.PreferenceConstants;
import org.eclipse.cdt.codan.core.builder.CodanPreferencesLoader; import org.eclipse.cdt.codan.core.builder.CodanPreferencesLoader;
import org.eclipse.cdt.codan.core.model.CodanProblem; 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.IProblem;
import org.eclipse.cdt.codan.core.model.IProblemCategory; import org.eclipse.cdt.codan.core.model.IProblemCategory;
import org.eclipse.cdt.codan.core.model.IProblemProfile; import org.eclipse.cdt.codan.core.model.IProblemProfile;
import org.eclipse.jface.viewers.BaseLabelProvider; import org.eclipse.jface.viewers.BaseLabelProvider;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckStateChangedEvent; 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.IBaseLabelProvider;
import org.eclipse.jface.viewers.ICheckStateProvider; import org.eclipse.jface.viewers.ICheckStateProvider;
import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TreeColumn;
public class ProblemsTreeEditor extends CheckedTreeEditor { public class ProblemsTreeEditor extends CheckedTreeEditor {
private CodanPreferencesLoader codanPreferencesLoader = new CodanPreferencesLoader(); private CodanPreferencesLoader codanPreferencesLoader = new CodanPreferencesLoader();
@ -132,6 +137,13 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
} }
} }
public void checkStateChanged(CheckStateChangedEvent event) {
Object element = event.getElement();
if (element instanceof CodanProblem) {
((CodanProblem) element).setEnabled(event.getChecked());
}
}
class ProblemsLabelProvider extends BaseLabelProvider implements class ProblemsLabelProvider extends BaseLabelProvider implements
IBaseLabelProvider, ITableLabelProvider { IBaseLabelProvider, ITableLabelProvider {
public Image getColumnImage(Object element, int columnIndex) { public Image getColumnImage(Object element, int columnIndex) {
@ -156,29 +168,66 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
} }
} }
public void checkStateChanged(CheckStateChangedEvent event) {
Object element = event.getElement();
if (element instanceof CodanProblem) {
((CodanProblem) element).setEnabled(event.getChecked());
}
}
public ProblemsTreeEditor(Composite parent, IProblemProfile profile) { public ProblemsTreeEditor(Composite parent, IProblemProfile profile) {
super(PreferenceConstants.P_PROBLEMS, "Problems", parent); super(PreferenceConstants.P_PROBLEMS, "Problems", parent);
setEmptySelectionAllowed(true); setEmptySelectionAllowed(true);
getTreeViewer().getTree().setHeaderVisible(true); getTreeViewer().getTree().setHeaderVisible(true);
// getTreeViewer().getTree(). // getTreeViewer().getTree().
getTreeViewer().setContentProvider(new ProblemsContentProvider()); getTreeViewer().setContentProvider(new ProblemsContentProvider());
getTreeViewer().setLabelProvider(new ProblemsLabelProvider());
getTreeViewer().setCheckStateProvider(new ProblemsCheckStateProvider()); getTreeViewer().setCheckStateProvider(new ProblemsCheckStateProvider());
// column Name // column Name
TreeColumn column = new TreeColumn(getTreeViewer().getTree(), SWT.NONE); TreeViewerColumn column1 = new TreeViewerColumn(getTreeViewer(),
column.setWidth(300); SWT.NONE);
column.setText("Name"); column1.getColumn().setWidth(300);
column1.getColumn().setText("Name");
column1.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
if (element instanceof IProblem) {
IProblem p = (IProblem) element;
return p.getName();
}
if (element instanceof IProblemCategory) {
IProblemCategory p = (IProblemCategory) element;
return p.getName();
}
return null;
}
});
// column Severity // column Severity
TreeColumn column2 = new TreeColumn(getTreeViewer().getTree(), SWT.NONE); TreeViewerColumn column2 = new TreeViewerColumn(getTreeViewer(),
column2.setWidth(100); SWT.NONE);
column2.setText("Severity"); column2.getColumn().setWidth(100);
column2.getColumn().setText("Severity");
column2.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
if (element instanceof IProblem) {
IProblem p = (IProblem) element;
return p.getSeverity().toString();
}
return null;
}
});
column2.setEditingSupport(new EditingSupport(getTreeViewer()) {
protected boolean canEdit(Object element) {
return element instanceof CodanProblem;
}
protected CellEditor getCellEditor(Object element) {
return new ComboBoxCellEditor(getTreeViewer().getTree(),
CodanSeverity.stringValues());
}
protected Object getValue(Object element) {
return ((CodanProblem) element).getSeverity().intValue();
}
protected void setValue(Object element, Object value) {
int index = ((Integer) value).intValue();
CodanSeverity val = CodanSeverity.values()[index];
((CodanProblem) element).setSeverity(val);
getTreeViewer().update(element, null);
}
});
codanPreferencesLoader.setInput(profile); codanPreferencesLoader.setInput(profile);
getViewer().setInput(profile); getViewer().setInput(profile);
} }