文档库 最新最全的文档下载
当前位置:文档库 › Eclipse_RCP_Tutorial(中文)

Eclipse_RCP_Tutorial(中文)

Eclipse_RCP_Tutorial(中文)
Eclipse_RCP_Tutorial(中文)

(RCP教程)

Tutorial(RCP

Eclipse RCP Tutorial

Lars Vogel

4.6((版本4.6)

Version4.6

Copyright?2007-2010Lars Vogel

28.06.20100

28.06.201

翻译:廖永为(武汉纺织大学)

2010-09-27

Eclipse RCP

这篇文章介绍了如何开发eclipse RCP应用程序(基于eclipse3.6平台eclipse Helios)。

目录

1.Eclipse RCP (1)

1.1概述 (1)

1.2.RCP体系结构 (2)

1.3.RCP的主要组成部分 (3)

1.4.配置文件 (3)

2.Eclipse安装 (4)

2.1.Eclipse安装 (4)

2.2.升级Java IDE (4)

3.创建RCP应用程序 (5)

3.1.创建RCP应用程序 (5)

3.2.运行RCP应用程序 (9)

4.启动过程和指导 (11)

5.运行配置 (12)

Overview””标签项 (12)

5.1.“Overview

5.2.检查运行时配置 (13)

6.命令 (15)

6.1.概述 (15)

6.2.定义命令 (15)

6.3.在菜单中使用命令 (18)

7.系统托盘 (22)

8.视图 (26)

8.1.概述 (26)

8.2.创建一个视图 (26)

8.3.给透视图增加视图 (27)

8.4.结果 (28)

8.5.通过代码把视图添加到透视图 (28)

8.6.编辑器/视图联合使用 (29)

9.对话框 (30)

9.1.概述 (30)

9.2.使用预定义对话框 (30)

9.3.选择 (31)

9.4.用户定义的对话框 (33)

10.区域帮助 (38)

11.向导 (40)

11.1.概述 (40)

11.2.例子 (40)

12.增加状态栏 (45)

12.1.加上状态栏 (45)

12.2.共享状态栏 (46)

13.透视图 (50)

13.1.给应用程序增加透视图 (50)

13.2.选择透视图 (52)

14.产品和绑定 (54)

14.1.应用程序和产品 (54)

14.2.产品配置 (54)

14.3.创建产品配置文件 (54)

14.4.依赖项 (57)

14.5.运行产品 (58)

14.6.闪屏 (59)

14.7.绑定你的产品 (60)

14.8.定制启动图标和参数 (61)

15.产品部署 (63)

16.技能技巧 (66)

16.1.保存用户布局 (66)

16.2.查找不可用的依赖 (67)

16.3.用你的RCP应用程序部署你自己的JRE (68)

16.4.多用户设置 (68)

17.进一步学习 (69)

18.鸣谢 (69)

19.问题讨论 (69)

20.相关链接和文献 (70)

20.1.源代码 (70)

20.2.Eclipse资源 (70)

20.3.vogella资源 (70)

1.Eclipse RCP

下面假设你已经了解如何使用eclipse IDE集成开发环境。

1.1概述

Eclipse RCP富客户端平台能让开发者使用eclipse平台建立灵活多变和具有可扩展性的桌面应用程序。Eclipse建立在插件架构上,插件是eclipse可识别的最小功能和组成单位(组件)。插件体系结构让eclipse能通过第三方工具扩展其功能。RCP为独立的应用程序提供了同样的组件功能概念。

eclipse IDE典型的体系结构如下:

一个RCP应用程序必定会使用其中的一些部件。这能设计无数的基于eclipse的应用程序,而且只需要运行时间。RCP应用程序经常这样使用:

创建和运行一个RCP应用程序最少需要2个插件:org.eclipse.core.runtime,org.eclipse.ui

OSGI运行时环境提供了模块运行的框架。SWT一个标准的UI部件库,为eclipse和JFace提供了一些建立在其之上的API,并且这个平台提供了所有其它显示UI部件的应用程序框架。

1.2.RCP体系结构

Eclipse最重要的体系结构特征是其插件架构。Eclipse应用程序是以大量的插件建立的,以此来定义它们的API和依赖关系。这种架构最基本的是其运行环境Equinox,它是参考OSGI来实现的。Eclipse 用“plugin”和OSGI用“bundle”,其实是相同的意思。OSGI支持eclipse插件定义:

?它们的API-能被其它插件使用的公共类

?它们的依赖关系-包或插件是插件正确运行所必需的

每一个插件定义了扩展点可以为其它插件所用(代码和非代码的)。插件也能使用扩展,例如:提供扩展点的功能:

扩展和扩展点在plugin.xml中被描述。这是一个XML文件,它能通过PDE编辑,提供了一个用户编辑接口。

1.3.RCP的主要组成部分

一个RCP应用程序需要如下组成部分:(这个组成的定义将在以后的教程中说明)?主程序(Main program)——RCP主应用程序类实现接口。这个类可以看作等同于标准Java 应用程序的main方法。

?透视图(Perspective)——这个透视图从org.eclipse.ui.perspective扩展而来

?Workbench Advisor——隐藏的技术组成部分,控制应用程序的界面(菜单,工具栏,透视图等)

1.4.配置文件

一个RCP应用程序有2个主要的配置文件:

?MANIFEST.MF——包含了OSGI配置信息

?plugin.xml——有关扩展和扩展点的信息

2.Eclipse安装

2.1.Eclipse安装

在eclipse官网上,点击“下载”。下载"eclipse for RCP/Plugin Devlopers"包。解压下载的文件到你的硬盘。eclipse的路径不要使用具体的参数或位置。

2.2.升级Java IDE

如果你已经下载了eclipse Java IDE(或其它非RCP平台),你可以使用eclispe升级管理安装RCP 开发所需的插件。如要使用升级管理请看帮助文档eclipse升级管理升级过程的详细说明。

从Helios升级站点安装“普通目标工具”->“eclipse插件开发环境"和“eclipse插件开发资源"。你可通过取消“目录组件项”(Group items by category)标签来看其特征,如下图:

3.创建RCP应用程序

接下来通过向导创建一个RCP程序的向导。

3.1.创建RCP应用程序

在eclipse中选择File->new project。从菜单中选择"Plug-In Project(插件工程)"。插件工程取名为“de.vogella.rcp.intro.first"。

点击“下一步”进入下一步设置。如果要开发RCP应用程序,在“你是否想创建一个富客户端应用程序”(would you like to create a rich client application)中选择“yes”。

在这个教程中我想使用“创建一个RCP工程”来表示你应该激活“你想创建一个富客户程序”来创建一个新的插件工程。

接下来选择“Hello RCP”模板。

按下一步并选择“增加绑定(Add branding)”并按完成。

结果会产生一个如下图工程结构的工程(project)。看看对于这个工程结构第一感觉有什么不同,特别是相对于普通的Java文件结构。

3.2.运行RCP应用程序

双击打开MANIFEST.MF。你能看见一个编辑器并选择“预览(overview)”项,点击“启动eclipse应用程序”。

运行结果如下:

恭喜你,你已经创建你的第一个RCP应用程序。

4.启动过程和指导

在启动eclipseRCP应用程序期间,eclipse运行时间将被评估,评估类是通过

org.eclipse.core.runtime.application的扩展点来定义的。评估类在装载之后创建和运行一个工作平台,工作平台的配置通过WorkbenchAdvisor来配置。工作平台将启动一个WorkbenchWindow,WorkbenchWindow通过WorkbenchWindowAdvisor来配置。WorkbenchWindow产生应用程序的工具栏(toolbar),工具栏在启动时通过ActionBarAdvisor配置

每个adviser允许给应用程序配置一定的操作,比如:WorkbenchAdvisor允许启动和关闭时能过覆盖preStartUp()and preShutdown()方法来执行一些操作。

5.运行配置

Overview””标签项

5.1.“Overview

Eclipse中有一个运行配置文件定义应用程序启动时的运行环境,比如:编译,插件依赖项等。有时运行配置文件称作启动配置launch configuration。如果启动你的RCP应用程序运行配置文件将自动生成。

若要查看和编辑运行配置文件,可右击MANIFEST.MF,选择Run As->Run Configurations

在“main”中你应该确定哪些是运行你的RCP应用程序所必需创建的文件。

5.2.检查运行时配置

在Plug-ins标签页中选择启动之前进行验证(Validate plug-ins prior to launching)。这能检查你启动配置项中所有插件依赖项。如果你在检查报告中发现丢失了一些插件,可以尝试用Add

Required-Plug-Ins来增加所需的插件依赖项。

这能解决一些像One or more bundles are not resolved because the following root constraints are not resolved或https://www.wendangku.net/doc/2016348848.html,ng.RuntimeException:No application id has been found这样的错误。

在Arguments项中找到-consoleLog参数。这个选项可以在RCP应用程序控制台查看器中查看错误,对于辨别错误是非常有帮助的。

其它有用的参数-console(检查应用程序启动时产生OSGI控制台)和-noExit(应用程序运行结束或异常将能继续运行OSGI控制台)

6.命令

6.1.概述

命令(command)是组件的声明描述和独立的执行单位。命令可以归类并能给它分配快捷键,可用在菜单,工具栏或上下文菜单中。接下来将说明菜单中命令的用法。要深入了解命令请看Eclipse Commands-Tutorial。

命令要比操作(actions)好。我认为操作(actions)作用应该被降低。请看Bug for deprecating Actions。

6.2.定义命令

接下来我们创建应用程序退出命令。新建一个RCP工程https://www.wendangku.net/doc/2016348848.html,mands.first。点击plugin.xml选择扩展标签,然后点击增加(add)按钮。

搜索扩展点https://www.wendangku.net/doc/2016348848.html,mands,选择它并按完成。

右击扩展点选择New->command新建一个命令.

ID设置为https://www.wendangku.net/doc/2016348848.html,mands.Exit,name为Exit。输入类

https://www.wendangku.net/doc/2016348848.html,mands.ExitHandler作为defaultHandler。按defaultHandler超链接创建这个类,选择https://www.wendangku.net/doc/2016348848.html,mands.AbstractHandler作为超类。

实现如下代码之后新命令就可以用了。

package https://www.wendangku.net/doc/2016348848.html,mands;

import https://www.wendangku.net/doc/2016348848.html,mands.AbstractHandler;

import https://www.wendangku.net/doc/2016348848.html,mands.ExecutionEvent;

import https://www.wendangku.net/doc/2016348848.html,mands.ExecutionException;

import org.eclipse.ui.handlers.HandlerUtil;

public class ExitHandler extends AbstractHandler{

@Override

public Object execute(ExecutionEvent event)throws ExecutionException{

HandlerUtil.getActiveWorkbenchWindow(event).close();

return null;

}

}

6.3.在菜单中使用命令

The command which we defined should be used in a menu.Add the extension point

"org.eclipse.ui.menus"to your application similar to adding the extension"https://www.wendangku.net/doc/2016348848.html,mands". Right click on the extension point and select new->menuContribution.

我们将在菜单中使用定义的命令。给应用程序增加org.eclipse.ui.menus扩展点,同样增加

https://www.wendangku.net/doc/2016348848.html,mands。左击扩展点选择new->menuContribution。

新建一个的分布式菜单(menu contribution组合菜单),用本地URI:menu:org.eclipse.ui.main.menu。确保这个URL是正确的,否则菜单就无法显示。

右击分布式菜单,选择New->Menu,增加标签file,id为fileMenu。

相关文档