From 225332e8f1f1bf0d901f7c7581333913ea8ed07e Mon Sep 17 00:00:00 2001 From: Brian Remedios Date: Fri, 23 Sep 2011 05:01:27 +0000 Subject: [PATCH] Updated list of report renderers, NPE bugfix git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7303 51baf565-9d33-0410-a72c-fc3788e3496d --- .../pmd/eclipse/ui/reports/ReportManager.java | 2 ++ .../pmd/eclipse/ui/views/cpd2/CPDView2.java | 28 +++++++++++++++++-- .../views/cpd2/CPDViewTooltipListener2.java | 1 + 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/reports/ReportManager.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/reports/ReportManager.java index 8f37c00394..e4c73e37f3 100644 --- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/reports/ReportManager.java +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/reports/ReportManager.java @@ -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), diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDView2.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDView2.java index 1c3cca986d..92208dd169 100644 --- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDView2.java +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDView2.java @@ -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 asList(Iterator 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 sourceLines = new ArrayList(); @@ -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; diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDViewTooltipListener2.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDViewTooltipListener2.java index 4b5bbde39c..973afd6b8e 100644 --- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDViewTooltipListener2.java +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/views/cpd2/CPDViewTooltipListener2.java @@ -138,6 +138,7 @@ public class CPDViewTooltipListener2 implements Listener { for (int i=0; i rightEdge-classWidth && // right of the start? location.x < rightEdge) { // left of the end?