`
chenweionline
  • 浏览: 22107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用TopComponent群组

阅读更多

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 也会自动关闭。

样例程序下载

 

 

分享到:
评论

相关推荐

    管理5.Serv-U高级应用——群组汇编.pdf

    "serv-u高级应用——群组汇编" Serv-U 高级应用中群组的概念可以理解为是一个权限设置的容器。群组可以设置不同的权限,例如文件夹的访问权限、上传、下载、删除等。通过配置群组,可以实现对资源的访问控制和权限...

    互联网工作群组管理办法.doc

    《互联网工作群组管理办法》是针对使用互联网群组进行工作交流的规范性文件,旨在确保工作群组的正常运行和信息安全管理。以下是该管理办法的主要知识点: 1. **管理原则**:按照“谁建群、谁管理、谁负责”的原则...

    domino代理(删除群组)

    在Domino环境下,有时需要对系统中的群组进行管理操作,比如删除一个不再使用的群组。本文将详细介绍如何通过Domino代理来完成删除群组的操作,包括删除与该群组相关的角色、视图以及names库中的相关资源。 #### 二...

    威纶通数据群组显示元件-sin曲线平移例程

    在本例程中,我们将探讨如何使用威纶通的EBPro软件,具体是版本V6.01.01.273,配合MT6071iP触摸屏,来实现数据群组显示元件的sin曲线平移功能。这是一个基于宏指令的编程任务,旨在帮助用户理解如何通过编程控制动态...

    Androidの联系人群组Group操作

    本节将深入探讨Android中的联系人群组(Group)操作,这些操作通常涉及到编程接口的使用,以便在应用程序中实现自定义的联系人管理功能。 首先,Android的联系人数据存储在ContentProvider中,它是Android系统提供...

    D07.威纶通数据群组示例程序.rar

    威纶通数据群组示例程序是一套专为威纶通触摸屏(人机界面,HMI)设计的应用实例,旨在帮助用户理解如何在威纶通的编程环境中有效地使用数据群组功能。这个压缩包中可能包含了一系列的工程文件、说明书、教程或其他...

    批量新增用户及群组

    在Windows中,`icacls`命令用于设置文件或目录的NTFS权限,可以在批处理脚本中配合使用,实现对用户或群组的目录授权。 在实际应用中,确保安全性和遵循最佳实践至关重要。例如,避免硬编码密码在脚本中,而是应该...

    如何控制通过群组来群发邮件

    在 Lotus Notes 中,控制通过群组来群发邮件是一项重要的管理功能,这有助于维护邮件系统的秩序,防止不必要的信息过载,以及确保敏感信息只被授权的用户接收。以下是如何实现这一控制步骤的详细说明: 首先,打开 ...

    基于注意力机制的群组推荐系统实现

    具体实现上,可以使用深度学习模型,如Transformer或自注意力网络,来学习每个成员的注意力分布,然后将这些分布合并,生成群组的推荐结果。这样既能体现群体的一致性,又能尊重个体差异。 在"Attentive_Group_...

    网络游戏-使用局部对等群组作为网络群组的路边网络单元.zip

    本文将深入探讨一个独特的概念——使用局部对等群组(Local Peer Group, LPG)作为网络群组的路边网络单元(Roadside Units, RSUs),以提升网络游戏的性能和玩家体验。 局部对等群组(LPG)是一种分布式系统架构,...

    【关于进一步规范XXX群“即时通讯群组”管理的通知】XXXTentacion.pdf

    使用即时通讯群组应避免传输涉密信息。 知识点: 1.即时通讯群组的保密要求:避免传输涉密信息。 2.即时通讯群组的信息传输规定:不得转发给外单位人员,不得发布到个人朋友圈等。 五、上报备案 公司生产经营相关...

    Unity compute shader模拟群组行为

    Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为 Unity compute shader模拟群组行为

    Facebook模拟登录爬取群组成员信息并导出excel

    在本项目中,我们主要探讨如何使用Java进行Facebook模拟登录,并爬取群组成员信息,最后将这些数据导出到Excel文件中。这个任务涉及到网络爬虫技术、模拟登录、数据解析以及文件导出等多个方面的知识。以下是相关...

    基于注意力机制的群组推荐系统实现python源码+操作说明.zip

    基于注意力机制的群组推荐系统实现python源码+操作说明.zip 基于注意力机制的群组推荐系统实现python源码+操作说明.zip 基于注意力机制的群组推荐系统实现python源码+操作说明.zip 使用注意力机制动态的从数据中去...

    基于用户群组RBAC模型的一种实现方法.pdf

    【基于用户群组的RBAC模型】 基于用户群组的RBAC(Role-Based Access Control)模型是一种改进的访问控制策略,它在传统的RBAC模型基础上引入了用户群组的概念,以提高管理和授权的效率。在RBAC模型中,权限不是直接...

    简单的群组聊天工具write-group.zip

    适合手机使用。 寻求简洁,追寻本质,通过链接分享,适合简单地进行群组聊天。 适合对保存聊天记录、跨平台有需求、而不需要太过繁琐的聊天工具的人。 两人群组则为点对点聊天 (≧∇≦) 比如我...

    百度云群组搜寻软件v1.1免费绿色版64位

    《百度云群组搜寻软件v1.1:探索云端资源共享新途径》 在数字化信息时代,云存储已经成为人们日常生活和工作中不可或缺的一部分。百度云作为国内知名的云存储平台,为用户提供了大量的存储空间和便捷的文件共享服务...

    教职工以职务身份管理网络群组备案表.pdf

    2. **个人信息保护**:备案表中包含了教职工的个人信息,如姓名、性别、政治面貌、出生年月、民族和联系电话等,这强调了对教职工个人信息的保护和合理使用的重要性,防止个人信息泄露或滥用。 3. **职责与职务**:...

    模仿qq群组滑动界面切换

    以上就是使用`Fragment`和`ViewPager`实现QQ群组滑动界面切换的基本步骤。在实际开发中,可能还需要处理更多细节,如数据加载、事件监听等。通过这种方式,可以创建一个灵活且易于维护的用户界面,使得用户能够在...

Global site tag (gtag.js) - Google Analytics