mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-149613 Language level in a new project is 6 by default
This commit is contained in:
+8
-7
@@ -25,6 +25,7 @@ import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.ui.ColoredListCellRendererWrapper;
|
||||
import com.intellij.ui.SimpleTextAttributes;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -58,16 +59,16 @@ public abstract class LanguageLevelCombo extends ComboBox {
|
||||
});
|
||||
}
|
||||
|
||||
public void reset(Project project) {
|
||||
public void reset(@NotNull Project project) {
|
||||
removeAllItems();
|
||||
for (LanguageLevel level : LanguageLevel.values()) {
|
||||
addItem(level);
|
||||
}
|
||||
Sdk sdk = ProjectRootManagerEx.getInstanceEx(project).getProjectSdk();
|
||||
sdkUpdated(sdk);
|
||||
sdkUpdated(sdk, project.isDefault());
|
||||
|
||||
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(project);
|
||||
if (getDefaultLevel() != null && extension.isDefault()) {
|
||||
if (extension.isDefault()) {
|
||||
setSelectedItem(myDefaultItem);
|
||||
}
|
||||
else {
|
||||
@@ -77,7 +78,7 @@ public abstract class LanguageLevelCombo extends ComboBox {
|
||||
|
||||
protected abstract LanguageLevel getDefaultLevel();
|
||||
|
||||
void sdkUpdated(Sdk sdk) {
|
||||
void sdkUpdated(Sdk sdk, boolean isDefaultProject) {
|
||||
LanguageLevel newLevel = null;
|
||||
if (sdk != null) {
|
||||
JavaSdkVersion version = JavaSdk.getInstance().getVersion(sdk);
|
||||
@@ -85,11 +86,11 @@ public abstract class LanguageLevelCombo extends ComboBox {
|
||||
newLevel = version.getMaxLanguageLevel();
|
||||
}
|
||||
}
|
||||
updateDefaultLevel(newLevel);
|
||||
updateDefaultLevel(newLevel, isDefaultProject);
|
||||
}
|
||||
|
||||
void updateDefaultLevel(LanguageLevel newLevel) {
|
||||
if (newLevel == null) {
|
||||
private void updateDefaultLevel(LanguageLevel newLevel, boolean isDefaultProject) {
|
||||
if (newLevel == null && !isDefaultProject) {
|
||||
if (getSelectedItem() == myDefaultItem) {
|
||||
setSelectedItem(getDefaultLevel());
|
||||
}
|
||||
|
||||
+7
-4
@@ -173,7 +173,7 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
|
||||
myProjectJdkConfigurable.addChangeListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
myLanguageLevelCombo.sdkUpdated(myProjectJdkConfigurable.getSelectedProjectJdk());
|
||||
myLanguageLevelCombo.sdkUpdated(myProjectJdkConfigurable.getSelectedProjectJdk(), myProject.isDefault());
|
||||
LanguageLevelProjectExtensionImpl.getInstanceImpl(myProject).setCurrentLevel(myLanguageLevelCombo.getSelectedLevel());
|
||||
}
|
||||
});
|
||||
@@ -245,7 +245,10 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
|
||||
}
|
||||
|
||||
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(myProject);
|
||||
extension.setLanguageLevel(myLanguageLevelCombo.getSelectedLevel());
|
||||
LanguageLevel level = myLanguageLevelCombo.getSelectedLevel();
|
||||
if (level != null) {
|
||||
extension.setLanguageLevel(level);
|
||||
}
|
||||
extension.setDefault(myLanguageLevelCombo.isDefault());
|
||||
myProjectJdkConfigurable.apply();
|
||||
|
||||
@@ -295,8 +298,8 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
|
||||
@SuppressWarnings({"SimplifiableIfStatement"})
|
||||
public boolean isModified() {
|
||||
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(myProject);
|
||||
if (!extension.getLanguageLevel().equals(myLanguageLevelCombo.getSelectedLevel()) ||
|
||||
extension.isDefault() != myLanguageLevelCombo.isDefault()) {
|
||||
if (extension.isDefault() != myLanguageLevelCombo.isDefault() ||
|
||||
!extension.isDefault() && !extension.getLanguageLevel().equals(myLanguageLevelCombo.getSelectedLevel())) {
|
||||
return true;
|
||||
}
|
||||
final String compilerOutput = getOriginalCompilerOutputUrl();
|
||||
|
||||
+5
-3
@@ -37,7 +37,7 @@ public class LanguageLevelProjectExtensionImpl extends LanguageLevelProjectExten
|
||||
private static final String DEFAULT_ATTRIBUTE = "default";
|
||||
|
||||
private final Project myProject;
|
||||
private LanguageLevel myLanguageLevel = LanguageLevel.JDK_1_6;
|
||||
private LanguageLevel myLanguageLevel = LanguageLevel.HIGHEST;
|
||||
private LanguageLevel myCurrentLevel;
|
||||
|
||||
public LanguageLevelProjectExtensionImpl(final Project project) {
|
||||
@@ -76,7 +76,9 @@ public class LanguageLevelProjectExtensionImpl extends LanguageLevelProjectExten
|
||||
}
|
||||
|
||||
private void writeExternal(final Element element) {
|
||||
element.setAttribute(LANGUAGE_LEVEL, myLanguageLevel.name());
|
||||
if (myLanguageLevel != null) {
|
||||
element.setAttribute(LANGUAGE_LEVEL, myLanguageLevel.name());
|
||||
}
|
||||
Boolean aBoolean = getDefault();
|
||||
if (aBoolean != null) {
|
||||
element.setAttribute(DEFAULT_ATTRIBUTE, Boolean.toString(aBoolean));
|
||||
@@ -86,7 +88,7 @@ public class LanguageLevelProjectExtensionImpl extends LanguageLevelProjectExten
|
||||
|
||||
private void writeAttributesForIdea7(Element element) {
|
||||
final boolean is14 = LanguageLevel.JDK_1_4.equals(myLanguageLevel);
|
||||
final boolean is15 = myLanguageLevel.compareTo(LanguageLevel.JDK_1_5) >= 0;
|
||||
final boolean is15 = myLanguageLevel != null && myLanguageLevel.compareTo(LanguageLevel.JDK_1_5) >= 0;
|
||||
element.setAttribute(ASSERT_KEYWORD_ATTR, Boolean.toString(is14 || is15));
|
||||
element.setAttribute(JDK_15_ATTR, Boolean.toString(is15));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user