parent
5bda710503
commit
f686654cbb
@ -0,0 +1,47 @@
|
||||
package org.jetbrains.plugins.template.toolWindow
|
||||
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.wm.ToolWindow
|
||||
import com.intellij.openapi.wm.ToolWindowFactory
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.JBPanel
|
||||
import com.intellij.ui.content.ContentFactory
|
||||
import org.jetbrains.plugins.template.MyBundle
|
||||
import org.jetbrains.plugins.template.services.MyProjectService
|
||||
import javax.swing.JButton
|
||||
|
||||
|
||||
class MyToolWindowFactory : ToolWindowFactory {
|
||||
|
||||
init {
|
||||
thisLogger().warn("Don't forget to remove all non-needed sample code files with their corresponding registration entries in `plugin.xml`.")
|
||||
}
|
||||
|
||||
private val contentFactory = ContentFactory.SERVICE.getInstance()
|
||||
|
||||
override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {
|
||||
val myToolWindow = MyToolWindow(toolWindow)
|
||||
val content = contentFactory.createContent(myToolWindow.getContent(), null, false)
|
||||
toolWindow.contentManager.addContent(content)
|
||||
}
|
||||
|
||||
override fun shouldBeAvailable(project: Project) = true
|
||||
|
||||
class MyToolWindow(toolWindow: ToolWindow) {
|
||||
|
||||
private val service = toolWindow.project.service<MyProjectService>()
|
||||
|
||||
fun getContent() = JBPanel<JBPanel<*>>().apply {
|
||||
val label = JBLabel(MyBundle.message("randomLabel", "?"))
|
||||
|
||||
add(label)
|
||||
add(JButton(MyBundle.message("shuffle")).apply {
|
||||
addActionListener {
|
||||
label.text = MyBundle.message("randomLabel", service.getRandomNumber())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
name=My Plugin
|
||||
applicationService=Application service
|
||||
projectService=Project service: {0}
|
||||
randomLabel=The random number is: {0}
|
||||
shuffle=Shuffle
|
||||
|
Loading…
Reference in new issue