From 19ea18a340bbc74c9cda9ba97755d5a513855d79 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 3 Mar 2017 18:14:13 +0300 Subject: [PATCH] Kotlin Facet: Correctly enable/disable "output directory" field when changing "Use project settings" option #KT-16317 Fixed --- .../KotlinCompilerConfigurableTab.java | 14 ++++++++++++-- .../idea/facet/KotlinFacetEditorGeneralTab.kt | 7 ++++--- 2 files changed, 16 insertions(+), 5 deletions(-) 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 e9db1855ed0..878d6652ab9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -33,6 +33,7 @@ import com.intellij.ui.ListCellRendererWrapper; import com.intellij.ui.RawCommandLineEditor; import com.intellij.util.text.VersionComparatorUtil; import com.intellij.util.ui.ThreeStateCheckBox; +import com.intellij.util.ui.UIUtil; import kotlin.collections.ArraysKt; import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; @@ -105,6 +106,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private JComboBox apiVersionComboBox; private JPanel scriptPanel; + private boolean isEnabled = true; + public KotlinCompilerConfigurableTab( Project project, CommonCompilerArguments commonCompilerArguments, @@ -143,8 +146,10 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(@NotNull ChangeEvent e) { - outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); - labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); + if (isEnabled) { + outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); + labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); + } } }); @@ -501,4 +506,9 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co public JComboBox getCoroutineSupportComboBox() { return coroutineSupportComboBox; } + + public void setEnabled(boolean value) { + isEnabled = value; + UIUtil.setEnabled(getContentPane(), value, true); + } } diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt index 093a32b035d..3a479a60373 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt @@ -23,7 +23,6 @@ import com.intellij.openapi.project.Project import com.intellij.ui.DocumentAdapter import com.intellij.util.ui.FormBuilder import com.intellij.util.ui.ThreeStateCheckBox -import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments @@ -31,7 +30,9 @@ import org.jetbrains.kotlin.cli.common.arguments.parseArguments import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerConfigurableTab import java.awt.BorderLayout -import javax.swing.* +import javax.swing.JComboBox +import javax.swing.JComponent +import javax.swing.JPanel import javax.swing.event.DocumentEvent class KotlinFacetEditorGeneralTab( @@ -101,7 +102,7 @@ class KotlinFacetEditorGeneralTab( internal fun updateCompilerConfigurable() { compilerConfigurable.setTargetPlatform(chosenPlatform) - UIUtil.setEnabled(compilerConfigurable.contentPane, !useProjectSettingsCheckBox.isSelected, true) + compilerConfigurable.setEnabled(!useProjectSettingsCheckBox.isSelected) } val chosenPlatform: TargetPlatformKind<*>?