Eclipse RCP技术简介

【Eclipse RCP】1. 一个简单的RCP程序示例 创建第一个RCP项目 New - Plugin Project 设置其ID、版本号、名称 取消选择Generate an activator 将Rich Client Application区域设为Yes 选择Hello RCP模板 生成的项目结构如下: 运行 自动创建的代码会生成一个空界面,运行结果如图: 代码 阅读详情
1、引言

Eclipse是一个开放源代码的、基于Java的可扩展的开发平台。就其本身而言,它只是一个框架、一组服务,用于通过插件来构建开发环境。当我 们提到Eclipse的时候,许多Java开发者的第一反应就是那个性能良好,界面漂亮,Debug功能奇佳的Java集成开发平台。

无可否认,Eclipse常常作为一款优秀的IDE (Integrated Development Environment,集成开发环境)出现在开发者面前的。它不仅仅是Java的IDE,还可以是C语言的IDE、Python的IDE——只要开发出 相应语言的插件,Eclipse就可以成为任何语言的IDE。但是,这些严格来说都是Eclipse RCP的应用。真正的Eclipse,是一个提供了一个完善的插件机制RCP(Rich Client Platform,胖客户端平台)平台;它以SWT/JFace作为界面元素组件,提供给用户一个名为Workbench的UI平台;加上它本身优秀的插 件机制,它能够构造出扩展能力强、性能优秀、并能提供给用户良好UI体验的服客户端平台。

2、Eclipse RCP简介

Eclipse RCP是一项位于Eclipse平台核心的功能。大多数人想到Eclipse时,会想到Java集成开发环境(IDE)。如果将Eclipse中关于 IDE的内容剥去,剩下的就是一个提供基本工作台功能的核心,包括对可移动以及可叠加的窗口组件(编辑器和视图)、菜单、工具栏、按钮、表格、树形结构等 等的支持,而这个核心就是Eclipse RCP。

个人理解Eclipse RCP就是由插件开发转向桌面应用开发,构建最小化的Eclipse平台(8M)运行你的桌面应用,不必再为程序框架烦心,摆脱失败的AWT和Swing,让程序拥有专业级效果,而实现又很简单、很优雅。

RCP提供了丰富的界面控件,这使得基于 Java 开发桌面应用也变得容易了很多,虽然仍然不能和基于VB、Delphi进行相比。对于开发者而言,尽管使用 RCP 也是为了开发桌面应用,但 RCP 给开发者带来的更多的感觉是在它充分发挥了插件化系统的优势, RCP 可以视为基于 OSGi(Open Service Gateway Initiative) 构建插件化系统的最佳实践的指导,从 RCP 的设计中,可以学习到如何将应用做到模块化、将应用做到动态化,甚至还可以学习到如何自动生成界面这样的设计思想。 RCP 可以看做是基于 OSGi 做插件化应用系统的最佳实践,其中的不少设计方法甚至都可以整理成为基于 OSGi 做插件化应用系统的设计模式,让我们进入 RCP 之旅,揭开面纱,一探其本质吧!相信大家在了解了 RCP 的设计思想,看过其代码后,不得不对 RCP 表示崇高的敬意,大师之作,不同凡响。

Eclipse RCP为应用程序开发人员提供了:

◆应用程序和特性的一致且本地的外观;

◆公共应用程序服务,例如窗口管理、更新管理、帮助和选择管理;

◆本地的外观,利用Windows、Mac OS X、Linux、Solaris、HP-UX、AIX和嵌入式设备上的实际平台窗口部件;

◆标准化的组件模型;

◆普及的可扩展性;

◆整合的更新机制;

◆顶级开发工具(Eclipse 软件开发包(SDK)是世界级的软件开发环境)。

Eclipse RCP项目用SWT图形库和工具包取代了Java标准中的AWT和Swing。SWT直接调用了操作系统的图形库,从而使得Java应用程序的LOOK & Feel 与操作系统的习惯完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了基于SWT 的Java应用程序的运行速度。SWT 的缺点主要在于两点:(1) 不是Java语言标准; (2) 支持的平台太少。

