Eclipse RCP开发基础

RCP 开发环境

       Eclipse 的重要特征就是他的插件架构, eclipse 的内核比较小,主要是由许多功能插件组合而成。 Rich client platform RCP )也是基于这种插件机制的,与 eclipse workbench 的结构模式一样,程序是由若干个插件组成,通过扩展点的的方式,提供扩展功能的编程接口。

       Eclipse RCP 程序通常由主应用程序( org.eclipse.core.runtime.application ),视窗( org.eclipse.ui.perspective )和 workbench advisor 组成。一般一个 RCP 程序至少需要 "org.eclipse.core.runtime" "org.eclipse.ui" 两个的插件支持,包含在 required plugins 选项中。

 

       两个重要的文件

MANIFEST.MF OSGI manifest 文件,用来描述插件的依赖关系和 build 环境等;

Plugin.xml eclipse 的配置文件,描述插件扩展点等。

PDE 插件提供了这两个文件的图形化编辑器。

 

配置环境

       如果 Eclipse IDE 不是 RCP/Plug-in 的开发版本,则通过 eclipse 的在线更新插件功能,下载“ Eclipse for RCP/Plug-in Developers ”软件包。


       新建 RCP 程序,命名为 RcpProject


       RCP 应用程序启动的过程中, eclipse 会寻找扩展点 "org.eclipse.core.runtime.application" 对应的类,然后这个类被加载运行。在这个类中,创建一个 Display ,创建并运行一个 Workbench ,通过 WorkbenchAdviso r 配置这个 Workbench WorkbenchAdvisor 又是通过 WorkbenchWindowAdvisor 来实现界面的显示的,然后在这个类里面实现菜单、工具栏等。

正常运行程序:


配置 Run configuration

       可以在 Run as Run configuration 中, Plug-in 选项中检查程序的依赖关系,通过 Add Required Plug-ins ,自动把依赖的插件添加进去。增加运行选项 –consoleLog ,这些可以在命令行中看到 RCP 程序的错误信息:

或者可以在 Windows -> Preference -> Plug-in Development -> Target Platform 中设置:


双击 plugin.xml MANIFEST.MF 文件,进入 PDE 的图形化编辑界面的 extensiton, 增加扩展点 org.eclipse.core.runtime.products.

plugin.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

<?eclipse version="3.4"?>

<plugin>

 

   <extension

         id= "application"

         point= "org.eclipse.core.runtime.applications" >

      <application>

         <run

               class= "rcpproject.Application" >

         </run>

      </application>

   </extension>

   <extension

         point= "org.eclipse.ui.perspectives" >

      <perspective

            name= "RCP Perspective"

            class= "rcpproject.Perspective"

            id= "RcpProject.perspective" >

       </perspective>

   </extension>

   <extension

         point="org.eclipse.core.runtime.products">

      <product

            application="RcpProject.product"

            name="name">

      </product>

   </extension>

 

</plugin>

 

打开工程的 Run as Run configuration ,修改配置从 Run an application Run a product ,如图所示:


运行程序( Run as a product ),如果提示“ org.eclipse.epp.package.rcp is missing ”:


那么,在 Run as Run configuration 中, Plug-in 选项中检查程序的依赖关系,通过 Add Required Plug-ins ,自动把依赖的插件添加进去,然后运行程序。

事件响应

       Eclipse RCP 开发中事件响应机制是通过声明 command 组件来实现的,他把 UI 中的菜单、按钮等与事件响应函数或者类关联起来。 Comand 组件在 plugin.xml 文件中以 org.eclipse.ui.commands 作为扩展点。因此,一个事件响应的基本过程,需要三个方面参与: UI command 组件和事件处理函数。

 

添加事件到菜单

       双击 plugin.xml MANIFEST.MF 文件,进入 PDE 的图形化编辑界面的 extensiton, 增加扩展点 org.eclipse.ui.commands.


添加 command default handler 类,双击 defaultHandler 超链接,新建这个类,继承自 org.eclipse.core.commands.AbstractHandler ,代码如下:

package rcpproject.commands;

 

import org.eclipse.core.commands.AbstractHandler;

import org.eclipse.core.commands.ExecutionEvent;

import org.eclipse.core.commands.ExecutionException;

import org.eclipse.core.commands.IHandler;

