diff options
| author | Noopur Gupta | 2019-02-12 13:03:00 +0000 |
|---|---|---|
| committer | Noopur Gupta | 2019-02-12 13:03:00 +0000 |
| commit | d4b293106058130913dc1f2e5112999dcf7ecdbe (patch) | |
| tree | d1ed9d2aa6a94de48bc295167df8cbb3c2e998e8 | |
| parent | 2c4bb4c77bcec2db87c696b04bea289c6172c9b4 (diff) | |
| download | eclipse.jdt.ui-d4b293106058130913dc1f2e5112999dcf7ecdbe.tar.gz eclipse.jdt.ui-d4b293106058130913dc1f2e5112999dcf7ecdbe.tar.xz eclipse.jdt.ui-d4b293106058130913dc1f2e5112999dcf7ecdbe.zip | |
dialog
Change-Id: I23bfe916e146eae0068a8bc348e19fcd5334fe81
| -rw-r--r-- | org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java | 72 |
1 files changed, 49 insertions, 23 deletions
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 6b739c3ca7..162d452cc9 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 @@ -109,6 +109,9 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock { /* see also BuildPathSupport#PREFS_COMPLIANCE */ private static final Key[] PREFS_COMPLIANCE= new Key[] { PREF_COMPLIANCE, PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER, + PREF_SOURCE_COMPATIBILITY, PREF_CODEGEN_TARGET_PLATFORM}; + private static final Key[] PREFS_COMPLIANCE_11_OR_HIGHER= new Key[] { PREF_COMPLIANCE, + PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER, PREF_SOURCE_COMPATIBILITY, PREF_CODEGEN_TARGET_PLATFORM, PREF_ENABLE_PREVIEW, PREF_PB_REPORT_PREVIEW}; @@ -1160,6 +1163,12 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock { return; } } + if (enablePreview == null) { + enablePreview= DISABLED; + } + if (reportPreview == null) { + reportPreview= WARNING; + } setValue(PREF_ENABLE_PREVIEW, enablePreview); setValue(PREF_PB_REPORT_PREVIEW, reportPreview); setValue(PREF_PB_ASSERT_AS_IDENTIFIER, assertAsId); @@ -1193,16 +1202,17 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock { HashMap<String, String> defaultOptions= new HashMap<>(); JavaModelUtil.setComplianceOptions(defaultOptions, complianceLevel); - if (complianceLevel.equals(defaultOptions.get(JavaCore.COMPILER_COMPLIANCE)) - && getValue(PREF_ENABLE_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES)) - && getValue(PREF_PB_REPORT_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES)) + boolean isDefault= complianceLevel.equals(defaultOptions.get(JavaCore.COMPILER_COMPLIANCE)) && getValue(PREF_SOURCE_COMPATIBILITY).equals(defaultOptions.get(JavaCore.COMPILER_SOURCE)) && getValue(PREF_CODEGEN_TARGET_PLATFORM).equals(defaultOptions.get(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM)) && getValue(PREF_PB_ASSERT_AS_IDENTIFIER).equals(defaultOptions.get(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER)) - && getValue(PREF_PB_ENUM_AS_IDENTIFIER).equals(defaultOptions.get(JavaCore.COMPILER_PB_ENUM_IDENTIFIER))) { - return DEFAULT_CONF; + && getValue(PREF_PB_ENUM_AS_IDENTIFIER).equals(defaultOptions.get(JavaCore.COMPILER_PB_ENUM_IDENTIFIER)); + if (JavaCore.compareJavaVersions(complianceLevel, JavaCore.VERSION_10) > 0) { + isDefault= isDefault + && getValue(PREF_ENABLE_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES)) + && getValue(PREF_PB_REPORT_PREVIEW).equals(defaultOptions.get(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES)); } - return USER_CONF; + return isDefault ? DEFAULT_CONF : USER_CONF; } private IExecutionEnvironment getEE() { @@ -1238,8 +1248,12 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock { Map<String, String> options= BuildPathSupport.getEEOptions(ee); if (options == null) return DISABLED; - - return checkDefaults(PREFS_COMPLIANCE, options); + String complianceOption= options.get(JavaCore.COMPILER_COMPLIANCE); + if (JavaCore.compareJavaVersions(complianceOption, JavaCore.VERSION_10) > 0) { + return checkDefaults(PREFS_COMPLIANCE_11_OR_HIGHER, options); + } else { + return checkDefaults(PREFS_COMPLIANCE, options); + } } private String checkDefaults(Key[] keys, Map<String, String> options) { @@ -1272,39 +1286,51 @@ public class ComplianceConfigurationBlock extends OptionsConfigurationBlock { */ private void setDefaultCompilerComplianceValues() { IVMInstall defaultVMInstall= JavaRuntime.getDefaultVMInstall(); - if (defaultVMInstall instanceof IVMInstall2 && isOriginalDefaultCompliance()) { + if (defaultVMInstall instanceof IVMInstall2) { String complianceLevel= JavaModelUtil.getCompilerCompliance((IVMInstall2)defaultVMInstall, JavaCore.VERSION_1_4); - Map<String, String> complianceOptions= new HashMap<>(); - JavaModelUtil.setComplianceOptions(complianceOptions, complianceLevel); - setDefaultValue(PREF_COMPLIANCE, complianceOptions.get(PREF_COMPLIANCE.getName())); - setDefaultValue(PREF_ENABLE_PREVIEW, complianceOptions.get(PREF_ENABLE_PREVIEW.getName())); - setDefaultValue(PREF_PB_REPORT_PREVIEW, complianceOptions.get(PREF_PB_REPORT_PREVIEW.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); + if (isOriginalDefaultCompliance(complianceLevel)) { + Map<String, String> complianceOptions= new HashMap<>(); + JavaModelUtil.setComplianceOptions(complianceOptions, complianceLevel); + 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); + 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())); + } else { + setDefaultValue(PREF_ENABLE_PREVIEW, DISABLED); + setDefaultValue(PREF_PB_REPORT_PREVIEW, WARNING); + } + } } } /** * Tells whether the compliance option is the same as the original default. + * @param complianceLevel the compliance level * * @return <code>true</code> if the compliance is the same as the original default * @since 3.6 */ - private static final boolean isOriginalDefaultCompliance() { + private static final boolean isOriginalDefaultCompliance(String complianceLevel) { Hashtable<String, String> options= JavaCore.getDefaultOptions(); Preferences bundleDefaults= BundleDefaultsScope.INSTANCE.getNode(JavaCore.PLUGIN_ID); - return equals(JavaCore.COMPILER_COMPLIANCE, bundleDefaults, options) + boolean isDefault= equals(JavaCore.COMPILER_COMPLIANCE, bundleDefaults, options) && equals(JavaCore.COMPILER_SOURCE, bundleDefaults, options) && equals(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, bundleDefaults, options) && equals(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, bundleDefaults, options) && equals(JavaCore.COMPILER_PB_ENUM_IDENTIFIER, bundleDefaults, options) - && equals(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, bundleDefaults, options) - && equals(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, bundleDefaults, options) && equals(JavaCore.COMPILER_RELEASE, bundleDefaults, options); + if (JavaCore.compareJavaVersions(complianceLevel, JavaCore.VERSION_10) > 0) { + isDefault= isDefault + && equals(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, bundleDefaults, options) + && equals(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, bundleDefaults, options); + } + return isDefault; } /** |
