山东中创软件商用中间件股份有限公司
时迎清
RCP简介(2m)
开发RCP应用(30m)
开发产品定义文件(20m)
发布RCP产品(5m)
技术交流(10m)
Eclipse Rich Client Platform,Eclipse富客户端平
台。它允许开发者使用Eclipse架构设计灵活的、可
扩展的、美观的、跨平台的应用程序。
当我们提到Eclipse的时候,许多Java开发者的第一
反应就是那个性能良好,界面漂亮,Debug功能奇
佳的Java集成开发平台。如果将Eclipse中关于IDE
的内容剥去,剩下的就是一个提供基本工作台功能
的核心,包括对可移动以及可叠加的窗口组件(编
辑器和视图)、菜单、工具栏、按钮、表格、树形
结构等等的支持,而这个核心就是Eclipse RCP。
Eclipse RCP是一项位于Eclipse平台核心的功能。
Eclipse本身就是一个提供了完善的插件机制的RCP
平台。
引言“Eclipse RCP就是由插件开发转向桌面应用开
发,构建最小化的Eclipse平台(8M)运行你的桌面应
用,不必再为程序框架烦心,摆脱失败的AWT和
Swing,让程序拥有专业级效果,而实现又很简单、
很优雅。”
开发环境
开发工具:(helios-SR1)
操作系统:win32
创建RCP项目
创建RCP项目
创建RCP项目
创建RCP项目
创建RCP项目
RCP项目结构
RCP项目结构
文件(插件清单文件)
此文件各选项卡使用不再展开介绍。
RCP项目结构
代码解析
RCP模板自动为我们创建了5个类
下面我们对这5个类进行简要分析。
RCP项目结构
代码解析 RCP程序的入口点
public class Application implements IApplication {
public Object start(IApplicationContext context) throws
Exception {
Display display = ();
try {
int returnCode = (display,
new ApplicationWorkbenchAdvisor());
if (returnCode == _RESTART)
return _RESTART;
else
return _OK;
} finally {
();
}
}
public void stop() {
if (!())
return;
final IWorkbench workbench = PlatformUI. getWorkbench();
final Display display = ();
(new Runnable() {
public void run() {
if (!())
();
}
});
}
}
RCP项目结构
代码解析
public class ApplicationWorkbenchAdvisor extends
WorkbenchAdvisor {
private static final String PERSPECTIVE_ID =
""; //$NON-NLS-1$
public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
IWorkbenchWindowConfigurer configurer) {
return new ApplicationWorkbenchWindowAdvisor(configurer);
}
public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}
}
RCP项目结构
代码解析
public class ApplicationWorkbenchWindowAdvisor extends
WorkbenchWindowAdvisor {
public ApplicationWorkbenchWindowAdvisor(
IWorkbenchWindowConfigurer configurer) {
super(configurer);
}
public ActionBarAdvisor createActionBarAdvisor(
IActionBarConfigurer configurer) {
return new ApplicationActionBarAdvisor(configurer);
}
public void preWindowOpen() {
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
(new Point(400, 300));
("我的 RCP 测试");
(false);
(false);
}
}
RCP项目结构
代码解析
public class ApplicationActionBarAdvisor extends ActionBarAdvisor
{
public ApplicationActionBarAdvisor(
IActionBarConfigurer configurer) {
super(configurer);
}
protected void makeActions(IWorkbenchWindow window) {
}
protected void fillMenuBar(IMenuManager menuBar) {
}
}
RCP项目结构
代码解析
public class Perspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
}
}
个性化项目
测试自动创建的项目
(不作任何修改,第一
次运行)
添加菜单、动作
修改类文件:
ApplicationActionBarAdvisor
自定义视图
设置窗口布局(标题、大小、位置等)
修改类文件:
ApplicationWorkbenchWindowAdvisor, Perspective
替换启动画面:
视具体需求进行修改
个性化项目
测试修改后的项目
(第二次运行)
简介
*.product文件
在 Eclipse 引入 Production Configuration 之前,
RCP 开发人员面临着如何有效且高效地打包和交付具有
必要插件的 RCP 项目的问题。此问题实际上是影响到
使用率的问题,因为它本质上决定了其软件的分布和可
用性。多亏了 Eclipse 的新 Production
Configuration 功能,现在您可以轻松将其应用程序与
依赖项和品牌推广元素轻松地打包在一起了。
*.product文件提供了一个和类似的界面,提
供了项目的启动、打包导出、项目个性化(名称,加载
图片,splash)等功能。
创建
创建
编辑
文件
编辑
Overview:
配置产品ID、版本、名称、product、application
Dependencies:
配置依赖的插件
Configuration:
配置插件及其启动级别,指定文件(可自动生成)
:
配置启动器名称和图标、程序参数、虚拟机参数
:
指定splash的图片和格式,添加进度条和进度信息
:
指定windows任务栏的图标以及about对话框信息
:
指定licensing信息
运行
法律声明
这个文件放在项目根目录,随产品一起导出。
查看方式:
Help--About--Installation Details--Plug-ins--Legal
Info
先构建
打开--Build
注:
不用勾选.product文件、src、bin;
是运行产品时自动生成的。
导出
使用导出向导
打开.producct--Overview
导出
导出
经验分享
1.修改.product配置后运行不起效果
-->清除工作空间缓存数据,两个clear:
运行--运行配置--Main--clear
运行--运行配置--Configuration--clear
经验分享
2. Application ""
could not be found in the registry. The
applications available are:
.
--> 检查application ID是否正确;
检查插件依赖,使用add required plug-ins;
经验分享
3.导出产品后运行报错"找不到简介部件的有效配置:
intro element in extension: in
bundle:
----->
(1)导出产品前,检查build选项卡,是否选中
等文件
(2)打开的欢迎页面是空的--->>通过调节开关:
(IPageLayout
layout){
(false);//false:大小可变动,有最大
最小按钮
经验分享
4.首次打开工作空间显示欢迎页面,下次打开不再出
现,要想下次打开工作空间出现欢迎页面,可以修改
文件
\workspace\.metadata\.plugins\
ntime\.settings\,将false改为
true-->
#Mon Mar 17 14:54:06 CST 2014
=1
showIntro=false
注意:此操作只对下次有效。
OVER