mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
project structure: don't reset project language level to 'SDK default' when new SDK is added or removed (IDEA-152279)
This commit is contained in:
+16
-6
@@ -34,7 +34,7 @@ import javax.swing.*;
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public abstract class LanguageLevelCombo extends ComboBox {
|
||||
|
||||
private boolean myDefaultWasSelectedBeforeRemoving;
|
||||
private final String myDefaultItem;
|
||||
|
||||
public LanguageLevelCombo(String defaultItem) {
|
||||
@@ -91,18 +91,28 @@ public abstract class LanguageLevelCombo extends ComboBox {
|
||||
|
||||
private void updateDefaultLevel(LanguageLevel newLevel, boolean isDefaultProject) {
|
||||
if (newLevel == null && !isDefaultProject) {
|
||||
if (getSelectedItem() == myDefaultItem) {
|
||||
setSelectedItem(getDefaultLevel());
|
||||
if (isDefaultItemAdded()) {
|
||||
boolean defaultSelected = getSelectedItem() == myDefaultItem;
|
||||
if (defaultSelected) {
|
||||
setSelectedItem(getDefaultLevel());
|
||||
}
|
||||
myDefaultWasSelectedBeforeRemoving = defaultSelected;
|
||||
removeItem(myDefaultItem);
|
||||
}
|
||||
removeItem(myDefaultItem);
|
||||
}
|
||||
else if (!(getItemAt(0) instanceof String)) {
|
||||
else if (!(isDefaultItemAdded())) {
|
||||
addDefaultItem();
|
||||
setSelectedIndex(0);
|
||||
if (myDefaultWasSelectedBeforeRemoving) {
|
||||
setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
repaint();
|
||||
}
|
||||
|
||||
private boolean isDefaultItemAdded() {
|
||||
return getItemAt(0) instanceof String;
|
||||
}
|
||||
|
||||
void addDefaultItem() {
|
||||
insertItemAt(myDefaultItem, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user