3、Eclipse RCP体系结构

一个Eclipse RCP可分为如下五个部分,如下图所示:

图1

(1)Wrokbench工作台

为Eclipse提供用户界面。它是使用SWT(Standard Widget Toolkit)和一个更高级的API(JFace)来构建的;SWT是Java的Swing/AWT GUI API的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。

(2)Workspace工作区

工作区是负责管理用户资源的插件。它包括用户创建的项目、项目中的文件,以及文件变更和其它资源。工作区还负责通知其它插件关于资源变更的信息,比如文件创建、删除或者变更。

(3)Help帮助系统

帮助组建具有与Eclipse平台本身相当的可扩展能力。与插件向Eclipse添加功能相同,帮助提供一个附加的导航结构,允许工具以HTML文件的形式添加文档。

(4)Team团队支持系统

团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所有使用的任何版本控制系统交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。

(5)Platform Runtime运行平台

平台运行库是整个Eclipse的内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要某个插件的时候才加载该插件。除了内核外,其它每样东西都是作为插件来实现的。

Eclipse最明显的一大优点就是即插即用、即删即无。在构建插件化的应用系统的时候,我们通常希望做到以下三点:

(1)通过增加插件来动态扩展系统功能,包括功能的入口等,最重要的就是不要因为增加了新的插件,而导致对原插件的修改,做到即插即用, OSGi 本身提供了基于插件动态扩展系统功能的支持,但是否可以真的做到即插即用,是否可以不导致对原插件的修改,这个还是要看设计者的功力;

(2)通过删除插件来动态移除系统功能,包括功能的入口等,最重要的就是要让插件的卸载不影响到系统的运行,这个和 1 里面所说的情况也是一样的, OSGi 是可以支持这样的要求,但应用系统是否能做到还是看设计者的功力;

(3)通过增加或更新插件来动态改变系统行为。

RCP基于OSGi来保证其插件化以及动态化可实现的情况下,还定义了扩展点的机制,而正是因为扩展点的机制,使得 RCP 在设计角度上能够更好的达到我们构建插件化应用系统的前两个目标,同时 RCP 通过其对桌面应用支撑的设计为我们展示了扩展点的最佳实践方法,将界面按照对象的思想进行划分,在划分的过程中根据职责形成插件,暴露出扩展点,最后形成 了像树一样的结构体系,如图所示:

图2

这种设计方法最佳的一个地方就在于充分的做到了真正的即插即用、即删即无的情况,典型的例子就是在 RCP 中可以通过扩展实现 Perspective ,将这个插件安装上后就可以在 RCP 中看到这个 Perspective ,删除这个插件后 RCP 中自然就看不到这个 Perspective 了。

从 RCP 的结构体系上,可以看出 RCP 在基于扩展点的设计思想上是怎么去设计的,它的设计思路采取的就是从顶至下、按照职责进行划分、形成插件的方法,插件中需要支持动态扩展的部分则做成扩展点,从而形成一个非常容易扩展的开发平台。

即插即用、即删即无的支持使得系统可以很好的以插件的方式来进行组装,做系统的时候就象在种树,先把系统的根撒下,让根长出主干,在主干上培育出枝 叶,枝叶上结出果实,整颗树就这么培育成了,当不需要了某个果实的时候,把它摘下来吃了,当不需要了某颗枝叶的时候,把那颗枝叶砍了,而这都不会影响到主 干,当希望树上形成别的果实的时候,甚至都可以接上不同的枝叶,让它长出不一样的果实。

4、总结

目前,基于Eclipse开发的插件非常多,涉及到软件领域的各个方面。但是,基于Eclipse RCP开发的独立软件并不常见,其中比较著名的几款Eclipse RCP软件有:

JLabrary:开源的CMS系统,用Eclipse RCP实现客户端;

NOA Office Integration Editor:将Open Office集成到RCP上的一款办公软件;

