diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form
index 87b3b647b21..ba9b0a7f495 100644
--- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form
@@ -74,7 +74,7 @@
-
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
index 5e562d66ae7..0ee9409d888 100644
--- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
+++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java
@@ -56,8 +56,6 @@ import org.jetbrains.kotlin.idea.facet.KotlinFacet;
import org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt;
import javax.swing.*;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
@@ -154,13 +152,6 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
"Choose Output Directory",
false);
- copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(@NotNull ChangeEvent e) {
- updateOutputDirEnabled();
- }
- });
-
fillModuleKindList();
fillJvmVersionList();
fillLanguageAndAPIVersionList();
@@ -299,7 +290,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
}
private void updateOutputDirEnabled() {
- if (isEnabled) {
+ if (isEnabled && copyRuntimeFilesCheckBox != null) {
outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
}
@@ -618,7 +609,6 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
public void setEnabled(boolean value) {
isEnabled = value;
UIUtil.setEnabled(getContentPane(), value, true);
- updateOutputDirEnabled();
}
public CommonCompilerArguments getCommonCompilerArguments() {
@@ -652,4 +642,16 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
public void setCompilerSettings(CompilerSettings compilerSettings) {
this.compilerSettings = compilerSettings;
}
+
+ private void createUIComponents() {
+ // Workaround: ThreeStateCheckBox doesn't send suitable notification on state change
+ // TODO: replace with PropertyChangerListener after fix is available in IDEA
+ copyRuntimeFilesCheckBox = new ThreeStateCheckBox() {
+ @Override
+ public void setState(State state) {
+ super.setState(state);
+ updateOutputDirEnabled();
+ }
+ };
+ }
}