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:
@ -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),
|
||||
|
@ -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;
|
||||
|
@ -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?
|
||||
|
Reference in New Issue
Block a user