RCP项目的结构

Eclipse版本:3.6.2
 
Content
1、生成一个简单的RCP示例
2、配置文件分析
3、分析自动生成的代码结构以及作用


1、在Eclipse中创建一个RCP程序是非常简单的,New -> Other -> Plug-in Project ->输入项目名,在Next中,把“Rich Client Application”中的"Yes"选中。然后选择一个模板,本文中,将选择“RCP application with a view”,Eclipse会在我们的例子中添加一个视图。



完成之后,右键项目,Run as   -> Eclipse Application。
将看到如下的结果:
我们没有输入一行代码,Eclipse就已经帮我们生成了一个可以运行的程序了。
这个程序运行起来挺简单,展示了一个View,View里面显示了三条数据,等下我们看代码可以知道,这其实是一个Table。在菜单栏上,还有一个File菜单。


2、接下来,将分析这个程序的代码结构:
新建完项目之后,会自动打开一个名叫MANIFEST.MF的文件,这个文件包含了很多个选项卡:
其实只有Overview、Dependencies、Runtime是属于MANIFEST.MF的图形化编辑器
Extensions、ExtensionPoints是属于Plugin.xml的图形化编辑器
Build是属于build.xml的图形化编辑器
后面三个选项卡分别是对应这三个文件的文本编辑器。
只是在Eclipse中,把这三个一系列的配置都放在了同一个编辑器中处理了。


MANIFEST.MF中包含了一些关于Bundle的配置(元信息),Bundle在OSGI中被称为是组件,每一个插件或者RCP项目都可以被称之为一个 Bundle,Eclipse的内核是一个被称为是Eqinox的OSGI实现,在加载Bundle的时候,它会去加载每个Bundle的MANIFEST.MF文件,读出这个Bundle的依赖和暴露的服务,从而完成插件的加载过程。
关于OSGI,可以访问:www.osgi.com.cn。

plugin.xml,和Eclipse的扩展点和扩展相关
扩展点本身不具备扩展功能,它仅仅是一个格式规范,是一个schema
扩展,它是真正的配置项,(XML格式),用户根据扩展点提供的约束,填入合适的值。
我们的示例中实现了一个View的扩展。

properties.properties文件包含了一些打包的信息,提供给ant使用的。

3、接下来,分析自动生成的Java文件的作用:

① Activator.java
继承自AbstractUIPlugin,一般的,基于UI的插件(需要org.eclipse.ui插件的插件)具有一个启动器,
当插件关闭的时候,AbstractUIPlugin会自动保存所有的插件首选项,这些首选项可以通过getPrefrenceStore()访问。

createImageRegistry()  返回该插件的信图像注册表,可以使用该注册表管理插件经常使用的图像,该方法的默认实现创建了一个空的注册表。
getDialogSettings()  返回UI插件的对话框设置,对话框设置保存工作台环境中该插件的不同向导和对话框的持久状态数据。
getImageRegistry()   
initializeImageRegistry(ImageRegistry reg)
loadDailogSettings()

控制插件的生命周期的类,它比Application类更早被调用。

② Application.java  
  Bootstrap类,以前是实现了IPlatformRunnable接口,现在变成了IApplication。在start方法内,需要构建一个新的ApplicationWorkbenchAdvisor对象。
int  returnCode = PlatformUI.createAndRunWorkbench(display,  new  ApplicationWorkbenchAdvisor());

③ ApplicationWorkbenchAdvisor.java
负责应用程序的生命周期的管理,继承自WorkbenchAdvisor,开发人员可以在该类中实现程序启动或者关闭时候的某种处理,这个只是给了用户一个初始的界面,配合ApplicationActionBarAdvisor和ApplicationWorkbenchWindowAdvisor才能构成一个比较完整的界面。
它里面有一些方法是很有用的,如果需要在程序启动的时候做一些操作或者在程序结束之前做一些状态保存。
initialize,preStartup,postStartup,preShutdown,postShutdown

④ ApplicationWorkbenchWindowAdvisor.java
在ApplicationWorkbenchAdvisor中同样也创建了一个ApplicationWorkbenchWindowAdvisor对象,它负责窗口生命周期的管理,状态栏,工具栏,菜单,窗口标题,大小,各种控件等等,也可以处理窗口的各种事件流程。
preWindowOpen方法在窗口控件创建之前调用,用来配置窗口。
createActionBarAdvisor创建了一个ApplicationActionBarAdvisor对象
postWindowRestore:当窗口根据上一次的保存状态恢复创建之后,可以用来调整窗口恢复状态。
postWidowCreate:窗口创建之后,用于调整窗口
postWindowOpen:当窗口已经打开之后调用,可以用来注册窗口监听,例如在此方法中实现系统托盘

⑤ ApplicationActionBarAdvisor.java
负责管理窗口的菜单栏,状态栏,工具栏的外观和行为。
makeActions方法用来注册菜单或者工具栏的动作,fillMenuBar方法用来添加菜单栏

⑥ Pespective.java
透视图,用来对Eclipse的视图和命令进行分组以用于特殊任务的方法,可以通过扩展来定义自己的透视图。


参考文档:



《Eclipse插件开发》原书第三版 陈沛 等译

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值