Revision: 7056
http://pmd.svn.sourceforge.net/pmd/?rev=7056&view=rev
Author: hooperbloob
Date: 2010-01-04 07:59:57 +0000 (Mon, 04 Jan 2010)
Log Message:
-----------
Added new XPath filter column that renders coloured circle values.
Modified Paths:
--------------
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/PMDUiConstants.java
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/nls/StringKeys.java
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/ImageColumnDescriptor.java
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/PMDPreferencePage.java
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/panelmanagers/ExclusionPanelManager.java
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/Util.java
Added Paths:
-----------
trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png
Added: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png
===================================================================
(Binary files differ)
Property changes on: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/icons/filter_x.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/messages.properties 2010-01-04 07:59:57 UTC (rev 7056)
@@ -60,8 +60,10 @@
preference.ruleset.column.rule_type.tooltip = Rule type:\n X = XPath\n D = dataflow\n T = type resolving
preference.ruleset.column.minimum_version = Min ver
preference.ruleset.column.minimum_version.tooltip = Minimum applicable version of the target language
-preference.ruleset.column.filters = Filters
-preference.ruleset.column.filters.tooltip = Filters by derived color code
+preference.ruleset.column.filters.regex = Regex filter
+preference.ruleset.column.filters.regex.tooltip = Regular expression filters
+preference.ruleset.column.filters.xpath = XPath filter
+preference.ruleset.column.filters.xpath.tooltip = XPath exclusion filters
preference.ruleset.column.since = Since
preference.ruleset.column.since.tooltip = Incorporation within PMD
preference.ruleset.column.priority = Priority
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/PMDUiConstants.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/PMDUiConstants.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/PMDUiConstants.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -77,6 +77,7 @@
public static final String ICON_LABEL_ARRDN = "icons/lab_arrdn.gif";
public static final String ICON_FILTER = "icons/filter.gif";
+ public static final String ICON_FILTER_X = "icons/filter_x.png";
public static final String ICON_PROJECT = "icons/obj_project.gif";
public static final String ICON_PACKAGE = "icons/obj_package.gif";
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/nls/StringKeys.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/nls/StringKeys.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/nls/StringKeys.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -92,7 +92,8 @@
public static final String MSGKEY_PREF_RULESET_COLUMN_RULE_TYPE = "preference.ruleset.column.rule_type";
public static final String MSGKEY_PREF_RULESET_COLUMN_EXAMPLE_CNT = "preference.ruleset.column.example_count";
public static final String MSGKEY_PREF_RULESET_COLUMN_SINCE = "preference.ruleset.column.since";
- public static final String MSGKEY_PREF_RULESET_COLUMN_FILTERS = "preference.ruleset.column.filters";
+ public static final String MSGKEY_PREF_RULESET_COLUMN_FILTERS_REGEX = "preference.ruleset.column.filters.regex";
+ public static final String MSGKEY_PREF_RULESET_COLUMN_FILTERS_XPATH = "preference.ruleset.column.filters.xpath";
public static final String MSGKEY_PREF_RULESET_COLUMN_MIN_VER = "preference.ruleset.column.minimum_version";
public static final String MSGKEY_PREF_RULESET_COLUMN_PRIORITY = "preference.ruleset.column.priority";
public static final String MSGKEY_PREF_RULESET_COLUMN_PROPERTIES = "preference.ruleset.column.properties";
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/ImageColumnDescriptor.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/ImageColumnDescriptor.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/ImageColumnDescriptor.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -24,7 +24,8 @@
private final String imagePath;
private final CellPainterBuilder painterBuilder;
- public static final RuleColumnDescriptor filterExpression = new ImageColumnDescriptor(StringKeys.MSGKEY_PREF_RULESET_COLUMN_FILTERS, SWT.LEFT, 25, RuleFieldAccessor.violationRegex, false, PMDUiConstants.ICON_FILTER, Util.regexBuilderFor(16, 16));
+ public static final RuleColumnDescriptor filterViolationRegex = new ImageColumnDescriptor(StringKeys.MSGKEY_PREF_RULESET_COLUMN_FILTERS_REGEX, SWT.LEFT, 25, RuleFieldAccessor.violationRegex, false, PMDUiConstants.ICON_FILTER, Util.textAsColorShapeFor(16, 16, Util.shape.square));
+ public static final RuleColumnDescriptor filterViolationXPath = new ImageColumnDescriptor(StringKeys.MSGKEY_PREF_RULESET_COLUMN_FILTERS_XPATH, SWT.LEFT, 25, RuleFieldAccessor.violationXPath, false, PMDUiConstants.ICON_FILTER_X, Util.textAsColorShapeFor(16, 16, Util.shape.circle));
public ImageColumnDescriptor(String labelKey, int theAlignment, int theWidth, RuleFieldAccessor theAccessor, boolean resizableFlag, String theImagePath, CellPainterBuilder thePainterBuilder) {
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/PMDPreferencePage.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/PMDPreferencePage.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/br/PMDPreferencePage.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -105,7 +105,8 @@
TextColumnDescriptor.ruleType,
TextColumnDescriptor.minLangVers,
TextColumnDescriptor.language,
- ImageColumnDescriptor.filterExpression, // regex text -> compact color squares (for comparison)
+ ImageColumnDescriptor.filterViolationRegex, // regex text -> compact color squares (for comparison)
+ ImageColumnDescriptor.filterViolationXPath, // xpath text -> compact color circles (for comparison)
TextColumnDescriptor.properties,
};
@@ -116,7 +117,7 @@
{ TextColumnDescriptor.priorityName, StringKeys.MSGKEY_PREF_RULESET_COLUMN_PRIORITY },
{ TextColumnDescriptor.ruleType, StringKeys.MSGKEY_PREF_RULESET_COLUMN_RULE_TYPE },
{ TextColumnDescriptor.language, StringKeys.MSGKEY_PREF_RULESET_COLUMN_LANGUAGE },
- { ImageColumnDescriptor.filterExpression, StringKeys.MSGKEY_PREF_RULESET_GROUPING_REGEX },
+ { ImageColumnDescriptor.filterViolationRegex, StringKeys.MSGKEY_PREF_RULESET_GROUPING_REGEX },
{ null, StringKeys.MSGKEY_PREF_RULESET_GROUPING_NONE }
};
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/panelmanagers/ExclusionPanelManager.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/panelmanagers/ExclusionPanelManager.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/panelmanagers/ExclusionPanelManager.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -1,8 +1,10 @@
package net.sourceforge.pmd.eclipse.ui.preferences.panelmanagers;
import net.sourceforge.pmd.Rule;
+import net.sourceforge.pmd.eclipse.ui.PMDUiConstants;
import net.sourceforge.pmd.eclipse.ui.preferences.br.ValueChangeListener;
import net.sourceforge.pmd.eclipse.util.ColourManager;
+import net.sourceforge.pmd.eclipse.util.ResourceManager;
import net.sourceforge.pmd.lang.rule.properties.StringProperty;
import net.sourceforge.pmd.util.StringUtil;
@@ -115,6 +117,8 @@
gridData.grabExcessHorizontalSpace = true;
labelA.setLayoutData(gridData);
+ // labelAIcon.setImage(ResourceManager.imageFor(PMDUiConstants.ICON_FILTER));
+
excludeColour = newColourPanel(panel, colourBoxLabel);
excludeWidget = newTextField(panel);
@@ -131,6 +135,8 @@
gridData.horizontalSpan = 1;
labelB.setLayoutData(gridData);
+ // labelAIcon.setImage(ResourceManager.imageFor(PMDUiConstants.ICON_FILTER_X));
+
xPathColour = newColourPanel(panel, colourBoxLabel);
gridData = new GridData(GridData.FILL_BOTH);
Modified: trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/Util.java
===================================================================
--- trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/Util.java 2010-01-04 06:44:34 UTC (rev 7055)
+++ trunk/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/Util.java 2010-01-04 07:59:57 UTC (rev 7056)
@@ -180,8 +180,9 @@
return original == null ? "" : original.trim();
}
+ public static enum shape { square, circle };
- public static CellPainterBuilder regexBuilderFor(final int width, final int height) {
+ public static CellPainterBuilder textAsColorShapeFor(final int width, final int height, final shape shapeId) {
return new CellPainterBuilder() {
@@ -215,9 +216,19 @@
Color clr = colorManagerFor(event.display).colourFor(text);
event.gc.setBackground(clr);
- event.gc.fillRectangle(event.x+1, event.y+2, width, height); // fill it
- event.gc.drawRectangle(event.x+1, event.y+2, width, height); // then the border on top
+ switch (shapeId) {
+ case square: {
+ event.gc.fillRectangle(event.x+1, event.y+2, width, height); // fill it
+ event.gc.drawRectangle(event.x+1, event.y+2, width, height); // then the border on top
+ break;
+ }
+ case circle: {
+ event.gc.fillArc(event.x+1, event.y+2, width, height, 0, 360*64); // fill it
+ event.gc.drawArc(event.x+1, event.y+2, width, height, 0, 360*64); // then the border on top
+ }
+ }
+
event.gc.setBackground(original);
}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|