import org.eclipse.ui.handlers.HandlerUtil;

 

public class ExitHandler extends AbstractHandler implements IHandler {

 

    @Override

    public Object execute(ExecutionEvent event) throws ExecutionException {

       HandlerUtil.getActiveWorkbenchWindow (event).close();

       return null ;

    }

}

这样就建立了一个 command 组件和事件处理函数的关联,下面把他们与菜单事件连接起来。增加 "org.eclipse.ui.menus" 扩展点,并新建一个 menuContribution ,设置其 localURI 为“ menu:org.eclipse.ui.main.menu ”。

 

menuContribution 下新建一个菜单( menu ),命名为 File


 

 

File 菜单创建一个 command ,设置这个 command 为之前创建的 command 组件,通过 commandId 关联起来,并设置提示内容( tooltip )。

 

 

新建一个 command ,绑定一个事件处理函数 Handler ,弹出一个消息框。


添加 command default handler 类,双击 defaultHandler 超链接,新建这个类,继承自 org.eclipse.core.commands.AbstractHandler ,代码如下:

public class HelloWordHandler extends AbstractHandler implements IHandler {

    public Object execute(ExecutionEvent event) throws ExecutionException {

    MessageDialog.openInformation (HandlerUtil.getActiveWorkbenchWindow (

              event).getShell(), "Info", "Info for you");

       return null ;

    }

}

 

添加事件到工具栏

       这样就建立了一个 command 组件和事件处理函数的关联,下面把他们与工具栏事件连接起来。增加 "org.eclipse.ui.menus" 扩展点,并新建一个 menuContribution ,设置其 localURI

toolbar:org.eclipse.ui.main.toolbar


menuContribution 下创建 toolbar ,并把它与 HelloWorld command 组件关联:

 


需要修改 ApplicationWorkbenchWindowAdvisor.java 文件中的代码,显示 RCP 程序的工具栏:

configurer.setShowCoolBar( true );

运行程序:


添加事件到 View toolbar

       首先,在 extension 中增加扩展点 org.eclipse.ui.views, 并新建一个 view ,命名 id 为“ rcpproject.views.View1 ,并与类名称 rcpproject.ViewPart1 关联,双击 class 超链接,新建这个类。

 

       修改 Perspective.java 代码,增加一个 ViewPart ,红色部分是这个 ViewPart 实例的 id (字符串类型),即是之前在 plugin.xml 中创建的 ViewPart

public class Perspective implements IPerspectiveFactory {

    public void createInitialLayout(IPageLayout layout) {

       String editroArea = layout.getEditorArea();

       layout.setEditorAreaVisible( false );

       layout.setFixed( true );

        layout.addView( "rcpproject.views.View1" , IPageLayout. LEFT , 1.0f, editroArea);

    }

}

 

在之前创建的扩展点 org.eclipse.ui.menus 下,新建一个 menuContribution ,设置其 locationURI toolbar:rcpproject.views.View1 ,即 toolbar + 冒号 + id 名称,然后在其下创建一个 command ,并关联到事件响应函数 HelloWorldHandler 上。


运行程序:

 

 

添加事件到下拉菜单

       File 菜单相同的扩展点,增加 menuContribution ,其 locationURI File 相同,建立 menu ,命名为 FatherMenu ,在 FatherMenu 下,建立两个 command ,都链接到 HelloWorld 事件 Handler ,同时,也建立两个 menu ,每个 menu 下面建立一个 command ,也链接到 HelloWorld 事件 Handler


       运行程序:

 


 

 

 

添加事件到工具栏下拉菜单

       按照“添加事件到工具栏”的步骤,建立 fathercommand 按钮,也链接到事件 HelloWorld

 

 

 

 

不同之处在于,添加的 toolbar 下的 command style 选择 pulldown 类型。然后还是在 org.eclipse.ui.menus 扩展点下,新建一个 menuContribution ,设置其 locationURI menu:rcpproject.fathercommand ”, menu + 冒号 + id. 在他下面建立两个 command ,设置他们的 label 为“ Say HelloWorld 1 ,“ Say HelloWorld 2 ,并且都链接到 HelloWorld 事件响应上,这样点击 fathercommand ,或者下面两个按钮都会激发 HelloWorld 事件。


 

