TopComponent
群组的作用是在打开一个
TopComponent
组件的同时,打开其他相关的
TopComponent
组件。例如,当打开或者激活
GUI
编辑器的时候,“组件面板”、“属性”窗口和“检查器”窗口都会出现。当需要一个组件同时伴随着很多其他类似于组件面板窗口的时候,利用
TopComponent
群组可以轻松实现一个组件的激活引发其他组件被打开或者被选中。
定义群组涉及到
2
种
XML
文件。首先是
wsgrp
,它代表“窗口系统群组(
Window System Group
)”。它定义了“窗口系统”的群组,系统根据它的定义查找对应的目录,它也定义了群组是否应该在启动时打开。另一个文件是
wstcgrp
,它代表“窗口系统
TopComponent
群组(
Window System TopComponent Group
)”,这个文件通过
ID
识别单态的
TopComponent
组件,同时还定义了一些群组的打开和关闭属性。
TopComponent
群组编程实例
首先
创建
一个模块项目
TopComponentGroup
,
然后
新建
2
个窗口组件(
TopComponent
),命名为
EditorTopComponent
和
SatelliteTopComponent
,就像窗口的名字所表示的那样,
SatelliteTopComponent
将会随着
EditorTopComponent
的打开和关闭一同打开和关闭。
首先新建一个名为
EditorGroupWsgrp
的
xml
文件
,这个文件里定义了名为EditorGroup的编辑器窗口群组。
<
group
version
="2.0"
>
<
module
name
="org.jqueen.nb.topcomponentgroup"
spec
="1.0"
/>
<
name
unique
="EditorGroup"
/>
<
state
opened
="false"
/>
</
group
>
再新建一个名为SatelliteTopComponentWstcgrp的xml文件,在这个文件里可以通过ID识别出
SatelliteTopComponent
组件
。
<
tc-group
version
="2.0"
>
<
tc-id
id
="SatelliteTopComponent"
/>
<
open-close-behavior
open
="true"
close
="true"
/>
</
tc-group
>
编辑模块的
layer.xml
文件,在系统文件系统中的
Windows2
目录添加一个
Group
文件夹,将名为"EditorGroup"的群组添加进Group。
<
folder
name
="Groups"
>
<
file
name
="EditorGroup.wsgrp"
url
="EditorGroupWsgrp.xml"
/>
<
folder
name
="EditorGroup"
>
<
file
name
="SatelliteTopComponent.wstcgrp"
url
="SatelliteTopComponentWstcgrp.xml"
/>
</
folder
>
</
folder
>
编辑EditorTopComponent
内容,重写TopComponent类的componentOpened()和componentClosed()方法,在
EditorTopComponent
被打开和关闭时打开和关闭名为"EditorGroup"的群组。
@Override
protected
void
componentOpened() {
TopComponentGroup group
=
WindowManager.getDefault().findTopComponentGroup(
"
EditorGroup
"
);
if
(group
!=
null
) {
group.open();
}
}
@Override
public
void
componentClosed() {
TopComponentGroup group
=
WindowManager.getDefault().findTopComponentGroup(
"
EditorGroup
"
);
if
(group
!=
null
) {
group.close();
}
}
至此,就完成了一个TopComponent群组的编辑。执行模块项目,当从窗口菜单中打开EditorTopComponent时
SatelliteTopComponent
会自动打开,
EditorTopComponent被关闭时
SatelliteTopComponent
也会自动关闭。
样例程序下载
分享到:
相关推荐
网络游戏-使用局部对等群组作为网络群组的路边网络单元.zip
华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略群组分组资料.pdf华为战略...
Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为
基于注意力机制的群组推荐系统实现python源码+操作说明.zip 基于注意力机制的群组推荐系统实现python源码+操作说明.zip 基于注意力机制的群组推荐系统实现python源码+操作说明.zip 使用注意力机制动态的从数据中去...
管理5.Serv-U高级应用——群组汇编.pdf
适合手机使用。 寻求简洁,追寻本质,通过链接分享,适合简单地进行群组聊天。 适合对保存聊天记录、跨平台有需求、而不需要太过繁琐的聊天工具的人。 两人群组则为点对点聊天 (≧∇≦) 比如我...
论文研究-基于双重群组套索的高维空间多值处置效应估计.pdf, 罗宾因果推断模型在非实验数据分析中具有重要地位,但对高维数据分析,古典低维空间处置效应估计量往往表现...
Slack 是聊天群组 + 大规模工具集成 + 文件整合 + 统一搜索。
针对现有协同过滤推荐系统中存在的用户隐私泄露问题,提出一种基于群组推荐的用户隐私保护方法,利用群组的天然匿名特性,实现用户身份和个人数据的保护,具体方法包括:用户通过自组织或系统聚类形成群组后,在组内...
Androidの联系人群组Group操作,代码讲解详细,方便使用。。
同时,系统使用ElasticSearch、Hadoop、Redis等技术,实现底层数据的存储和处理。基于用户特征的群组标签系统包含四大模块:(1)群组操作模块:负责用户群组的创建、计算、扩展等群组操作功能。(2)群组分析模块:负责用户...
介绍如何删除群组,包括与之相关的角色的删除,视图和names库中相关资源的删除。
iOS 仿微信群组封面拼接 StitchingImage ,StitchingImage 是 iOS 仿微信群组封面拼接控件, 直接拖进项目就可使用, 支持 C...
论文研究-改进群组G1组合赋权的省级科学发展评价模型及应用.pdf, 根据科学发展观内涵,以权威机构典型观点的高频指标为基础, 从经济、生态、社会、人的全面发展、科学...
互联网工作群组管理办法.doc
针对现有群组推荐方法准确率偏低的问题,提出了一种基于评分与项目特征相结合的方法。首先综合时间因素对评分的影响和项目领域特征,利用改进的TF-IDF方法构建成员在各个特征上的偏好模型;然后考虑群体用户间的相互...
Lotus Notes如何控制通过群组来群发邮件
网格控件群组的高级使用 包括:图片 文档 VC6源码 属于系列文章
批量新增WINDOWS系统用户及群组,并批量对目录授权
由于无线用户的移动性和无线移动设备计算能力、存储能力、电池供电能力和带宽资源的局限性,使得有线环境中的群组通信协议不能直接应用于无线移动环境中。基于单向积聚函数,采用集中式与分布式密钥管理相结合的方法...