Skip to content

Commit 19ea18a

Browse files
committed
Kotlin Facet: Correctly enable/disable "output directory" field when changing "Use project settings" option
#KT-16317 Fixed
1 parent 01a9d9a commit 19ea18a

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.intellij.ui.RawCommandLineEditor;
3434
import com.intellij.util.text.VersionComparatorUtil;
3535
import com.intellij.util.ui.ThreeStateCheckBox;
36+
import com.intellij.util.ui.UIUtil;
3637
import kotlin.collections.ArraysKt;
3738
import kotlin.jvm.functions.Function0;
3839
import kotlin.jvm.functions.Function1;
@@ -105,6 +106,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
105106
private JComboBox apiVersionComboBox;
106107
private JPanel scriptPanel;
107108

109+
private boolean isEnabled = true;
110+
108111
public KotlinCompilerConfigurableTab(
109112
Project project,
110113
CommonCompilerArguments commonCompilerArguments,
@@ -143,8 +146,10 @@ public void actionPerformed(ActionEvent e) {
143146
copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() {
144147
@Override
145148
public void stateChanged(@NotNull ChangeEvent e) {
146-
outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
147-
labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
149+
if (isEnabled) {
150+
outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
151+
labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
152+
}
148153
}
149154
});
150155

@@ -501,4 +506,9 @@ public JComboBox getApiVersionComboBox() {
501506
public JComboBox getCoroutineSupportComboBox() {
502507
return coroutineSupportComboBox;
503508
}
509+
510+
public void setEnabled(boolean value) {
511+
isEnabled = value;
512+
UIUtil.setEnabled(getContentPane(), value, true);
513+
}
504514
}

idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,16 @@ import com.intellij.openapi.project.Project
2323
import com.intellij.ui.DocumentAdapter
2424
import com.intellij.util.ui.FormBuilder
2525
import com.intellij.util.ui.ThreeStateCheckBox
26-
import com.intellij.util.ui.UIUtil
2726
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
2827
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
2928
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
3029
import org.jetbrains.kotlin.cli.common.arguments.parseArguments
3130
import org.jetbrains.kotlin.config.*
3231
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerConfigurableTab
3332
import java.awt.BorderLayout
34-
import javax.swing.*
33+
import javax.swing.JComboBox
34+
import javax.swing.JComponent
35+
import javax.swing.JPanel
3536
import javax.swing.event.DocumentEvent
3637

3738
class KotlinFacetEditorGeneralTab(
@@ -101,7 +102,7 @@ class KotlinFacetEditorGeneralTab(
101102

102103
internal fun updateCompilerConfigurable() {
103104
compilerConfigurable.setTargetPlatform(chosenPlatform)
104-
UIUtil.setEnabled(compilerConfigurable.contentPane, !useProjectSettingsCheckBox.isSelected, true)
105+
compilerConfigurable.setEnabled(!useProjectSettingsCheckBox.isSelected)
105106
}
106107

107108
val chosenPlatform: TargetPlatformKind<*>?

0 commit comments

Comments
 (0)