Nomad PIM:一款建议的个人信息管理系统,可以对个人信息,例如日程、支出、日记等进行管理。

感兴趣的读者可以下载这些软件的源代码进行学习。另外Eclipse本身也具有十分详细的RCP开发帮助文档(都是英文的),充分利用这些资源将大大加快Eclipse RCP开发。

Eclipse插件(RCP)开发环境搭建 Eclipse插件(RCP)开发在 Web 兴起以前非常热门,现已渐渐边缘化。因此许多小伙伴已不知道开发,甚至如何搭建环境。本文介绍了最新的RCP环境搭建过程。 阅读详情

相关推荐

Eclipse平台架构技术剖析及基于RCP的应用研究

插件通过扩展声明来注册自己的扩展点和扩展,其他插件可以通过扩展点来访问和使用这些功能。Eclipse平台提供了一个强大的开发框架,通过插件和扩展点的机制,开发者可以轻松扩展和定制功能。除了上述示例中的类,基于RCP的应用还可以包含自定义的视图、编辑器、命令、处理器等。通过插件扩展和扩展点的机制,你可以方便地添加和组织应用程序的功能。类是操作栏的配置器,它定义了操作栏的外观和行为。类是工作台的配置器,它定义了工作台窗口的外观和行为。类是工作台窗口的配置器,它定义了窗口的外观和行为。类作为工作台的配置器。

UgmbRuby的博客 424

初探 Eclipse RCP

最近公司的产品需要用到桌面应用程序, 为此开始研究Eclispe rcp 框架。 1 Eclipse RCP (Rich Client Platform) 基于eclipse的应用, 用于创建富客户端的单机应用程序。可以把eclipse IDE 看成是 RCP的作品。 大家都知道整个eclispe 是插件式的。 用RCP 来开发应用程序可以方便的扩展其他组件, 当然你的应用既可以扩展其他应用, 也可以被用开扩展。下面是层次架构。 2 安装 我直接按照官方工具书里说的, 在这里Eclipse IDE do

zhanghuaren2003的博客 3128

全面Eclipse RCP开发入门与实践指南

Eclipse RCP(Rich Client Platform)是Eclipse提供的一个强大的框架,用于开发复杂的桌面应用程序。它提供了一组丰富的API和服务,允许开发者快速构建功能丰富的客户端应用。RCP应用可以定制化到任何细节,包括工作区布局、菜单、工具栏、快捷键等,以及通过插件模式扩展其功能。相对于传统的桌面应用,RCP应用更容易维护和更新,且能更好地隔离和管理各个组件。在Eclipse RCP中创建插件项目是整个开发流程的基础。

weixin_35094083的博客 2039

2-部署Eclipse RCP开发环境

为积极响应Eclipse软件定义汽车工作组倡导的开源精神,考虑到在中文语法环境中Eclipse RCP平台的开发资料极度稀缺,汽车基础软件公众号陆续发布一系列的原创文章,深入介绍基于Eclipse RCP平台的汽车工具链软件开发方法。

chenchaocai的博客 2550

Eclipse RCP应用开发实战教程

Eclipse RCP(Rich Client Platform)是基于Eclipse基础架构设计的,用于开发独立应用程序的一套工具集。RCP提供了丰富的接口和工具,使得开发者能够在不同的操作系统上快速构建具有专业外观和感受的桌面应用。在Eclipse RCP中,插件是构建应用程序的基石,它允许开发者按照模块化的方式组织代码和资源。插件通常包含特定功能的实现,并且能够与其他插件进行交互。

weixin_27645199的博客 1209

【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统

1 首先创建一个Simscape Multibody 模型 (方法见 【Simscape】用Simscape实现三维物理仿真(一)——创建一个自由落体小球) 2 创建四个Solid模块 (1)摆杆 Shape : Brick Dimensions : [0.1 0.05 1] m (2)摆杆轴 Shape : Cylinder Radius : 0.02 m Le...

ReadAir的专栏 9036

Eclipse RCP插件开发【1.插件介绍】

