Skip to content

Commit 3423404

Browse files
committed
Merge branch 'pr-92'
2 parents 036544a + 927818b commit 3423404

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
@@ -29,6 +29,7 @@ This is a minor release.
2929
* [#70](https://github.com/pmd/pmd-eclipse-plugin/issues/70): UnsupportedOperationException opening Rule Configuration
3030
* [#76](https://github.com/pmd/pmd-eclipse-plugin/issues/76): Global rule management is saved even if cancelled
3131
* [#78](https://github.com/pmd/pmd-eclipse-plugin/issues/78): Project properties cannot be loaded anymore
32+
* [#83](https://github.com/pmd/pmd-eclipse-plugin/issues/83): "Restore defaults" button in PMD prefences is always deactivated
3233
* [#86](https://github.com/pmd/pmd-eclipse-plugin/issues/86): Add Markers next to Scroll bar
3334
* [#88](https://github.com/pmd/pmd-eclipse-plugin/issues/88): PMD is executed for all file types regardless of active rules
3435
* [#89](https://github.com/pmd/pmd-eclipse-plugin/issues/89): Upgrade to PMD 6.12.0

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
@@ -577,19 +577,25 @@ private RuleSet getRuleSetFromStateLocation() {
577577

578578
// Finally, build a default ruleset
579579
if (preferredRuleSet == null) {
580-
preferredRuleSet = RuleSetUtil.newEmpty(RuleSetUtil.DEFAULT_RULESET_NAME,
581-
RuleSetUtil.DEFAULT_RULESET_DESCRIPTION);
582-
583-
IRuleSetManager ruleSetManager = PMDPlugin.getDefault().getRuleSetManager();
584-
for (RuleSet ruleSet : ruleSetManager.getDefaultRuleSets()) {
585-
preferredRuleSet = RuleSetUtil.addRuleSetByReference(preferredRuleSet, ruleSet, false);
586-
}
580+
preferredRuleSet = getDefaultRuleSet();
587581
}
588582

589583
return preferredRuleSet;
590584

591585
}
592586

587+
@Override
588+
public RuleSet getDefaultRuleSet() {
589+
RuleSet defaultRuleSet = RuleSetUtil.newEmpty(RuleSetUtil.DEFAULT_RULESET_NAME,
590+
RuleSetUtil.DEFAULT_RULESET_DESCRIPTION);
591+
592+
IRuleSetManager ruleSetManager = PMDPlugin.getDefault().getRuleSetManager();
593+
for (RuleSet ruleSet : ruleSetManager.getDefaultRuleSets()) {
594+
defaultRuleSet = RuleSetUtil.addRuleSetByReference(defaultRuleSet, ruleSet, false);
595+
}
596+
return defaultRuleSet;
597+
}
598+
593599
/**
594600
* Find if rules has been added
595601
*/

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)