当前位置: 代码迷 >> Eclipse >> eclipse rcp 基础知识 总结
  详细解决方案

eclipse rcp 基础知识 总结

热度:908   发布时间:2016-04-23 12:39:57.0
eclipse rcp 基础知识 小结
1. Workbench 工作台:为eclipse提供用户界面。
2. Workspace工作区:负责管理用户资源的插件。
3. Help帮助系统:具有与eclipse 平台本身相当的可扩展能力。
4. run-time 运行平台:它在启动时检查安装了哪些插件,并创建关于他们的注册表信息,插件在实际需要时才加载。
5. jdt java开发工具。
6. pde 插件开发工具。

Eclipse是各种插件的集合,但总体而言,插件开发有两种提供方式,一种是插件集构建的应用,拥有自己的程序入口,如Eclipse平台在Windows下通过点击eclipse.exe可以进入。另一种是以扩展的方式提供的插件集,它们通常不是完整的,也没有自己的程序入口,仅用以加入到已存在的平台中进行辅助性的开发,如GEF、EMF、CDT等。
Application通过扩展来定义,该扩展指定一个类(扩展点)作为主程序的入口。Application必须实现IplatformRunable接口,由此接口提供的run方法接管Eclipse平台的控制权,当Application结束时,Eclipse平台也会退出。

Products运行于Application之上,它主要提供典型应用程序的基本界面的实现,例如闪屏、windows图标等。一个Eclipse安装中可能存在多个Application和Product,但是在同一时刻只能运行一个Application和一个Product
Eclipse是各种插件的集合,但总体而言,插件开发有两种提供方式,一种是插件集构建的应用,拥有自己的程序入口,如Eclipse平台在Windows下通过点击eclipse.exe可以进入。另一种是以扩展的方式提供的插件集,它们通常不是完整的,也没有自己的程序入口,仅用以加入到已存在的平台中进行辅助性的开发,如GEF、EMF、CDT等。



RCP体系结构

RCP就是一个简化了的eclipse平台,它只包含5个插件:
runtime是核心类,
osgi是定义的一个标准,用来规范不同的插件,让他们可以相互协作。
剩下的三个插件Workbench、SWT、JFace是用来显示给用户界面的。 



填充RCP框架的"血肉"(内容:) ):

1.Workbench
每个RCP应用程序,对应一个Workbench(工作台),应用程序的主窗体.

2.Perspective
模块化单元,一个Workbench可包含多个Perspective(透视图),各个透视图之间是相互独立的单元.
主要功能:布局视图

3.View
视图:主要负责信息的显示.一个透视图可包含一或多个视图.
特点:
可灵活布局于特定透视图,
作为一个独立的显示模块, 可重用

4.Editor
编辑器:信息编辑区域.一个透视图对应一个编辑器.
特点:可以与视图进行及时交互;方便用户编辑数据.

几个不得不知道的文件:

● src文件夹下为运行插件时的一些类文件。

● MANIFEST.MF为插件清单文件,是插件与外界沟通的桥梁。





MANIFEST.MF文件是保存OSGi 的 Bundle文件。该文件也就是与其他平台的接口,通过该接口,外部平台可以使用该Eclipse的插件程序。关键的key值所表示的意义:

  Bundle-Name:插件的名称。

  Bundle-SymbolicName:为插件的唯一标识。


  Bundle-Activator:为主程序启动的类的全名。

  Require-Bundle:系统编译和运行的依赖项,可以加入其他所必需的插件。



● build.properties文件为构建RCP程序时所导入的类库设置。
build.properties是保存构建、打包和导出插件所需的所有信息的文件。




● plugin.xml是最重要的文件,该文件是插件的配置文件,集中管理插件内部的运行,在该文件中可以查找所有与该插件有关的信息。



plugin.xml文件是插件开发中最重要的文件,包含声明插件的扩展和扩展点配置。
id="application",表示该扩展点的标识。
point="org.eclipse.core.runtime.applications",表示扩展点的类型。这里表示该扩展点是系统扩展点,例如另一个扩展点类型“org.eclipse.ui.perspectives”为透视图扩展点。
<run>子项中定义了系统启动的class类,为com.fengmanfei.myrcp.Application,可以在源文件下找到这个.java源文件。
对于不同的扩展点有不同的配置元素,读者可以参考Eclipse的帮助文档。

3.RCP运行基本原理

A 插件类MyRCPPlugin
系统运行后首先在MANIFEST.MF文件中找到Bundle-Activator所对应的插件类.该类主要创建整个插件的对象,是插件的全局对象。可以通过该类的静态方法获得插件对象的引用,然后获得插件的各种信息,包括插件所对应的Bundle文件信息、log日志对象和工作台对象等。


B应用程序类Application
创建了插件类后,如何来创建主窗口呢?Eclipse运行的程序都是通过扩展点来配置的,初始化的界面程序也不例外,也是在配置的插件文件中配置好的。创建了插件类后,程序会自动查找plugin.xml文件,是否有对应的应用程序扩展点org.eclipse.core. runtime. applications。如果有,再找到该运行程序所对应的class,然后创建对象。

C工作台窗口类
该类创建时首先对工作台进行设置。是在preWindowOpen方法中实现的。该方法会在窗口打开之前调用。另外,也可以通过覆盖父类中的方法来进行窗口打开之前的配置工作和窗口关闭的善后处理工作。

D操作类
创建窗口时,会创建菜单栏和工具栏,此时创建的是ApplicationActionBarAdvisor对象。在该类中,可以添加各种操作项来创建菜单栏、工具栏和状态栏等。

E透视图类
最后,在创建工作台对象时,要指定一个默认的透视图对象。要实现一个透视图类,就要实现IPerspectiveFactory接口。


4.RCP优势

A.开发效率相对较快;
B.界面简洁不失美观;
C.运行速度快;
D.跨平台;
E.与J2EE完整结合;
F.基于Internet布署,维护更加方便;

在我们的RCP Project中的MyRcpProjectWorkbenchAdvisor类中的public void initialize(IWorkbenchConfigurer configurer)方法中加入   WorkbenchPlugin.DEBUG = true 就可以打印出我们想要的StackTrace了。
具体测试代码如下。

public void initialize(IWorkbenchConfigurer configurer){

  WorkbenchPlugin.DEBUG = true;
  configurer.setSaveAndRestore(true);
   // Test code
   String s = null;
   s.length();
  //

}
这样编写在开发阶段进行调试。