学习EclipseRCP

RCP(Rich Client Platform)是一个使用Java技术构建富客户端应用的平台,它使用SWT/JFace技术构建界面部分,使用Eclipse平台作为RCP程序的运行环境,本质上RCP是Eclipse平台的插件。RCP的优点是可以快速开发桌面系统,构建一般的应用都很简单,甚至构建一个浏览器只需要拖出一个浏览器控件就可以,复杂的地方就是需要做一定的配置。

RCP程序可以脱离Eclipse平台运行,这样完成之后的RCP产品打包之后只有很小的体积。

 

RCP和Eclipse - PlugIn

 

它们俩在本质上是相同的,都是使用SWT/JFace技术构建的;而RCP可以独立运行(脱离Eclipse),PlugIn只能运行在Eclipse中,像其他的各种Eclipse插件一样;完成之后的RCP程序有直接可启动的.exe文件,可以运行,PlugIn可能只是一些jar文件,需要加入到Eclipse的plugin文件夹下才可以使用。

在Eclipse中创建插件工程时候,这两个的区别就是“是否选择该插件成为RCP?”选项的差别,选择完毕之后生成的插件代码也不一样的。

 

要学习Eclipse RCP编程,首先对Eclipse平台要有一个大概的了解。知道Eclipse界面由几部分构成,其中包括:

 

Workbench(工作台):整个Eclipse平台就是一个workbench

 

Editor(编辑器):可以认为它是放置一些控件的容器

 

View(视图):同样可以认为它是放置一些SWT控件的容器,它和Editor的区别是:1)在一个当前页面中,只能有一个同样的视图,但是可以有多个同样的编辑器(在Eclipse中编辑java文件时候,可以打开多个java文件,这是编辑器,而只能调出一个console视图,这是视图);2)编辑器是固定在当前页面的具体位置的,但是视图可以在页面中移动;等等。

 

Perspective(透视图):特定的视图和编辑器的组合

 

还有需要了解,使用Eclipse开发RCP过程中的一些文件的含义,主要有

MANIFEST.MF:插件清单文件

build.properties:构建RCP程序时所导入的类库设置

plugin.xml:最重要的文件,它是插件配置文件,集中管理你所创建的各个控件是如何接入到Eclipse平台中的。

使用Eclipse的插件工程向导生成的项目框架之后,src包中包括了一些java文件,有控制RCP程序生命周期的类Application.java,等等,需要具体了解的可以查看生成的代码。

 

RCP程序的界面显示其实使用的是SWT/JFace技术,一旦了解清楚如何创建RCP框架之后,就和使用SWT构建一般界面没什么区别了,SWT可以使用VE插件进行开发,SWT以前使用过,开发过几个小应用,所以重点是如何构建这个RCP应用的框架。

 

构建RCP应用的框架,其实也就是弄清楚怎么扩展Eclipse,使用Eclipse平台可以很方便的进行扩展的配置,它已经内嵌了一些常用的扩展模版,通过UI的形式就可以很方便的完成。

比如说我想要给我的系统加一个菜单栏,则需要在plugin.xml文件的扩展选项卡中找到 org.eclipse.ui.menus > right-click > New > menuContribution > locationURI = menu:org.eclipse.ui.main.menu 然后在右侧的属性面板中设定一些该菜单项的基本属性,包括它的显示文本、它所要执行的命令(command)等信息。

 

添加一个工具栏,需要在扩展选项卡中找到 org.eclipse.ui.menus > right-click > New > menuContribution > locationURI = toolbar:org.eclipse.ui.main.toolbar > right-click > New > toolbar 这样便可以添加工具栏(还需要在WorkbenchWindowAdvisor.preWindowOpen:中添加configurer.setShowCoolBar (true);

 

添加一个视图,plugin.xml > Extensions > Add > org.eclipse.ui.views > right-click > New > View > id, class

 

添加一个编辑器,plugin.xml > Extensions > Add > org.eclipse.ui.editors > id, class, icon

打开该编辑器

 

 IWorkbenchPage page;
 IEditorInput input;
 page = PlatformUI.getWorkbench ().getActiveWorkbenchWindow ().getActivePage ();
 // else if in ViewPart // page = getSite ().getPage ();
 page.openEditor (input, "editor_id");

 

等等

 

创建好你所需要的各个控件之后,所需要的就是画界面了,这和java的SWT编程就没有什么区别了。

 

完成界面部分的创建后,需要的就是导出产品了,如果你所建立的工程是插件形式的,可以直接导出jar文件,然后拷贝到Eclipse的plugin目录下,就可以使用该插件了;如果是RCP工程,需要新建***.product文件,构建该产品的描述文件。

(具体导出方法待完成)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章