Updated list of report renderers, NPE bugfix

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7303 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Brian Remedios
2011-09-23 05:01:27 +00:00
parent 28e8c16e6f
commit 225332e8f1
3 changed files with 29 additions and 2 deletions

View File

@ -10,6 +10,7 @@ import net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences;
import net.sourceforge.pmd.renderers.CSVRenderer;
import net.sourceforge.pmd.renderers.HTMLRenderer;
import net.sourceforge.pmd.renderers.Renderer;
import net.sourceforge.pmd.renderers.SummaryHTMLRenderer;
import net.sourceforge.pmd.renderers.TextRenderer;
import net.sourceforge.pmd.renderers.VBHTMLRenderer;
import net.sourceforge.pmd.renderers.XMLRenderer;
@ -36,6 +37,7 @@ public class ReportManager {
return new Renderer[] {
new HTMLRenderer(props),
new SummaryHTMLRenderer(props),
new CSVRenderer(props),
new XMLRenderer(props),
new TextRenderer(props),

View File

@ -14,14 +14,18 @@ import net.sourceforge.pmd.eclipse.runtime.PMDRuntimeConstants;
import net.sourceforge.pmd.eclipse.ui.nls.StringKeys;
import net.sourceforge.pmd.util.StringUtil;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.TreeNodeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
@ -58,6 +62,7 @@ public class CPDView2 extends ViewPart implements IPropertyListener {
private static final int SpanColumnWidth = 50;
private static final int MAX_MATCHES = 100;
private static final int xGap = 6;
private static final String TabEquivalent = " "; // tab char == 4 spaces
public static final int SourceColumnIdx = 1;
private static List<Match> asList(Iterator<Match> matchIter) {
@ -86,7 +91,7 @@ public class CPDView2 extends ViewPart implements IPropertyListener {
public static String[] sourceLinesFrom(Match match, boolean trimLeadingWhitespace) {
final String text = match.getSourceCodeSlice().replaceAll("\t", " ");
final String text = match.getSourceCodeSlice().replaceAll("\t", TabEquivalent);
final StringTokenizer lines = new StringTokenizer(text, "\n");
List<String> sourceLines = new ArrayList<String>();
@ -167,7 +172,8 @@ public class CPDView2 extends ViewPart implements IPropertyListener {
treeViewer.setContentProvider(contentProvider);
treeViewer.setLabelProvider(labelProvider);
addDeleteListener(treeViewer.getControl());
createColumns(tree);
CPDViewTooltipListener2 tooltipListener = new CPDViewTooltipListener2(this);
@ -180,6 +186,24 @@ public class CPDView2 extends ViewPart implements IPropertyListener {
packageColor = disp.getSystemColor(SWT.COLOR_GRAY);
}
protected void addDeleteListener(Control control) {
control.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent ev) {
if (ev.character == SWT.DEL) {
removeSelectedItems();
}
}
});
}
// TODO fix - not deleting 'model' elements?
private void removeSelectedItems() {
IStructuredSelection selection = (IStructuredSelection)treeViewer.getSelection();
Object[] items = selection.toArray();
treeViewer.remove(items);
}
public int inColumn(Point point) {
if (columnWidths == null) return -1;

View File

@ -138,6 +138,7 @@ public class CPDViewTooltipListener2 implements Listener {
for (int i=0; i<names.length; i++) {
int rightEdge = colWidth - (cellWidth * i);
int[] widths = view.widthsFor(names[i]);
if (widths == null) continue;
int classWidth = widths[1];
if (location.x > rightEdge-classWidth && // right of the start?
location.x < rightEdge) { // left of the end?