使用TopComponent群组 博客分类: NetBeans XML编程
TopComponent
群组的作用是在打开一个
TopComponent
组件的同时,打开其他相关的
TopComponent
组件。例如,当打开或者激活
GUI
编辑器的时候,“组件面板”、“属性”窗口和“检查器”窗口都会出现。当需要一个组件同时伴随着很多其他类似于组件面板窗口的时候,利用
TopComponent
群组可以轻松实现一个组件的激活引发其他组件被打开或者被选中。
定义群组涉及到
2
种
XML
文件。首先是
wsgrp
,它代表“窗口系统群组(
Window System Group
)”。它定义了“窗口系统”的群组,系统根据它的定义查找对应的目录,它也定义了群组是否应该在启动时打开。另一个文件是
wstcgrp
,它代表“窗口系统
TopComponent
群组(
Window System TopComponent Group
)”,这个文件通过
ID
识别单态的
TopComponent
组件,同时还定义了一些群组的打开和关闭属性。
首先新建一个名为
EditorGroupWsgrp
的
xml
文件
,这个文件里定义了名为EditorGroup的编辑器窗口群组。
< module name ="org.jqueen.nb.topcomponentgroup" spec ="1.0" />
< name unique ="EditorGroup" />
< state opened ="false" />
</ group >
再新建一个名为SatelliteTopComponentWstcgrp的xml文件,在这个文件里可以通过ID识别出
SatelliteTopComponent
组件
。
< tc-id id ="SatelliteTopComponent" />
< open-close-behavior open ="true" close ="true" />
</ tc-group >
编辑模块的
layer.xml
文件,在系统文件系统中的
Windows2
目录添加一个
Group
文件夹,将名为"EditorGroup"的群组添加进Group。
< 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"的群组。
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
也会自动关闭。
样例程序下载