Bug 560150 - Restore default doesn't work for Use '--release' option
Change-Id: I025a20bf0e7cab716d0023418279bfc590f08c2e
Signed-off-by: Kalyan Prasad Tatavarthi <kalyan_prasad@in.ibm.com>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
index bce0a73..c66dfd4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java
@@ -718,6 +718,22 @@
}
}
+ @Override
+ public void performDefaults() {
+ super.performDefaults();
+ performReleasePreferenceDefault();
+ }
+
+ private void performReleasePreferenceDefault() {
+ String defValue= getDefaultValue(PREF_RELEASE);
+ if (defValue == null) {
+ defValue= DISABLED;
+ }
+ fCompilerReleaseCheck.setSelection(DISABLED.equals(defValue) ? false : true);
+ setValue(PREF_RELEASE, defValue);
+ updateReleaseOptionStatus();
+ }
+
private void validateComplianceStatus() {
if (fJRE50InfoText != null && !fJRE50InfoText.isDisposed()) {
boolean isVisible= false;
@@ -1369,12 +1385,13 @@
if (isOriginalDefaultCompliance(complianceLevel)) {
Map<String, String> complianceOptions= new HashMap<>();
JavaModelUtil.setComplianceOptions(complianceOptions, complianceLevel);
+ String releaseVal= complianceOptions.get(PREF_RELEASE.getName());
setDefaultValue(PREF_COMPLIANCE, complianceOptions.get(PREF_COMPLIANCE.getName()));
setDefaultValue(PREF_PB_ASSERT_AS_IDENTIFIER, complianceOptions.get(PREF_PB_ASSERT_AS_IDENTIFIER.getName()));
setDefaultValue(PREF_PB_ENUM_AS_IDENTIFIER, complianceOptions.get(PREF_PB_ENUM_AS_IDENTIFIER.getName()));
setDefaultValue(PREF_SOURCE_COMPATIBILITY, complianceOptions.get(PREF_SOURCE_COMPATIBILITY.getName()));
setDefaultValue(PREF_CODEGEN_TARGET_PLATFORM, complianceOptions.get(PREF_CODEGEN_TARGET_PLATFORM.getName()));
- setDefaultValue(PREF_RELEASE, DISABLED);
+ setDefaultValue(PREF_RELEASE, releaseVal != null ? releaseVal : DISABLED);
if (JavaCore.compareJavaVersions(complianceLevel, JavaCore.VERSION_10) > 0) {
setDefaultValue(PREF_ENABLE_PREVIEW, complianceOptions.get(PREF_ENABLE_PREVIEW.getName()));
setDefaultValue(PREF_PB_REPORT_PREVIEW, complianceOptions.get(PREF_PB_REPORT_PREVIEW.getName()));
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
index 3e53587..12d90ad 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -1168,6 +1168,10 @@
validateSettings(null, null, null);
}
+ protected final String getDefaultValue(Key key) {
+ return key.getStoredValue(fLookupOrder, true, fManager);
+ }
+
/**
* @since 3.1
*/