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}