键盘上的舞者

像写情书一样Coding...
随笔 - 20, 文章 - 0, 评论 - 15, 引用 - 0
数据加载中……

使用TopComponent群组

TopComponent群组的作用是在打开一个TopComponent组件的同时,打开其他相关的TopComponent组件。例如,当打开或者激活GUI编辑器的时候,“组件面板”、“属性”窗口和“检查器”窗口都会出现。当需要一个组件同时伴随着很多其他类似于组件面板窗口的时候,利用TopComponent群组可以轻松实现一个组件的激活引发其他组件被打开或者被选中。

定义群组涉及到2XML文件。首先是wsgrp,它代表“窗口系统群组(Window System Group)”。它定义了“窗口系统”的群组,系统根据它的定义查找对应的目录,它也定义了群组是否应该在启动时打开。另一个文件是wstcgrp,它代表“窗口系统TopComponent群组(Window System TopComponent Group)”,这个文件通过ID识别单态的TopComponent组件,同时还定义了一些群组的打开和关闭属性。

TopComponent群组编程实例

首先创建一个模块项目TopComponentGroup然后新建2个窗口组件(TopComponent),命名为EditorTopComponentSatelliteTopComponent,就像窗口的名字所表示的那样,SatelliteTopComponent将会随着EditorTopComponent的打开和关闭一同打开和关闭。

首先新建一个名为EditorGroupWsgrpxml文件,这个文件里定义了名为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也会自动关闭。

样例程序下载

posted on 2010-08-07 22:46 陈维 阅读(1578) 评论(0)  编辑  收藏 所属分类: NetBeans


只有注册用户登录后才能发表评论。


网站导航: