diff --git a/platform/execution-impl/src/com/intellij/execution/target/TargetUIUtil.kt b/platform/execution-impl/src/com/intellij/execution/target/TargetUIUtil.kt index 5f781bae8843..3f1cae2d75a3 100644 --- a/platform/execution-impl/src/com/intellij/execution/target/TargetUIUtil.kt +++ b/platform/execution-impl/src/com/intellij/execution/target/TargetUIUtil.kt @@ -48,14 +48,15 @@ fun com.intellij.ui.dsl.builder.Row.textFieldWithBrowseTargetButton(targetType: targetSupplier: Supplier, project: Project, @NlsContexts.DialogTitle title: String, - property: MutableProperty): Cell { + property: MutableProperty, + targetBrowserHints: TargetBrowserHints = TargetBrowserHints(true)): Cell { val textFieldWithBrowseButton = TextFieldWithBrowseButton() val browser = targetType.createBrowser(project, title, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, textFieldWithBrowseButton.textField, targetSupplier, - TargetBrowserHints(true)) + targetBrowserHints) textFieldWithBrowseButton.addActionListener(browser) return cell(textFieldWithBrowseButton) .bind(TextFieldWithBrowseButton::getText, TextFieldWithBrowseButton::setText, property) diff --git a/python/src/com/jetbrains/python/ui/targetPathEditor/ManualPathEntryDialog.kt b/python/src/com/jetbrains/python/ui/targetPathEditor/ManualPathEntryDialog.kt index 7ab4435bb243..95182aea0adc 100644 --- a/python/src/com/jetbrains/python/ui/targetPathEditor/ManualPathEntryDialog.kt +++ b/python/src/com/jetbrains/python/ui/targetPathEditor/ManualPathEntryDialog.kt @@ -6,7 +6,9 @@ import com.intellij.execution.target.* import com.intellij.openapi.project.Project import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.util.io.OSAgnosticPathUtil -import com.intellij.ui.layout.* +import com.intellij.ui.dsl.builder.bindText +import com.intellij.ui.dsl.builder.panel +import com.intellij.ui.dsl.builder.toMutableProperty import com.jetbrains.python.PyBundle import java.util.function.Supplier import javax.swing.JComponent @@ -36,10 +38,10 @@ class ManualPathEntryDialog(private val project: Project?, return panel { row(label = label) { val textFieldComponent = if (targetConfigAndType == null) - textField(prop = ::path) + textField().bindText(::path) else - textFieldWithBrowseTargetButton(this, targetConfigAndType.second, Supplier { targetConfigAndType.first }, project!!, label, this@ManualPathEntryDialog::path.toBinding(), TargetBrowserHints(true)) - textFieldComponent.withValidationOnApply { textField -> + textFieldWithBrowseTargetButton(targetConfigAndType.second, Supplier { targetConfigAndType.first }, project!!, label, this@ManualPathEntryDialog::path.toMutableProperty(), TargetBrowserHints(true)) + textFieldComponent.validationOnApply { textField -> val text = textField.text when { text.isBlank() -> error(PyBundle.message("path.must.not.be.empty.error.message"))