diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties index c5024f4604e..42b489d8e84 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -224,8 +224,8 @@ kotlin.compiler.jvm.option.panel.title=Kotlin to JVM # Kotlin to JavaScript kotlin.compiler.js.option.panel.title=Kotlin to JavaScript kotlin.compiler.js.option.generate.sourcemaps=Generate &source maps -kotlin.compiler.js.option.output.prefix=Output file &prefix: -kotlin.compiler.js.option.output.postfix=Output file p&ostfix: +kotlin.compiler.js.option.output.prefix=File to &prepend to generated code: +kotlin.compiler.js.option.output.postfix=File to append to generated c&ode: kotlin.compiler.js.option.output.prefix.browse.title=Choose output file prefix kotlin.compiler.js.option.output.postfix.browse.title=Choose output file postfix kotlin.compiler.js.option.output.copy.files=&Copy library runtime files 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 aa664c8b4cc..704f6b2d12a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form @@ -215,7 +215,7 @@ - + @@ -231,7 +231,7 @@ - + @@ -245,7 +245,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 9697b79c4ef..eff453d49d8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -88,10 +88,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private ThreeStateCheckBox generateSourceMapsCheckBox; private TextFieldWithBrowseButton outputPrefixFile; private TextFieldWithBrowseButton outputPostfixFile; - private JLabel labelForOutputPrefixFile; - private JLabel labelForOutputPostfixFile; private JLabel labelForOutputDirectory; - private JTextField outputDirectory; + private TextFieldWithBrowseButton outputDirectory; private ThreeStateCheckBox copyRuntimeFilesCheckBox; private ThreeStateCheckBox keepAliveCheckBox; private JCheckBox enablePreciseIncrementalCheckBox; @@ -109,6 +107,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private JPanel apiVersionPanel; private JComboBox apiVersionComboBox; private JPanel scriptPanel; + private JLabel labelForOutputPrefixFile; + private JLabel labelForOutputPostfixFile; private boolean isEnabled = true; @@ -141,11 +141,24 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co additionalArgsOptionsField.attachLabel(additionalArgsLabel); setupFileChooser(labelForOutputPrefixFile, outputPrefixFile, - KotlinBundle.message("kotlin.compiler.js.option.output.prefix.browse.title")); + KotlinBundle.message("kotlin.compiler.js.option.output.prefix.browse.title"), + true); setupFileChooser(labelForOutputPostfixFile, outputPostfixFile, - KotlinBundle.message("kotlin.compiler.js.option.output.postfix.browse.title")); + KotlinBundle.message("kotlin.compiler.js.option.output.postfix.browse.title"), + true); + setupFileChooser(labelForOutputDirectory, outputDirectory, + "Choose Output Directory", + false); + + outputDirectory.addBrowseFolderListener( + "Choose Output Directory", + null, + project, + new FileChooserDescriptor(false, true, false, false, false, false), + TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, + false + ); - labelForOutputDirectory.setLabelFor(outputDirectory); copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(@NotNull ChangeEvent e) { @@ -210,12 +223,13 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private static void setupFileChooser( @NotNull JLabel label, @NotNull TextFieldWithBrowseButton fileChooser, - @NotNull String title + @NotNull String title, + boolean forFiles ) { label.setLabelFor(fileChooser); fileChooser.addBrowseFolderListener(title, null, null, - new FileChooserDescriptor(true, false, false, false, false, false), + new FileChooserDescriptor(forFiles, !forFiles, false, false, false, false), TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, false); } @@ -316,15 +330,15 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co ComparingUtils.isModified(scriptTemplatesField, compilerSettings.scriptTemplates) || ComparingUtils.isModified(scriptTemplatesClasspathField, compilerSettings.scriptTemplatesClasspath) || ComparingUtils.isModified(copyRuntimeFilesCheckBox, compilerSettings.copyJsLibraryFiles) || - ComparingUtils.isModified(outputDirectory, compilerSettings.outputDirectoryForJsLibraryFiles) || + isModified(outputDirectory, compilerSettings.outputDirectoryForJsLibraryFiles) || (compilerWorkspaceSettings != null && (ComparingUtils.isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) || ComparingUtils.isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()))) || ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.sourceMap) || - isModified(outputPrefixFile, k2jsCompilerArguments.outputPrefix) || - isModified(outputPostfixFile, k2jsCompilerArguments.outputPostfix) || + ComparingUtils.isModified(outputPrefixFile, k2jsCompilerArguments.outputPrefix) || + ComparingUtils.isModified(outputPostfixFile, k2jsCompilerArguments.outputPostfix) || !getSelectedModuleKind().equals(getModuleKindOrDefault(k2jsCompilerArguments.moduleKind)) || !getSelectedJvmVersion().equals(getJvmVersionOrDefault(k2jvmCompilerArguments.jvmTarget)); @@ -479,7 +493,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co return outputPostfixFile; } - public JTextField getOutputDirectory() { + public TextFieldWithBrowseButton getOutputDirectory() { return outputDirectory; } diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt index 167c515479e..a12feb51a2b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/KotlinFacetEditorGeneralTab.kt @@ -104,13 +104,17 @@ class KotlinFacetEditorGeneralTab( val contentPanel = FormBuilder .createFormBuilder() .addComponent(JPanel(BorderLayout()).apply { - border = EmptyBorder(0, 0, UIUtil.DEFAULT_VGAP, UIUtil.DEFAULT_VGAP) add(useProjectSettingsCheckBox, BorderLayout.WEST) add(projectSettingsLink, BorderLayout.EAST) }) .addLabeledComponent("&Target platform: ", targetPlatformComboBox) - .addComponent(compilerConfigurable.createComponent()!!) + .addComponent(compilerConfigurable.createComponent()!!.apply { + border = null + }) .panel + .apply { + border = EmptyBorder(10, 10, 10, 10) + } add(contentPanel, BorderLayout.NORTH) useProjectSettingsCheckBox.addActionListener { diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/MultipleKotlinFacetEditor.kt b/idea/src/org/jetbrains/kotlin/idea/facet/MultipleKotlinFacetEditor.kt index f544fc8913f..396720f6982 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/MultipleKotlinFacetEditor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/MultipleKotlinFacetEditor.kt @@ -44,9 +44,9 @@ class MultipleKotlinFacetEditor( helper.bind(generateNoWarningsCheckBox, editors) { it.compilerConfigurable.generateNoWarningsCheckBox } helper.bind(additionalArgsOptionsField.textField, editors) { it.compilerConfigurable.additionalArgsOptionsField.textField } helper.bind(generateSourceMapsCheckBox, editors) { it.compilerConfigurable.generateSourceMapsCheckBox} - helper.bind(outputPrefixFile.textField, editors) { it.compilerConfigurable.outputPrefixFile.textField} - helper.bind(outputPostfixFile.textField, editors) { it.compilerConfigurable.outputPostfixFile.textField} - helper.bind(outputDirectory, editors) { it.compilerConfigurable.outputDirectory} + helper.bind(outputPrefixFile.textField, editors) { it.compilerConfigurable.outputPrefixFile.textField } + helper.bind(outputPostfixFile.textField, editors) { it.compilerConfigurable.outputPostfixFile.textField } + helper.bind(outputDirectory.textField, editors) { it.compilerConfigurable.outputDirectory.textField } helper.bind(copyRuntimeFilesCheckBox, editors) { it.compilerConfigurable.copyRuntimeFilesCheckBox} helper.bind(keepAliveCheckBox, editors) { it.compilerConfigurable.keepAliveCheckBox} helper.bind(moduleKindComboBox, editors) { it.compilerConfigurable.moduleKindComboBox}