很早就想玩玩RCP的,今天又听到物联网项目组讨论RCP,再加上自己想自定义几个变量且看网上方案貌似都只有自己开发插件解决,不由砰然心动,找了这本书啃了一番。先看几张图,对RCP有个大概了解吧。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_RCP_02

可以看出OSGi在其中扮演了很重要的角色嘛,是它把插件揉到一起的。

OSGi技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。

 

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_休闲_03

有个印象后,直接切入主题,整个例子玩玩。

Hyperbola ——书中的示例,一个即时通信客户端

想起了自己在公司软件培训学院Java课上的最后一个实践题就是写一个 Java 的即时通信程序。回过头再看原来的代码,真是惨不忍睹啊。下载源代码:http://eclipsercp.org/EclipseRCP_Samples.zip

这本书很人性化,提供了一个 Samples Manager ,方便管理你的代码,一章一章的往下走。需要安装一下,可以通过http://eclipsercp.org,也可以直接利用刚下载的代码。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_RCP_04

装完以后需要重启一下。可以看到菜单栏上多了一个RCP Book

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_休闲_05

Samples Manager 里有个很Nice的 Comparing 比较功能,比如给出第五章和第六章之间的区别。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场_06

Target Definition

接下来准备Target。所谓的Target 就是你的应用要依赖的一堆插件。虽然作者已经提供了一个现成的,可以右键 Load Target导进去,但我喜欢自力更生,更何况他的版本还是基于Eclipse3.5。

首先创建一个普通的工程。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_Eclipse_07

然后创建Target Definition。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场_08

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场_09

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_RCP_10

下载delta Pack,当前最新版 http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-3.6.2-delta-pack.zip

在LoveChatTarget工程下新建一个目录delta.pack,然后把刚才下载的zip包Import进去,File > Import… > General > Archive File。

再打开Target文件,开始Add Content。先来加个目录。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_RCP_11

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场_12

再来加个Software Site。

每日一读 Addison.Wesley.Eclipse.Rich.Client.Platform.2nd.Edition(1)_职场_13

这里作者特别强调不要勾选Include required software。到这里,环境基本上是搭好了。