# 工具窗口
工具窗口通常有自己的工具栏(工具窗口栏),在主窗口的边框上有很多工具窗口按钮,可以激活左侧,右侧,底部的工具窗口,想要查看更多工具窗口信息,请看 IntelliJ IDEA Web Help
和 Tool window
每边包含主,次2个窗口组,同一时间每一组只有打开一个
每一个工具窗口可以显示多个标签,例如 每一个运行的项目都会显示一个Run窗口,Changes/Version Control 窗口根据项目使用的版本管理工具显示一组固定的标签
在插件中注册工具窗口的时候,主要有2个方式:
-
使用声明式设置,一个工具窗口会一直显示,用户可以随时激活它,使用它的功能
-
使用程序设置,通过一个特定的操作才会激活窗口,在操作完成后关闭窗口
项目级(Project-level) topic ToolWindowManagerListener
可以监听 工具窗口的注册和显示事件 ,参考 监听器
# 声明式设置
工具窗口需要在plugin.xml注册com.intellij.toolWindow类型的扩展点 ,这个扩展点需要配置显示窗口所需要的所有数据,数据如下:
- id: 侧边栏工具窗口按钮的名字,如果名字需要国际化,在你的插件中的国际化语言包 里 使用key: toolwindow.stripe.[id] (空格可以用_替代) 来定义
- icon: 侧边栏工具窗口的图标(13px * 13px ,灰白色和单色,了解更多请查看 请看文档 图标和图片 ,Tool window
) - anchor: 锚,显示在哪个侧边栏(默认是左侧边栏,可选值: left ,right, bottom)
- secondary :次要属性,指定工具窗口显示在主要组还是次要组中
factoryClass:额外属性,接口 ToolWindowFactory
的实现类,用户侧边栏工具窗口的时候会调用 ToolWindowFactory.createToolWindowContent() 方法,初始化工具窗口的UI。这样可以保证用户在不使用该工具的时候,不加载插件,不会造成内存的浪费,不会拖慢系统启动流程。
如果插件不需要在每个项目里都显示的话:
注意, 上述条件只会在项目加载的时候执行一次,根据用户的项目来显示和隐藏该插件窗口,如何注册详见 程序设置
# 程序设置
可以使用程序 ToolWindowManager.registerToolWindow()
来注册插件工具窗口。根据不同的需求,可以选择不同的重载方法。如果使用带组件(component)参数的方法,这个component就是第一个选项卡
# 选项卡
大多数工具窗口的选项卡必须要访问索引,因此,工具窗口在项目构建索引的时候是不能用的,除非实现了 ToolWindowFactory的类也实现了 DumbAware
接口, 用程序设置 的话, ToolWindowManager.registerToolWindow()
的canWorkInDumbMode参数必须设置为true。
工具窗口可以包含多个选项卡,ToolWindow.getContentManager()
可以管理选项卡,
如果要创建一个选项卡,操作如下:
- 使用 ContentManager.getFactory().createContent()
创建一个选项卡 - ContentManager.addContent()
方法添加选项卡, - 使用 Content.setDisposer() 注册自己的回收器
# 关闭选项卡
插件可以控制用户是否可以在全局或按内容关闭选项卡,全局关闭是通过 把canCloseContents 传给 ToolWindowManager.registerToolWindow()
的方法实现的,或者在 plugin.xml里配置canCloseContents=”true”, 如果不明确指定canCloseContents=”true”,那么 ContentManager 管理的content调用 setClosable(true)会被忽略,
用户可以调用 Content.setCloseable(false)
来设置选项卡不能被关闭
# 示例
官方提供了一个开发工具窗口的示例插件
如果不知道如何运行插件可以参考文档代码示例
这个示例创建了一个日期工具窗口,如下:
今天的文章
idea插件添加工具窗口分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/124442.html