From 8453c1ff4d6b17935a4f75336d2a97ee4da519fd Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Tue, 11 Dec 2018 11:20:41 +0300 Subject: [PATCH] Scratch: hide 'make module' checkbox when no module is selected ^KT-23985 --- .../kotlin/idea/scratch/ui/ScratchTopPanel.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 983cad87aa8..4a225574b36 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 @@ -63,6 +63,7 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel private val isMakeBeforeRunCheckbox: JCheckBox private val isInteractiveCheckbox: JCheckBox + private val moduleSeparator: JSeparator private val actionsToolbar: ActionToolbar init { @@ -81,7 +82,10 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel } } - add(JSeparator(SwingConstants.VERTICAL)) + moduleSeparator = JSeparator(SwingConstants.VERTICAL) + add(moduleSeparator) + + changeMakeModuleCheckboxVisibility(false) isInteractiveCheckbox = JCheckBox("Interactive mode") add(isInteractiveCheckbox) @@ -119,6 +123,9 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel fun addModuleListener(f: (PsiFile, Module?) -> Unit) { moduleChooser.addActionListener { val selectedModule = moduleChooser.selectedModule + + changeMakeModuleCheckboxVisibility(selectedModule != null) + val psiFile = scratchFile.getPsiFile() if (psiFile != null) { f(psiFile, selectedModule) @@ -141,6 +148,11 @@ class ScratchTopPanel private constructor(val scratchFile: ScratchFile) : JPanel isInteractiveCheckbox.isSelected = isSelected } + private fun changeMakeModuleCheckboxVisibility(isVisible: Boolean) { + isMakeBeforeRunCheckbox.isVisible = isVisible + moduleSeparator.isVisible = isVisible + } + fun updateToolbar() { ApplicationManager.getApplication().invokeLater { actionsToolbar.updateActionsImmediately()