RCP,就是Rich Client Platform的缩写,即胖客户端平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创建自己的基于Eclipse的应用程序,并且这些应用程序能够得到Eclipse的底层支持。更重要的是,我们可以利用Java创建象Eclipse这么漂亮的桌面程序。
桌面应用程序也可称为胖客户端程序或GUI程序。用SWT可以像SWING一样开发独立的桌面应用,但这样无法利用Eclipse的插件机制,所以有些人就折衷了一下:把桌面应用写成Eclipse插件。不过,插件基于Eclipse运行,Eclipse原有的菜单和工具栏无法消除。如果你连Eclipse的那些菜单和工具栏均不想被用户看到,那么就要用到RCP平台。
RCP的主要知识基于SWT/JFace和Eclipse插件。
下面用向导建立一个RCP工程。
1、Plug-in Project,记得选择富客户端应用。
2、在ApplicationActionBarAdvisor.java类里
//文件菜单里的项目 public IWorkbenchAction newAction; public IWorkbenchAction openAction; public IWorkbenchAction refreshAction; public IWorkbenchAction exitAction; //编辑菜单里的项目 public IWorkbenchAction copyAction; public IWorkbenchAction pasteAction; //帮助菜单里的项目 public IWorkbenchAction helpAction; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } /** * 创建操作并注册操作 */ protected void makeActions(IWorkbenchWindow window) { newAction = ActionFactory.NEW.create(window); newAction.setText("创建窗口"); newAction.setToolTipText("创建一个新窗口"); register(newAction); //Problem openAction = ActionFactory.NEW_EDITOR.create(window); openAction.setText("打开文件"); register(openAction); refreshAction = ActionFactory.REFRESH.create(window); refreshAction.setText("刷新"); refreshAction.setToolTipText("刷新"); register(refreshAction); exitAction = ActionFactory.QUIT.create(window); exitAction.setText("退出"); register(exitAction); copyAction = ActionFactory.COPY.create(window); copyAction.setText("复制"); register(copyAction); pasteAction = ActionFactory.PASTE.create(window); pasteAction.setText("粘贴"); register(pasteAction); // helpAction = ActionFactory.ABOUT.create(window); helpAction = ActionFactory.HELP_CONTENTS.create(window); helpAction.setText("关于我们"); register(helpAction); } /** * 菜单栏 */ protected void fillMenuBar(IMenuManager menuBar) { MenuManager fileMenu = new MenuManager("文件(&F)",IWorkbenchActionConstants.M_FILE); MenuManager editMenu = new MenuManager("编辑(&E)",IWorkbenchActionConstants.M_EDIT); MenuManager helpMenu = new MenuManager("帮助(&H)",IWorkbenchActionConstants.M_HELP); fileMenu.add(newAction); fileMenu.add(openAction); fileMenu.add(refreshAction); fileMenu.add(exitAction); editMenu.add(copyAction); editMenu.add(pasteAction); helpMenu.add(helpAction); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); } /** * 工具栏 */ protected void fillCoolBar(ICoolBarManager coolBar) { // super.fillCoolBar(coolBar); IToolBarManager toolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); IToolBarManager viewToolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); toolBar.add(newAction); coolBar.add(new ToolBarContributionItem(toolBar,"新建")); viewToolBar.add(refreshAction); coolBar.add(new ToolBarContributionItem(viewToolBar,"刷新")); }
3、帮助系统的开发
3.1、代码的实现
//帮助 private IWorkbenchAction helpAction; /** * 创建操作 */ protected void makeActions(IWorkbenchWindow window) { /* 帮助 */ helpAction = ActionFactory.HELP_CONTENTS.create(window); register(helpAction); } /** * 填充主菜单 */ protected void fillMenuBar(IMenuManager menuBar) { /* 主菜单栏 */ IMenuManager mainMenu = getActionBarConfigurer().getMenuManager(); MenuManager helpMenu = new MenuManager("帮助(&H)", IWorkbenchActionConstants.M_HELP); helpMenu.add(introAction); helpMenu.add(helpAction); mainMenu.add(helpMenu); }
3.2、添加相关依赖项
打开plugin.xml,转到"依赖项"的页,添加以下
1. org.apache.lucene
2.org.eclipse.help.appserver
3.org.eclipse.help.base
4.org.eclipse.help.ui
5.org.eclipse.help.webapp
6.org.eclipse.tomcat
7.org.eclipse.ui.forms
3.3、添加org.eclipse.help.toc扩展点
"扩展向导"-->"帮助内容",确定后可以看到“所有扩展”的列表中多了一个org.eclipse.help.toc扩展,这里可能需要修改一下,生成的toc.xml和testToc.xml里面的label属性标签不能是乱码,不然帮助框架会读不出,到时候显示不出帮助的组织结构。
注意此处的扩展点哦:
<extension point="org.eclipse.help.toc"> <toc file="toc.xml"> </toc> <toc file="testToc.xml" primary="true"> </toc> </extension>
新建自己的帮助文档如toc.xml和testToc.xml
例如在toc.xml中
<toc label="Sample Table of Contents"> <topic label="Main Topic" href="html/maintopic.html"> <topic label="Sub Topic" href="html/subtopic.html"/> </topic> <topic label="Main Topic 2" href="html/maintopic.html"> <topic label="Sub Topic" href="html/subtopic.html"/> </topic> </toc>
4、实现上下文帮助
暂时没看懂,先不写了哈,呵呵……
5、打包发行
可用Ant脚本也可用product导出。
因为初次自学RCP,有不对的地方欢迎大家指正,不胜感激!
分享到:
相关推荐
### 开发您的第一个 Eclipse RCP 应用程序 #### 富客户端平台 (RCP) 概述 **Eclipse Rich Client Platform (RCP)** 是一个强大的框架,旨在利用 Eclipse 平台来构建非集成开发环境 (IDE) 类型的最终用户应用程序。...
- **第一个RCP程序**:通常从创建一个新的Eclipse插件项目开始,然后定义工作台视图和编辑器,实现基本的用户交互。 - **插件开发环境(PDE)**:Eclipse内置的工具集,用于开发、调试和管理RCP应用程序和插件。 ...
通过以上步骤,你可以成功地将第三方插件集成到RCP程序中。然而,实际操作过程中可能会遇到各种问题,如插件间的依赖冲突、性能优化等。因此,熟悉Eclipse插件开发的最佳实践,以及如何有效地管理和调试插件,是提升...
【开发你的第一个Eclipse RCP应用程序】 Eclipse Rich Client Platform(RCP)是Eclipse框架的一个组成部分,专门用于构建复杂的桌面应用程序。RCP利用Eclipse的插件体系结构,允许开发者创建具有高度可定制和可...
这个“RCP程序设计教程”包含了PDF和CHM格式,PDF可能更适合在线阅读,而CHM是离线帮助文档,方便开发者随时查阅。通过学习这个教程,你将能够熟练掌握RCP开发技术,为构建高效、美观的桌面应用奠定坚实基础。
The objective of the Eclipse Rich Client Platform (RCP) is to enable Eclipse to be used in a wide range of end-user applications that are not integrated development environments (IDEs). With the ...
在RCP程序中,工作台(Workbench)是应用程序的中心,负责管理窗口、视图和编辑器。视图(View)展示特定的数据或功能,如客户列表或销售数据图表;编辑器(Editor)则用于编辑和查看详细信息,比如客户详情或订单...
首先,我们需要新建一个Eclipse RCP应用程序,然后创建一个lib目录作为存放第三方库的目录。在这个示例中,我们使用了一个简单的Java文件,并将其打包成jar文件。然后,我们可以将这个jar文件添加到RCP应用程序的...
### Eclipse RCP 详细教程 ...以上介绍了Eclipse RCP的基本概念和创建第一个RCP程序的过程。后续章节将继续深入探讨更多高级主题和技术细节,包括如何添加组合键、系统托盘、外观设计、与编辑器交互等内容。
创建RCP程序的第一步是设置一个新的Eclipse插件项目。在Eclipse IDE中,选择"File" -> "New" -> "Project",然后在"Plug-in Development"类别中选择"Plug-in Project"。按照向导的指示配置项目,包括项目名称和目标...
创建你的第一个 RCP 程序** 2.1. 创建一个 RCP 程序 在 Eclipse 中,开发者可以通过新建项目选择 "Plug-in Project",然后按照向导指引配置基本信息,如项目名称、目标运行环境等,即可创建一个基础的 RCP 插件...
创建你的第一个 RCP 程序 2.1. **创建一个 RCP 程序** 开始开发RCP应用,首先需要在Eclipse IDE中创建一个新的插件项目。然后,通过选择适当的模板,可以生成一个基础的RCP应用程序框架,包括启动类和基本的插件...
**Eclipse RCP 初级...通过这个教程,你可以逐步熟悉Eclipse RCP的开发环境,创建你的第一个RCP应用,并了解其强大的模块化和扩展能力。随着经验的积累,你将能够利用RCP构建出复杂的、满足特定需求的桌面应用程序。
开发者会学习如何创建第一个RCP应用,包括定义插件项目、构建基本UI结构和启动配置。 其次,"使用Eclipse RCP进行桌面程序开发(一):快速起步.doc"文档将引导读者迅速进入实战阶段,讲解如何搭建开发环境,配置...
1. 创建第一个RCP程序 2. 创建菜单和工具栏 3. 查看、编辑、对话、外部JAR的用法 4. 向一个RCP应用程序产品中添加标志和帮助 每一章都基本独立于其他章节,读者可以根据自己的需求选择学习的章节。所有的代码均可...