昨天david问到如何将旧的swt应用转成一个RCP应用,昨晚胃疼难忍,于是草草说了一下,就早早上床休息了,早上起来又想起这件事情,遂在这里说一下思路下面说一下我的思路(注:以下观点未经证实,请自行斟酌使用)
一个旧的SWT应用,应该都是有一个main函数里初始化一些UI组件,然后run一个事件循环
在RCP中,由于是基于Eclipse的插件体系,也就是说,使用我前面那篇文章发布的RCP Application,是可以直接发布成Eclipse插件的所以,对于UI组件的控制也要遵循Eclipse的插件体系的代码要求,看看Hello RCP模板中的几个类:ApplicationActionBarAdvisor、ApplicationWorkbenchAdvisor、ApplicationWorkbenchWindowAdvisor以及RCPPlugin,想起了什么?对,OSGI
我们只要将原swt的main函数中初始化的ui组件,放入到这几个Advisor中进行初始化
将下拉菜单项的ui组件的初始化工作放入到ApplicationActionBarAdvisor的如下方法:
将其他UI组件初始化工作放入到ApplicationWorkbenchWindowAdvisor的如下方法:
至于ApplicationWorkbenchAdvisor这个类,我想你一定想起了Eclipse中的Workbench概念在这里,可以定义当这个RCP作为plugin的时候的Worbench的透视图的一些属性。
-----------------------------------
最后,基于Eclipse3.1的product方式的RCP程序将获得同Eclipse相同的插件体系支持也就是说:你的应用本身就是基于Eclipse Platform的,这样,你的程序也可以接受插件插入了(如果你设计的好的话^_^)另外,还有其他很多好处,比如在线升级功能的自动绑定啊,帮助功能的使用啊等等想一想,你的程序将既能作为单独的程序运行,又能作为Eclipse的插件运行,而且还跨平台,think about it...So....try it now, you will get more
posted on 2006-01-17 11:02 fisher 阅读(1735) 评论(0) 编辑 收藏 所属分类: Eclipse Tech
Powered by: BlogJava Copyright © fisher