module language level: reload on commit only

This commit is contained in:
anna
2011-12-19 12:35:37 +01:00
parent 9667e6bcc2
commit 4112a121a4
@@ -57,16 +57,6 @@ public class LanguageLevelModuleExtension extends ModuleExtension<LanguageLevelM
public void setLanguageLevel(final LanguageLevel languageLevel) {
LOG.assertTrue(myWritable, "Writable model can be retrieved from writable ModifiableRootModel");
if (mySource != null && myModule.isLoaded()) { //do not reload project for non-commited modules: j2me|project imports
if (myLanguageLevel != languageLevel) {
final LanguageLevelProjectExtension languageLevelProjectExtension = LanguageLevelProjectExtension.getInstance(myModule.getProject());
final LanguageLevel projectLanguageLevel = languageLevelProjectExtension.getLanguageLevel();
if (!(languageLevel == null && myLanguageLevel == projectLanguageLevel ||
myLanguageLevel == null && languageLevel == projectLanguageLevel)) {
languageLevelProjectExtension.reloadProjectOnLanguageLevelChange(languageLevel == null ? projectLanguageLevel : languageLevel, true);
}
}
}
myLanguageLevel = languageLevel;
}
@@ -103,6 +93,18 @@ public class LanguageLevelModuleExtension extends ModuleExtension<LanguageLevelM
@Override
public void commit() {
if (mySource != null && mySource.myLanguageLevel != myLanguageLevel) {
if (myModule.isLoaded()) { //do not reload project for non-committed modules: j2me|project imports
if (mySource.myLanguageLevel != myLanguageLevel) {
final LanguageLevelProjectExtension languageLevelProjectExtension =
LanguageLevelProjectExtension.getInstance(myModule.getProject());
final LanguageLevel projectLanguageLevel = languageLevelProjectExtension.getLanguageLevel();
final boolean explicit2ImplicitProjectLevel = myLanguageLevel == null && mySource.myLanguageLevel == projectLanguageLevel;
final boolean implicit2ExplicitProjectLevel = mySource.myLanguageLevel == null && myLanguageLevel == projectLanguageLevel;
if (!(explicit2ImplicitProjectLevel || implicit2ExplicitProjectLevel)) {
languageLevelProjectExtension.reloadProjectOnLanguageLevelChange(myLanguageLevel == null ? projectLanguageLevel : myLanguageLevel, true);
}
}
}
mySource.myLanguageLevel = myLanguageLevel;
}
}