1313
1414import org .eclipse .core .resources .IMarker ;
1515import org .eclipse .core .runtime .CoreException ;
16+ import org .eclipse .core .runtime .preferences .InstanceScope ;
1617import org .eclipse .jface .viewers .Viewer ;
1718import org .eclipse .jface .viewers .ViewerFilter ;
19+ import org .eclipse .ui .preferences .ScopedPreferenceStore ;
1820
1921import net .sourceforge .pmd .RulePriority ;
2022import net .sourceforge .pmd .eclipse .plugin .PMDPlugin ;
@@ -44,6 +46,8 @@ public class PriorityFilter extends ViewerFilter {
4446
4547 private Set <PriorityFilterChangeListener > listeners = new CopyOnWriteArraySet <>();
4648
49+ private final ScopedPreferenceStore editorsPreferences = new ScopedPreferenceStore (InstanceScope .INSTANCE , "org.eclipse.ui.editors" );
50+
4751 /**
4852 * Constructor
4953 *
@@ -68,10 +72,13 @@ public final void initialize() {
6872 @ Override
6973 public void priorityEnabled (RulePriority priority ) {
7074 saveToPreferenceStore ();
75+ showMarkers (priority );
7176 }
77+
7278 @ Override
7379 public void priorityDisabled (RulePriority priority ) {
7480 saveToPreferenceStore ();
81+ hideMarkers (priority );
7582 }
7683 });
7784 loadFromPreferenceStore ();
@@ -95,6 +102,24 @@ private void loadFromPreferenceStore() {
95102 }
96103 }
97104
105+ private String getMarkerKeyVerticalRuler (RulePriority priority ) {
106+ return "net.sourceforge.pmd.eclipse.plugin.annotation.prio" + priority .getPriority () + ".verticalruler" ;
107+ }
108+
109+ private String getMarkerKeyOverviewRuler (RulePriority priority ) {
110+ return "net.sourceforge.pmd.eclipse.plugin.annotation.prio" + priority .getPriority () + ".overviewruler" ;
111+ }
112+
113+ private void showMarkers (RulePriority priority ) {
114+ editorsPreferences .setValue (getMarkerKeyVerticalRuler (priority ), true );
115+ editorsPreferences .setValue (getMarkerKeyOverviewRuler (priority ), true );
116+ }
117+
118+ private void hideMarkers (RulePriority priority ) {
119+ editorsPreferences .setValue (getMarkerKeyVerticalRuler (priority ), false );
120+ editorsPreferences .setValue (getMarkerKeyOverviewRuler (priority ), false );
121+ }
122+
98123 /*
99124 * @see
100125 * org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.
@@ -301,6 +326,7 @@ private void notifyPriorityDisabled(RulePriority priority) {
301326
302327 public interface PriorityFilterChangeListener {
303328 void priorityEnabled (RulePriority priority );
329+
304330 void priorityDisabled (RulePriority priority );
305331 }
306332}
0 commit comments