Kotlin Facet: Correctly enable/disable "output directory" field when changing "Use project settings" option

#KT-16317 Fixed
This commit is contained in:
Alexey Sedunov
2017-03-03 18:14:13 +03:00
parent 01a9d9a284
commit 19ea18a340
2 changed files with 16 additions and 5 deletions
@@ -33,6 +33,7 @@ import com.intellij.ui.ListCellRendererWrapper;
import com.intellij.ui.RawCommandLineEditor; import com.intellij.ui.RawCommandLineEditor;
import com.intellij.util.text.VersionComparatorUtil; import com.intellij.util.text.VersionComparatorUtil;
import com.intellij.util.ui.ThreeStateCheckBox; import com.intellij.util.ui.ThreeStateCheckBox;
import com.intellij.util.ui.UIUtil;
import kotlin.collections.ArraysKt; import kotlin.collections.ArraysKt;
import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1; import kotlin.jvm.functions.Function1;
@@ -105,6 +106,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
private JComboBox apiVersionComboBox; private JComboBox apiVersionComboBox;
private JPanel scriptPanel; private JPanel scriptPanel;
private boolean isEnabled = true;
public KotlinCompilerConfigurableTab( public KotlinCompilerConfigurableTab(
Project project, Project project,
CommonCompilerArguments commonCompilerArguments, CommonCompilerArguments commonCompilerArguments,
@@ -143,8 +146,10 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() { copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() {
@Override @Override
public void stateChanged(@NotNull ChangeEvent e) { public void stateChanged(@NotNull ChangeEvent e) {
outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); if (isEnabled) {
labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected());
}
} }
}); });
@@ -501,4 +506,9 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
public JComboBox getCoroutineSupportComboBox() { public JComboBox getCoroutineSupportComboBox() {
return coroutineSupportComboBox; return coroutineSupportComboBox;
} }
public void setEnabled(boolean value) {
isEnabled = value;
UIUtil.setEnabled(getContentPane(), value, true);
}
} }
@@ -23,7 +23,6 @@ import com.intellij.openapi.project.Project
import com.intellij.ui.DocumentAdapter import com.intellij.ui.DocumentAdapter
import com.intellij.util.ui.FormBuilder import com.intellij.util.ui.FormBuilder
import com.intellij.util.ui.ThreeStateCheckBox 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.CommonCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments 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.config.*
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerConfigurableTab import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerConfigurableTab
import java.awt.BorderLayout import java.awt.BorderLayout
import javax.swing.* import javax.swing.JComboBox
import javax.swing.JComponent
import javax.swing.JPanel
import javax.swing.event.DocumentEvent import javax.swing.event.DocumentEvent
class KotlinFacetEditorGeneralTab( class KotlinFacetEditorGeneralTab(
@@ -101,7 +102,7 @@ class KotlinFacetEditorGeneralTab(
internal fun updateCompilerConfigurable() { internal fun updateCompilerConfigurable() {
compilerConfigurable.setTargetPlatform(chosenPlatform) compilerConfigurable.setTargetPlatform(chosenPlatform)
UIUtil.setEnabled(compilerConfigurable.contentPane, !useProjectSettingsCheckBox.isSelected, true) compilerConfigurable.setEnabled(!useProjectSettingsCheckBox.isSelected)
} }
val chosenPlatform: TargetPlatformKind<*>? val chosenPlatform: TargetPlatformKind<*>?