扩展点是 Eclipse RCP(Rich Client Platform)中用于定义产品的扩展点。产品定义了一个独立的、可分发的 Eclipse 应用程序。通过定义产品,你可以配置应用程序的名称、图标、启动特性、插件等属性。以下是扩展点中这些属性和元素定义了 Eclipse RCP 产品的一些关键特征,包括产品的标识、名称、启动应用程序、描述、图标、版本等。通过定义产品,你可以配置和分发独立的 Eclipse 应用程序。

joiwsev的博客 2981

告别抓瞎!手把手教你用Keysight Infinium和M8040完成PCIe 5.0 TX/RX信号完整性测试

本文详细介绍了如何使用Keysight Infinium示波器和M8040误码仪完成PCIe 5.0 TX/RX信号完整性测试。从测试前的设备准备、软件配置到具体的TX信号测试步骤和RX容限测试实战,提供了全面的操作指南和常见问题解决方案,帮助工程师高效完成PCIe 5.0合规性测试。

weixin_30911451的博客 503

Eclipse插件(RCP)项目搭建

介绍最新的Eclipse RCP 开发工具创建RCP项目的过程。

小子宝丁的博客 4264

具身智能的建模和方法(具身智能入门一)

本文以机械臂将小红方块移动到目标位置为例对具身智能的建模和方法进行介绍,如下图所示,该例子来自https://ai-workshops.github.io/building-and-working-in-environments-for-embodied-ai-cvpr-2022/。

weixin_39699362的博客 1462

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1048

RCP FAQ -- 什么是RCP?

声明: 本文基于Eclipse社区的Wiki网站相关页面文字翻译而成,原始文字请参阅http://wiki.eclipse.org中RCP(Rich Client Platform)技术页面,如http://wiki.eclipse.org/RCP_FAQ。 正文: Eclipse平台(Eclipse platform)不仅仅被设计为一个开放的开发工具平台,它的...

weixin_34054931的博客 149

关于Win11安装Ubuntu子系统报错:WslRegisterDistribution failed with error 解决办法

Win11安装Ubuntu子系统报错:WslRegisterDistribution failed with error

qq_51908382的博客 3万+

Eclipse4 RCP快速扫盲

本系列文章将专注于Eclipse4 RCP技术,我想很多人都没听过该技术,名字应该都没听过,毕竟多了一个4,其实他并不复杂也不遥远,是人人可用的技术,因为i它与Eclipse本身息息相关。Eclipse4 RCP教程全网都很缺少,内外网的博客文章以及书籍也都很少很杂,没有很详细的教程,没有一个完整项目的案例,官方也没有给出Eclipse4 RCP的完整案例,仅有部分技术问题公开。所以导致该技术被忽略。

aa10133的博客 1833

Vue - 列表拖曳排序 / 鼠标拖动改变顺序排列高效简洁组件(支持PC端与移动端触屏拖动,也可在滚动条内排序自动滚动,流畅丝滑无 BUG)

Vue-高效简洁列表拖曳排序/鼠标拖动改变顺序排列组件支持PC端与移动端触屏拖动,也可在滚动条内排序自动滚动,流畅丝滑无BUG列表拖曳排序插件vuedraggable拉动拽动拖动顺序改变排序js,vue.js,nuxt.js列表如何实现鼠标拖曳改变顺序排列支持滚动条内复杂数据对象带拖动效果动画排序完毕自动排列数组位置克隆Vue.Draggable官方文档教程SortableJS与vuedraggable列表拖动排序Vue拖拽组件库vuedraggable的安装与使用用户用鼠标拖动排序功能源码最好

🏆 前端领域优质创作者 4847

极智嘉嵌入式面试题及参考答案

IIC(Inter-Integrated Circuit)即集成电路总线,是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它仅使用两根线,即串行数据线 SDA 和串行时钟线 SCL,就能实现多个设备之间的通信,具有简单、高效、占用资源少等优点,广泛应用于各种嵌入式系统中。