运行程序:

 

 

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
目 录 1.富客户端平台 1 1.1.概述 1 1.2.Eclipse RCP 建设风格——插件,扩展扩展点 1 2.创建你的第一个RCP程序 1 2.1.创建一个RCP程序 2 2.2.启动你的RCP程序 5 2.3.应用程序VS 产品 6 3.应用程序里的插件ID 7 4.Actions的用法(菜单和工具栏) 7 4.1.概述 7 4.2.通过编码添加 8 4.3.由“扩展”方式向程序添加菜单和工具栏 11 5.添加组合键 19 5.1.概述 19 5.2.声明actions的组合键 19 6.系统托盘 24 7.外观 30 7.1.向程序中添加视图模板 31 7.2.向应用程序添加VIEW 36 7.3.向VIEW里添加action 40 8.和编辑器一起工作 51 8.1.概述 51 8.2.创建工程 51 8.3.创建并准备domain 模型 51 8.4.在视口中使用domain模型 57 8.5.加入编辑器 58 8.6.调用编辑器 66 8.7.向编辑器提供内容 70 9.对话框 71 9.1概述 71 9.2.预定义的对话框 71 9.2.1.概述 71 9.2.2.创建工程 71 9.2.3.声明action 71 9.2.4.调用对话框 71 9.3.用户自定义对话框 74 9.3.1.概述 74 9.3.2.创建工程 74 9.3.3.声明action 74 9.3.4.声明action 74 9.3.5.创建对话框 75 10.向导(wizard) 77 10.1.概述 77 10.2.例子 77 11.首选项 85 11.1 首选项 85 11.2.使用首选项 85 11.3.首选项页 91 12.添加状态条 97 12.1.安装状态条 97 12.2.共享状态条 98 13.透视 103 13.1.向你的程序中添加透视图 103 13.2.使透视图可选。 107 13.2.1.使透视图可由一个coolbar可选 107 13.2.2.使透视图可通过菜单选择。 109 14.进度报告 112 15.将外部类包含进你的程序 118 15.1.概述 118 15.2.向构建路径中添加jar 118 15.3.使jar在你的运行路径里有效 119 16.提示和策略 120 16.1.控制台日志 120 16.2.保存用户的布局 121 16.3.获得display 122 16.4.使用eclipse的“保存”action 123 16.5.装载模型 127 16.6.向你的程序添加错误日志视口 127 17.制造一个产品 129 17.1.概述 129 17.2.创建一个工程 130 17.3.测试你的产品 134 18.商标 134 18.1.欢迎页面 134 18.2.商标 135 18.3.风格化launcher 136 19.发布你的产品 137 20.发布引入外部jar的产品 141 20.1.整合外部jar和第三方库 141 Tip 142 21.1.创建一个新工程 144 21.2.创建一个产品 144 21.3.添加依赖性 145 21.4.向程序中添加action 146 21.5.创建一个帮助插件工程////原著写的不好 149 22.附录:配置文件 152 22.1.概述 152 22.2..project 153 22.3.Manifest.MF 154 23.附录:使用接口技术 154 23.2.Jface 154
Eclipse Rich Client Application 开发自学教程 For The Eclipser salever 2011-3-28 根据最新版本的Eclipse 3.6 重新编写,每章都可独立于其他章节,内附的代码均可直接运行, 适合Eclipse 开发者参考。 声明 本教程素材来源于网络,经过本人的整理、添加以及部分的重写,将原有的 Eclipse3.3 版本的 一些内容完全迁移到 Eclipse3.6 版本上来。基于开源以及分享的精神,特地将教程分享到网络上, 希望所有需要的朋友因此而受益,也希望大家能有版本意识,转载时注明来自 salever@126.com。 之前有一套基于 Eclipse3.3 版本的教程,也是本人整理,由于本人的疏忽,导致网络上的版本 各不相同,但分享已久,无法改变,希望大家谅解并使用新版本的教程。 本教程由本人发布在 www.ceclipse.org 以及本人的 blog 中,希望对大家有所帮助,也希望各位 喜欢分享的朋友在转载时注明,谢谢。 序 Eclipse RCP 允许开发者使用 eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中 已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP 入手可能会比较困难、费时。接下 来我们将主要讲述如何让RCP 工作. 基于 Eclipse 3.6。 将涉及以下内容:创建第一个 RCP 程序,创建菜单和工具栏,查看,编辑,对话,外部 JAR 的用法,向一个 RCP应用程序产品中添加标志和帮助。 每一章都基本独立于其他章节。 目录 1 富客户端平台 ...................................................................................................................................... 9 1.1 概述 ............................................................................................................................................... 9 1.2 ECLIPSE RCP 建设风格——插件,扩展扩展点 ..................................................................... 9 1.3 RCP与PLUGIN ................................................................................................................................ 9 2 创建第一个RCP程序 ........................................................................................................................ 11 2.1 创建一个RCP程序 ...................................................................................................................... 11 2.2 启动RCP程序 .............................................................................................................................. 15 2.3 程序VS 产品 .............................................................................................................................. 17 2.4 维护LAUNCH配置 ....................................................................................................................... 17 2.5 可能的APPLICATION ID 错误: .................................................................................................. 20 2.6 应用程序的PLUGIN ID ................................................................................................................ 21 3 ACTIONS的用法(菜单栏和工具栏) ............................................................................................ 22 3.1 概述 ............................................................................................................................................. 22 3.2 通过编码添加 ............................................................................................................................. 22 3.3 “扩展”方式添加菜单和工具栏 .................................................................................................. 25 3.4 添加全局快捷键 ......................................................................................................................... 31 3.4.1 Command+Handler+Binding 绑定 ...................................................................................... 31 3.4.2 Action+Command+Binding绑定 .......................................................................................... 33 4 系统托盘 ............................................................................................................................................ 37 5 视图 .................................................................................................................................................... 42 5.1 添加示例视图 ............................................................................................................................. 42 5.2 添加自定义视图 ......................................................................................................................... 47 5.3 向VIEW里添加ACTION ................................................................................................................ 52RCP/Plug-in开发自学教程 版权所有 转载请注明salever@126.com - 5 - 6 编辑器 ................................................................................................................................................ 58 6.1 概述 ............................................................................................................................................. 58 6.2 创建工程 ..................................................................................................................................... 58 6.3 添加编辑器 ................................................................................................................................. 59 6.4 调用编辑器 ................................................................................................................................. 67 6.5 实例:文本编辑器实现 ............................................................................................................. 68 6.5.1 新建工程 .............................................................................................................................. 68 6.5.2 添加菜单栏和工具栏 .......................................................................................................... 70 6.5.3 添加编辑器 .......................................................................................................................... 75 7 对话框 ................................................................................................................................................ 86 7.1 概述 ............................................................................................................................................. 86 7.2 预定义的对话框 ......................................................................................................................... 87 7.2.1 概述 ...................................................................................................................................... 87 7.2.2 创建工程 .............................................................................................................................. 87 7.2.3 添加菜单 .............................................................................................................................. 87 7.2.4 调用对话框 .......................................................................................................................... 87 7.3 用户自定义对话框 ..................................................................................................................... 89 7.3.1 概述 ...................................................................................................................................... 89 7.3.2 创建SWT/JFace工程 ........................................................................................................... 89 7.3.3 自定义Dialog ....................................................................................................................... 91 7.3.4 说明 ...................................................................................................................................... 97 8 向导 .................................................................................................................................................... 98 8.1 概述 ............................................................................................................................................. 98 8.2 示例 ............................................................................................................................................. 98 9 首选项 .............................................................................................................................................. 106RCP/Plug-in开发自学教程 版权所有 转载请注明salever@126.com - 6 - 9.1 首选项 ....................................................................................................................................... 106 9.2 使用首选项 ............................................................................................................................... 106 9.3 首选项页 ................................................................................................................................... 112 10 添加状态栏 .................................................................................................................................... 117 10.1 简介 ......................................................................................................................................... 117 10.2 安装状态栏 ............................................................................................................................. 117 10.3 初始化状态条 ......................................................................................................................... 118 10.4 控制状态栏 ............................................................................................................................. 120 11 透视图 ............................................................................................................................................ 123 11.1 简介 ......................................................................................................................................... 123 11.2 添加透视图 ............................................................................................................................. 123 11.3 显示透视图工具栏 ................................................................................................................. 128 11.4 显示透视图菜单 ..................................................................................................................... 130 12 进度条 ............................................................................................................................................ 133 12.1 简介 ......................................................................................................................................... 133 12.2 进度条对话框 ......................................................................................................................... 133 12.3 JOB进度条 ................................................................................................................................ 135 13 使用第三方JAR ............................................................................................................................. 140 13.1 概述 ......................................................................................................................................... 140 13.2 向构建路径中添加JAR ........................................................................................................... 140 13.3 使JAR在你的运行路径里有效 ................................................................................................ 141 14 提示和策略 .................................................................................................................................... 143 14.1 控制台日志 ............................................................................................................................. 143 14.2 保存用户的布局 ..................................................................................................................... 145RCP/Plug-in开发自学教程 版权所有 转载请注明salever@126.com - 7 - 14.3 获得DISPLAY ............................................................................................................................ 146 14.4 使用ECLIPSE的“保存”ACTION ................................................................................................. 146 14.5 向你的程序添加错误日志视图 ............................................................................................. 146 15 产品 ................................................................................................................................................ 149 15.1 概述 ......................................................................................................................................... 149 15.2 PRODUCT配置文件 ................................................................................................................... 149 15.3 测试你的产品 ......................................................................................................................... 153 15.4 欢迎页面 ................................................................................................................................. 153 15.5 商标 ......................................................................................................................................... 154 15.6 风格化LAUNCHING .................................................................................................................. 155 15.7 发布你的产品 ......................................................................................................................... 156 15.8 创建一个帮助插件工程 ......................................................................................................... 159 16 专题一 ECLIPSE的版本和发行包 .............................................................................................. 164 16.1 版本 VERSION ......................................................................................................................... 164 16.1.1 版本的理解 ...................................................................................................................... 164 16.1.2 Eclipse的版本 ................................................................................................................... 164 16.1.3 版本的选择和下载 .......................................................................................................... 164 16.2 发行包 EDITION ...................................................................................................................... 166 16.2.1 发行包的理解 .................................................................................................................. 166 16.2.2 Eclipse的发行包 ............................................................................................................... 166 17 专题二 ECLIPSE的国际化与语言包 .......................................................................................... 169 17.1 国际化 ..................................................................................................................................... 169 17.1.1 Externalize Strings ............................................................................................................ 169 17.1.2 中文属性文件 .................................................................................................................. 175 17.1.3 国际化文件 ...................................................................................................................... 176 17.1.4 指定语言环境 .................................................................................................................. 176RCP/Plug-in开发自学教程 版权所有 转载请注明salever@126.com - 8 - 17.1.5 Propedit工具 ..................................................................................................................... 177 17.2 语言包 ..................................................................................................................................... 177 17.2.1 Babel小组 ......................................................................................................................... 177 17.2.2 中文语言包的下载 .......................................................................................................... 178 18 专题三 DECORATOR与MARKER的使用 ................................................................................. 180 18.1 简介 ......................................................................................................................................... 180 18.2 扩展DECORATOR ...................................................................................................................... 180 18.3 扩展MARKER ........................................................................................................................... 184 19 专题四 RUN/DEBUG LAUNCHER实现 .................................................................................... 190 19.1 ECLIPSE RUN/DEBUG 实现流程 ............................................................................................... 190 19.2 扩展CONFIGURATIONTYPE ....................................................................................................... 192 19.3 扩展ILAUNCHSHORTCUT ......................................................................................................... 194 19.4 创建RUN/DEBUG CONFIGURATION界面 .................................................................................. 197 19.5 指定RUN/DEBUG显示图片 ..................................................................................................... 204 19.6 说明 ......................................................................................................................................... 205 20 专题五 EQUINOX P2 方式实现RCP自动更新 ......................................................................... 207 20.1 概述 ......................................................................................................................................... 207 20.2 示例 ......................................................................................................................................... 207 20.2.1 Feature概念 ....................................................................................................................... 207 20.2.2 配置Product ..................................................................................................................... 210 20.2.3 配置Feature ...................................................................................................................... 211 20.2.4 product导出 ...................................................................................................................... 213 20.2.5 配置Equinox P2 ............................................................................................................... 214 20.2.6 配置 Update Site ............................................................................................................. 215 21 专题六 COMMON NAVIGATOR FRAMEWORK初探 ............................................................. 216

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值