From c4971de7c1bc0744332e2b62ed23b539ec6ecd9d Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Fri, 12 Jan 2018 09:22:08 +0300 Subject: [PATCH] Scratch: add Make before Run checkbox --- .../idea/scratch/actions/RunScratchAction.kt | 2 +- .../kotlin/idea/scratch/ui/ScratchTopPanel.kt | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt index 84daac2c67d..50e1eb79db3 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/actions/RunScratchAction.kt @@ -38,7 +38,7 @@ class RunScratchAction : AnAction( val scratchTopPanel = getScratchPanelFromSelectedEditor(project) ?: return val scratchFile = scratchTopPanel.scratchFile - val isMakeBeforeRun = false // todo use property from panel + val isMakeBeforeRun = scratchTopPanel.isMakeBeforeRun() val isRepl = scratchTopPanel.isRepl() val provider = ScratchFileLanguageProvider.get(scratchFile.psiFile.language) ?: return diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt index 8c818d53621..69d260f4f2f 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ui/ScratchTopPanel.kt @@ -26,7 +26,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiManager import com.intellij.ui.components.panels.HorizontalLayout -import com.intellij.uiDesigner.core.Spacer import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.idea.scratch.ScratchFile import org.jetbrains.kotlin.idea.scratch.ScratchFileLanguageProvider @@ -49,17 +48,24 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel private val moduleChooser: ModulesComboBox private val isReplCheckbox: JCheckBox + private val isMakeBeforeRunCheckbox: JCheckBox init { add(createActionsToolbar()) - add(JSeparator()) - isReplCheckbox = JCheckBox("Use Repl", false) + + isReplCheckbox = JCheckBox("Use REPL", false).customize() add(isReplCheckbox) - add(JSeparator()) - add(JLabel("Use classpath of module: ")) + + add(JSeparator(SwingConstants.VERTICAL)) + + isMakeBeforeRunCheckbox = JCheckBox("Make before Run", false).customize() + add(isMakeBeforeRunCheckbox) + + add(JSeparator(SwingConstants.VERTICAL)) + moduleChooser = createModuleChooser(scratchFile.psiFile.project) + add(JLabel("Use classpath of module")) add(moduleChooser) - add(Spacer()) } fun getModule(): Module? = moduleChooser.selectedModule @@ -71,12 +77,18 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel } fun isRepl() = isReplCheckbox.isSelected + fun isMakeBeforeRun() = isMakeBeforeRunCheckbox.isSelected @TestOnly fun setReplMode(isSelected: Boolean) { isReplCheckbox.isSelected = isSelected } + private fun JCheckBox.customize(): JCheckBox { + verticalTextPosition = SwingConstants.BOTTOM + return this + } + private fun createActionsToolbar(): JComponent { val toolbarGroup = DefaultActionGroup().apply { add(RunScratchAction())