大模型大数据攻城狮的专栏 921

Eclipse RCP技术

以前主要在JAVAWEB方向下功夫,很少去关注JAVA的桌面应用程序的知识,对桌面应用程序的认识仅仅停留在当初接触.NET的时候使用其并做了几个工具和MIS。一直感觉桌面应用程序会慢慢的消失被WEB取代,随着最近接触BIRT源代码发现,java的桌面应用程序也有很多值得吸收的知识,而且基于Eclipse RCP技术也相当具有吸引力和感染力。          这篇博客说一说Eclipse RCP,

Q 4555

把 Client 当成 ABAP 系统的多租户底座:从 sy-mandt 到 CDS_CLIENT 的隔离机制与工程实践

本文深入解析SAP ABAP系统中Client概念的本质与应用。Client不仅是数据表的MANDT字段,更是会话级别的隔离边界,贯穿用户登录、授权和数据访问控制全过程。文章从ABAP SQL的隐式Client处理机制出发,详细介绍了USING CLIENT、USING ALL CLIENTS等安全跨客户端访问方式,并对比了传统CLIENT SPECIFIED的风险。同时阐述了ABAP CDS中@ClientHandling注解的类型与算法选择,包括#AUTOMATED自动拼接和#SESSION_VARIA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 182

Eclipse RCP简介

一、2008-07-30 16:181.1.Eclipse RCP概述RCP是Rich Client Platform的缩写。Rich Client大概在20世纪90年代初期开始使用,其经典的开发工具有Visual Basic和Delphi。类似于VB、Delphi这样的可视化开发环境使得开发富客户端程序变得简单而有趣味。RCP是基于Ecli

yanick技术博客 2205

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Eclipse RCP开发基础

<br />RCP开发环境<br />       Eclipse的重要特征就是他的插件架构,eclipse的内核比较小,主要是由许多功能插件组合而成。Rich client platform(RCP)也是基于这种插件机制的,与eclipse workbench的结构模式一样,程序是由若干个插件组成,通过扩展点的的方式,提供扩展功能的编程接口。<br />       Eclipse RCP程序通常由主应用程序(org.eclipse.core.runtime.application),视窗(o

zjuylok的专栏 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

eclipse rcp开发_开发您的第一个Eclipse RCP应用程序

在你开始前 本教程适用于想要学习如何使用Eclipse Rich Client Platform(RCP)的开发人员。 Eclipse已经发展成为一个平台,可以承载可为各种最终用户提供服务的各种应用程序。 将RCP视为具有与Eclipse相同的原始功能的集成平台,但是该平台具有较小的总体占地面积和更灵活的用户界面。 RCP为实现用Java™编程语言编写的桌面应用程序打开了一扇门。 关于...

cuxiong8996的博客 7590

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

eclipse rcp-创建rcp-创建target

创建和配置是开发应用的重要步骤。通过正确配置目标平台,你可以确保你的 RCP 应用在不同的 Eclipse 环境中表现一致,并且可以测试和打包应用程序。目标平台为你的开发工作提供了稳定的依赖和运行环境,帮助你管理项目中的插件和库。通过上述步骤,你可以轻松地配置一个合适的目标平台,并开始开发自己的 RCP 应用程序。

weixin_65409651的博客 969

Eclipse RCP入门

Eclipse RCP入门 zhlmmc 2006-4-23 最近做了一个基于RCP的项目,感受颇深,觉得RCP有希望扭转Java桌面应用的颓势。在项目中积累了一点经验与心得,拿出来与大家分享,希望能给RCP初学者一点帮助。我研究Eclipse插件开发已经有一段时间了,但是我并没有很系统的学习过Eclipse的插件开发,往往只是做项目需要临时学的一点,所以讲的东西难免粗陋,请见谅。 一

飞鸟的专栏 4143
上一篇: Component Object Model 组件对象模型
下一篇: CSS+JS构建的图片查看器
jxcjxinxing
博客等级 码龄20年 51粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jxcjxinxing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值