diff --git a/build.gradle.kts b/build.gradle.kts index b0575fa..7336df1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,7 +21,6 @@ val DotnetSolution: String by project val BuildConfiguration: String by project val ProductVersion: String by project val DotnetPluginId: String by project -val RiderPluginId: String by project val PublishToken: String by project allprojects { @@ -73,7 +72,7 @@ tasks.compileJava { } tasks.compileKotlin { - compilerOptions { jvmTarget= JvmTarget.JVM_21 } + compilerOptions { jvmTarget = JvmTarget.JVM_21 } } intellijPlatform { diff --git a/src/rider/main/kotlin/ru/ellizio/odatacliui/dialogs/CliDialog.kt b/src/rider/main/kotlin/ru/ellizio/odatacliui/dialogs/CliDialog.kt index ff308f3..e85040e 100644 --- a/src/rider/main/kotlin/ru/ellizio/odatacliui/dialogs/CliDialog.kt +++ b/src/rider/main/kotlin/ru/ellizio/odatacliui/dialogs/CliDialog.kt @@ -8,8 +8,10 @@ import ru.ellizio.odatacliui.Constants import ru.ellizio.odatacliui.UiBundle import ru.ellizio.odatacliui.extensions.emptyText import ru.ellizio.odatacliui.extensions.humanize +import ru.ellizio.odatacliui.extensions.scrollablePanel import ru.ellizio.odatacliui.models.CliDialogModel import ru.ellizio.odatacliui.models.validators.CliDialogValidators +import ru.ellizio.odatacliui.ui.ScrollableDialogPanel import javax.swing.JComponent class CliDialog(private val model: CliDialogModel) : BaseDialog(false) { @@ -18,6 +20,7 @@ class CliDialog(private val model: CliDialogModel) : BaseDialog(false) { init { title = Constants.PLUGIN_NAME + isResizable = false setOKActionEnabled(true) init() } @@ -80,7 +83,7 @@ class CliDialog(private val model: CliDialogModel) : BaseDialog(false) { } } - private fun buildGenerationArgumentsTab(): DialogPanel = panel { + private fun buildGenerationArgumentsTab(): ScrollableDialogPanel = scrollablePanel { row("--file-name") { textField() .align(AlignX.FILL) @@ -154,8 +157,8 @@ class CliDialog(private val model: CliDialogModel) : BaseDialog(false) { .bindSelected(model.upperCamelCase) } }.apply { - registerPanelValidators(this) - generationTabPanel = this + registerPanelValidators(this.panel) + generationTabPanel = this.panel } private fun buildRequestArgumentsTab(): DialogPanel = panel { diff --git a/src/rider/main/kotlin/ru/ellizio/odatacliui/extensions/UiExtensions.kt b/src/rider/main/kotlin/ru/ellizio/odatacliui/extensions/UiExtensions.kt index 4853270..784ae08 100644 --- a/src/rider/main/kotlin/ru/ellizio/odatacliui/extensions/UiExtensions.kt +++ b/src/rider/main/kotlin/ru/ellizio/odatacliui/extensions/UiExtensions.kt @@ -2,8 +2,19 @@ package ru.ellizio.odatacliui.extensions import com.intellij.ui.components.JBTextField import com.intellij.ui.dsl.builder.Cell +import com.intellij.ui.dsl.builder.Panel +import com.intellij.ui.dsl.builder.panel +import ru.ellizio.odatacliui.ui.ScrollableDialogPanel fun Cell.emptyText(text: String): Cell { component.emptyText.text = text return this +} + +fun scrollablePanel(init: Panel.() -> Unit): ScrollableDialogPanel { + val content = panel(init) + return ScrollableDialogPanel(content).apply { + border = null + isOverlappingScrollBar = false + } } \ No newline at end of file diff --git a/src/rider/main/kotlin/ru/ellizio/odatacliui/ui/ScrollableDialogPanel.kt b/src/rider/main/kotlin/ru/ellizio/odatacliui/ui/ScrollableDialogPanel.kt new file mode 100644 index 0000000..5e9c590 --- /dev/null +++ b/src/rider/main/kotlin/ru/ellizio/odatacliui/ui/ScrollableDialogPanel.kt @@ -0,0 +1,9 @@ +package ru.ellizio.odatacliui.ui + +import com.intellij.openapi.ui.DialogPanel +import com.intellij.ui.components.JBScrollPane + +class ScrollableDialogPanel(private val view: DialogPanel) : JBScrollPane(view, VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER) { + val panel: DialogPanel + get() = view +} \ No newline at end of file