Skip to content

Commit 927818b

Browse files
committed
Fixes #83: "Restore defaults" button in PMD prefences is always deactivated
1 parent 4260ef6 commit 927818b

File tree

5 files changed

+33
-23
lines changed

5 files changed

+33
-23
lines changed

ReleaseNotes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ This is a minor release.
2525
* [#70](https://github.com/pmd/pmd-eclipse-plugin/issues/70): UnsupportedOperationException opening Rule Configuration
2626
* [#76](https://github.com/pmd/pmd-eclipse-plugin/issues/76): Global rule management is saved even if cancelled
2727
* [#78](https://github.com/pmd/pmd-eclipse-plugin/issues/78): Project properties cannot be loaded anymore
28+
* [#83](https://github.com/pmd/pmd-eclipse-plugin/issues/83): "Restore defaults" button in PMD prefences is always deactivated
2829
* [#86](https://github.com/pmd/pmd-eclipse-plugin/issues/86): Add Markers next to Scroll bar
2930
* [#1359](https://sourceforge.net/p/pmd/bugs/1359/): PMD violations in eclipse should be shown on editor by scrollbar
3031

net.sourceforge.pmd.eclipse.plugin/src/main/java/net/sourceforge/pmd/eclipse/runtime/preferences/IPreferencesManager.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ public interface IPreferencesManager {
4545
* Get the configured rule set
4646
*/
4747
RuleSet getRuleSet();
48-
48+
49+
/**
50+
* Gets the default rule set. This means, all rules, that the Plugin is aware of.
51+
*/
52+
RuleSet getDefaultRuleSet();
53+
4954
/**
5055
* Set the rule set and store it in the preferences
5156
*/

net.sourceforge.pmd.eclipse.plugin/src/main/java/net/sourceforge/pmd/eclipse/runtime/preferences/impl/PreferencesManagerImpl.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -565,19 +565,25 @@ private RuleSet getRuleSetFromStateLocation() {
565565

566566
// Finally, build a default ruleset
567567
if (preferredRuleSet == null) {
568-
preferredRuleSet = RuleSetUtil.newEmpty(RuleSetUtil.DEFAULT_RULESET_NAME,
569-
RuleSetUtil.DEFAULT_RULESET_DESCRIPTION);
570-
571-
IRuleSetManager ruleSetManager = PMDPlugin.getDefault().getRuleSetManager();
572-
for (RuleSet ruleSet : ruleSetManager.getDefaultRuleSets()) {
573-
preferredRuleSet = RuleSetUtil.addRuleSetByReference(preferredRuleSet, ruleSet, false);
574-
}
568+
preferredRuleSet = getDefaultRuleSet();
575569
}
576570

577571
return preferredRuleSet;
578572

579573
}
580574

575+
@Override
576+
public RuleSet getDefaultRuleSet() {
577+
RuleSet defaultRuleSet = RuleSetUtil.newEmpty(RuleSetUtil.DEFAULT_RULESET_NAME,
578+
RuleSetUtil.DEFAULT_RULESET_DESCRIPTION);
579+
580+
IRuleSetManager ruleSetManager = PMDPlugin.getDefault().getRuleSetManager();
581+
for (RuleSet ruleSet : ruleSetManager.getDefaultRuleSets()) {
582+
defaultRuleSet = RuleSetUtil.addRuleSetByReference(defaultRuleSet, ruleSet, false);
583+
}
584+
return defaultRuleSet;
585+
}
586+
581587
/**
582588
* Find if rules has been added
583589
*/

net.sourceforge.pmd.eclipse.plugin/src/main/java/net/sourceforge/pmd/eclipse/ui/preferences/br/AbstractPMDPreferencePage.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import net.sourceforge.pmd.eclipse.plugin.PMDPlugin;
2121
import net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences;
2222
import net.sourceforge.pmd.eclipse.ui.nls.StringKeys;
23-
import net.sourceforge.pmd.eclipse.ui.preferences.editors.SWTUtil;
2423

2524
public abstract class AbstractPMDPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
2625

@@ -52,9 +51,6 @@ public void setModified() {
5251
*/
5352
public void setModified(boolean isModified) {
5453
modified = isModified;
55-
56-
SWTUtil.setEnabled(getApplyButton(), modified);
57-
SWTUtil.setEnabled(getDefaultsButton(), !modified);
5854
}
5955

6056
/**

net.sourceforge.pmd.eclipse.plugin/src/main/java/net/sourceforge/pmd/eclipse/ui/preferences/br/PMDPreferencePage2.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import net.sourceforge.pmd.Rule;
3535
import net.sourceforge.pmd.RuleSet;
3636
import net.sourceforge.pmd.eclipse.plugin.PMDPlugin;
37+
import net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences;
3738
import net.sourceforge.pmd.eclipse.runtime.preferences.impl.PreferenceUIStore;
3839
import net.sourceforge.pmd.eclipse.ui.ModifyListener;
3940
import net.sourceforge.pmd.eclipse.ui.actions.RuleSetUtil;
@@ -62,6 +63,7 @@ public class PMDPreferencePage2 extends AbstractPMDPreferencePage
6263
private RulePropertyManager[] rulePropertyManagers;
6364
private RuleTableManager tableManager;
6465
private Button globalRuleManagementCheckButton;
66+
private Composite contentPanel;
6567

6668
// columns shown in the rule treetable in the desired order
6769
public static final RuleColumnDescriptor[] AVAILABLE_COLUMNS = new RuleColumnDescriptor[] { RuleTableColumns.NAME,
@@ -133,13 +135,9 @@ protected Control createContents(Composite parent) {
133135
int i = PreferenceUIStore.INSTANCE.selectedPropertyTab();
134136
tabFolder.setSelection(i);
135137

136-
return composite;
137-
}
138-
139-
public void createControl(Composite parent) {
140-
super.createControl(parent);
141-
142138
setModified(false);
139+
140+
return composite;
143141
}
144142

145143
/**
@@ -421,7 +419,7 @@ private void layoutControls(Composite parent) {
421419
final Button checkButton = new Button(checkboxPanel, SWT.CHECK);
422420
globalRuleManagementCheckButton = checkButton;
423421

424-
final Composite contentPanel = new Composite(parent, 0);
422+
contentPanel = new Composite(parent, 0);
425423
contentPanel.setLayout(new FormLayout());
426424
contentPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
427425

@@ -490,8 +488,8 @@ public boolean performOk() {
490488
if (isModified()) {
491489
preferences.setGlobalRuleManagement(globalRuleManagementCheckButton.getSelection());
492490
updateRuleSet();
493-
rebuildProjects();
494491
storeActiveRules();
492+
rebuildProjects();
495493
}
496494
saveUIState();
497495

@@ -504,12 +502,16 @@ public boolean performCancel() {
504502
return super.performCancel();
505503
}
506504

507-
/**
508-
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
509-
*/
510505
@Override
511506
protected void performDefaults() {
507+
globalRuleManagementCheckButton.setSelection(IPreferences.GLOBAL_RULE_MANAGEMENT_DEFAULT);
508+
SWTUtil.setEnabledRecursive(contentPanel.getChildren(), globalRuleManagementCheckButton.getSelection());
509+
510+
RuleSet defaultRuleSet = plugin.getPreferencesManager().getDefaultRuleSet();
511+
tableManager.useRuleSet(defaultRuleSet);
512+
tableManager.setAllItemsActive();
512513
tableManager.populateRuleTable();
514+
513515
super.performDefaults();
514516
}
515517

0 commit comments

Comments
 (0)