idea插件添加工具窗口

idea插件添加工具窗口

# 工具窗口

工具窗口通常有自己的工具栏(工具窗口栏),在主窗口的边框上有很多工具窗口按钮,可以激活左侧,右侧,底部的工具窗口,想要查看更多工具窗口信息,请看 IntelliJ IDEA Web Help
open in new window
和 Tool window
open in new window

每边包含主,次2个窗口组,同一时间每一组只有打开一个

每一个工具窗口可以显示多个标签,例如 每一个运行的项目都会显示一个Run窗口,Changes/Version Control 窗口根据项目使用的版本管理工具显示一组固定的标签

在插件中注册工具窗口的时候,主要有2个方式:

  • 使用声明式设置,一个工具窗口会一直显示,用户可以随时激活它,使用它的功能

  • 使用程序设置,通过一个特定的操作才会激活窗口,在操作完成后关闭窗口

项目级(Project-level) topic ToolWindowManagerListener
open in new window
可以监听 工具窗口的注册和显示事件 ,参考 监听器

# 声明式设置



工具窗口需要在plugin.xml注册com.intellij.toolWindow类型的扩展点 ,这个扩展点需要配置显示窗口所需要的所有数据,数据如下:

  • id: 侧边栏工具窗口按钮的名字,如果名字需要国际化,在你的插件中的国际化语言包 里 使用key: toolwindow.stripe.[id] (空格可以用_替代) 来定义
  • icon: 侧边栏工具窗口的图标(13px * 13px ,灰白色和单色,了解更多请查看 请看文档 图标和图片 ,Tool window
    open in new window
    )
  • anchor: 锚,显示在哪个侧边栏(默认是左侧边栏,可选值: left ,right, bottom)
  • secondary :次要属性,指定工具窗口显示在主要组还是次要组中

factoryClass:额外属性,接口 ToolWindowFactory
open in new window
的实现类,用户侧边栏工具窗口的时候会调用 ToolWindowFactory.createToolWindowContent() 方法,初始化工具窗口的UI。这样可以保证用户在不使用该工具的时候,不加载插件,不会造成内存的浪费,不会拖慢系统启动流程。

如果插件不需要在每个项目里都显示的话:

注意, 上述条件只会在项目加载的时候执行一次,根据用户的项目来显示和隐藏该插件窗口,如何注册详见 程序设置

# 程序设置

可以使用程序 ToolWindowManager.registerToolWindow()
open in new window
来注册插件工具窗口。根据不同的需求,可以选择不同的重载方法。如果使用带组件(component)参数的方法,这个component就是第一个选项卡

# 选项卡

大多数工具窗口的选项卡必须要访问索引,因此,工具窗口在项目构建索引的时候是不能用的,除非实现了 ToolWindowFactory的类也实现了 DumbAware
open in new window
接口, 用程序设置 的话, ToolWindowManager.registerToolWindow()
open in new window
的canWorkInDumbMode参数必须设置为true。

工具窗口可以包含多个选项卡,ToolWindow.getContentManager()
open in new window
可以管理选项卡,

如果要创建一个选项卡,操作如下:

  1. 使用 ContentManager.getFactory().createContent()
    open in new window
    创建一个选项卡
  2. ContentManager.addContent()
    open in new window
    方法添加选项卡,
  3. 使用 Content.setDisposer() 注册自己的回收器

# 关闭选项卡

插件可以控制用户是否可以在全局或按内容关闭选项卡,全局关闭是通过 把canCloseContents 传给 ToolWindowManager.registerToolWindow()
open in new window
的方法实现的,或者在 plugin.xml里配置canCloseContents=”true”, 如果不明确指定canCloseContents=”true”,那么 ContentManager 管理的content调用 setClosable(true)会被忽略,
用户可以调用 Content.setCloseable(false)
open in new window
来设置选项卡不能被关闭

# 示例

官方提供了一个开发工具窗口的示例插件
open in new window

如果不知道如何运行插件可以参考文档代码示例

这个示例创建了一个日期工具窗口,如下:

idea插件添加工具窗口

今天的文章
idea插件添加工具窗口分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/124442.html

(0)
编程小号编程小号
上一篇 2024-09-19 12:17
下一篇 2024-09-19 12:46

相关推荐