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.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);
}
}
@@ -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<*>?