Scratch: add Make before Run checkbox

This commit is contained in:
Natalia Selezneva
2018-01-12 09:22:08 +03:00
parent a96cf147fc
commit c4971de7c1
2 changed files with 19 additions and 7 deletions
@@ -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
@@ -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())