已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第21章基于RCP的产品开发 经过前面的学习 读者对于开发Eclipse的插件产品应该是非常熟悉了 在实际的应用中 大家肯定不满足于仅仅开发插件产品 当面对客户的时候 必须提供一个独立 完整的应用程序给客户 不可能把整个EclipseIDE 连同编写的插件一起交付给客户 可以想象 这样的软件产品是很别扭的 普通客户并不需要JDT 也不可能学习使用Eclipse 提供产品给客户的时候 必须把Eclipse平台中那些不必要的功能去掉 例如JDT 还要给整个应用程序包装 有专门的欢迎界面 看到About的时候 显示的是自己特有的软件品牌而不是Eclipse Org的介绍 甚至把整个Eclipse的界面都进行改造 让界面更容易使用 21 1Eclipse平台的核心架构 在开发自己的RCP程序之前 先来了解一下Eclipse的核心架构 21 1 1Eclipse的核心框架 Equinox 进一步细看PlatformRuntime 整个PlatformRuntime是Eclipse中的一个子项目Equinox Equinox项目是Eclipse开源组织提供的OSGi框架的实现 Eclipse自3 0版本开始 其内核移植到OSGi框架上 通过OSGi框架强大的组件控制 交互和管理能力 再加上Eclipse插件的自有特点 Eclipse开源框架得到了跳跃式的发展 Eclipse3 4后 正式用Equinox作为核心框架 OSGi的本质是将Java面向对象的开发转向面向组件和服务的开发 OSGi框架提供了一套完善的机制用于管理和控制组件 Bundle 服务 Service 的生命周期 以及组件和服务在其生命周期内的交互 Equinox的任务除了包括OSGi的工作外 还要负责兼容Eclipse3 0之前的插件 负责启动整个Eclipse平台 21 1 2Eclipse中插件 程序 和产品的概念 在进行RCP产品开发之前 再来明确一下Eclipse中的几个概念 插件 程序 产品 插件大家已经非常熟悉了 本书前面的内容都是关于插件开发的 在Eclipse中 所有组件都是插件 程序 Application 产品 Products 都是一种特殊的插件 程序 Application 产品 Product Eclipse平台 插件 程序 产品之间的关系 21 2建立RCP产品项目 在前面章节的例子中 由于没有自己的Application 所有插件的运行都依赖org eclipse platform ide这个插件 通过启动EclipseIDE来启动整个Eclipse平台 下面开始制作自己的RCP软件平台 制作两个新的Application和Product 并包装成一个独立的应用软件 21 2 1新建RCP项目 RCP项目也是插件项目 在Eclipse中 选择新建项目 按照图的步骤建立RCP项目 注意在第三步的时候 要选择RichClientApplication Yes 21 2 2RCP插件项目的文件结构 在模板选择完成后 按Finish 向导自动建立了一些相关的文件 现在com smartdio application项目的文件结构如图 21 2 3认识org eclipse core runtime applications扩展点 模板向导还自动建立了一些扩展点的扩展 如图 在PDE编辑器中 选择Extensions标签 可以看到这些自动建立的扩展 其中第一个最重要的是org eclipse core runtime applications扩展 没有这个扩展 就不能成为Application插件 只能算是一般的插件而已 21 2 4认识IApplication 模板向导已经建立了IApplication的实现 就是com smartdio application intro Application类 Application类实现IApplication所定义的两个抽象方法start和stop 21 2 5RCP关键对象的启动过程 到这里 可以看到一个RCP插件程序的启动需要多个对象 看上去比较复杂 其实每个对象都只是负责单一的工作 这也符合面向对象开发的原则 21 2 6扩展点org eclipse core runtime products RCP模板的向导还实现了org eclipse core runtime products扩展 org eclipse core runtime products用于定义Product 如图 在PDE编辑器的extensions标签中 展开org eclipse core runtime products扩展点可以看到扩展的详细设置 21 2 7试运行RCP项目 到此 已经比较深入地研究过一个RCP产品项目的结构了 下面来试运行一下这个RCP产品 看看是怎样的一个样子 首先选择工具栏上的Run按钮 下拉菜单中选择RunConfigurations 打开运行设置对话框 在EclipseApplication类别中新建一个运行项目 21 2 7试运行RCP项目 21 3定制RCP程序的菜单 通过前面的步骤 建立了一个应用程序 现在这个RCP程序还十分简陋 菜单仅有Help 没有工具栏 也没有状态栏 也无法选择其他视图或者其他透视图 下面将重点对菜单 工具栏进行改造 添加上更多的菜单命令 21 3 1基本菜单模式 对于菜单的排列模式 长期以来业界形成了个约定俗成的规范 在单项的前三项 基本上是文件 Files 编辑 Edit 视图 View 最后两项基本上是工具 Tools 窗口 Window 帮助 Help 21 3 2用ActionBarAdvisor定制菜单 模板向导建立的ApplicationActionBarAdvisor其实已经为开发者提供了定制RCP菜单的典范 打开ApplicationActionBarAdvisor java 可以看到ApplicationActionBarAdvisor继承了ActionBarAdvisor ActionBarAdvisor是专门提供给RCP程序 用于定制菜单和工具栏的 要定制菜单 就要重载ActionBarAdvisor中的fillMenuBar IMenuManagermenuBar 方法 方法中传递进来的参数menuBar就是Workbench窗口中的菜单栏 往这个menuBar添加菜单就可以了 protectedvoidfillMenuBar IMenuManagermenuBar MenuManagerhelpMenu newMenuManager 21 3 3添加Workbench预定义的菜单命令 Eclipse中不仅预先定义了一批标准菜单命令的ID 还具体实现了这些菜单命令 在Eclipse中 命令都是Action对象 同一个Action对象可以用在菜单命令中 也可以用在按钮中 工具栏上的按钮或者其他界面上的按钮 21 3 4添加更多的菜单命令 按照同样的原理添加更多的菜单命令 包括Edit菜单和Window菜单 由于这部分代码所占的篇幅比较多 所以就不在此列出了 读者可以查看随书光盘中的源代码 21 4添加状态栏 窗口的上面是菜单 低端是状态栏 这已经是大部分应用程序的标准模式 上一小节添加了菜单 现在应用程序窗口下面还需要有一个状态栏 显示一些状态信息 或者提示信息 下面为RCP程序添加这样的状态栏 21 4 1显示状态栏 打开ApplicationWorkbenchWindowAdvisor java 在preWindowOpen 方法中添加 configurer setShowStatusLine true publicvoidpreWindowOpen IWorkbenchWindowConfigurerconfigurer getWindowConfigurer configurer setInitialSize newPoint 700 550 configurer setShowCoolBar false configurer setShowStatusLine true configurer setTitle SmartdioApplication 21 4 2显示状态栏信息 要往状态栏上显示文本信息 最简单的途径就是使用statusline setMessage 方法 例如下面在ApplicationWorkbenchWindowAdvisor java中加入postWindowOpen 方法 当窗口打开后 在状态栏上显示状态信息 OverridepublicvoidpostWindowOpen IStatusLineManagerstatusline getWindowConfigurer getActionBarConfigurer getStatusLineManager statusline setMessage null 程序已经成功运行 21 5添加工具栏 现在程序还少了工具栏 本来添加工具栏的原理和添加菜单是一样的 也是往工具栏上添加Action 现在有了Eclipse3 3新的命令框架 可以不用建立Action 通过org eclipse ui menus扩展点的扩展 就可以实现不用编写代码 往工具栏上添加常用命令 21 5 1显示工具栏 打开ApplicationWorkbenchWindowAdvisor java 在preWindowOpen 方法中 加入configurer setShowCoolBar true 把工具栏的显示设置为true publicvoidpreWindowOpen IWorkbenchWindowConfigurerconfigurer getWindowConfigurer configurer setInitialSize newPoint 700 550 configurer setShowCoolBar true configurer setShowStatusLine true configurer setTitle SmartdioApplication 21 5 2添加org eclipse ui menus扩展点 按照图的步骤 添加org eclipse ui menus扩展点 然后在扩展点下面添加menuContribution 并把menuContribution的locationURI修改为toolbar org eclipse ui main toolbar 21 5 3添加工具栏和命令 选择新增的menuContribution 按图的步骤 在下面新增一个工具栏 把工具栏的ID设置为fileToolbar 然后再在新增的工具栏下面添加一个命令 21 5 4运行测试 现在再次运行smartdio application 如图 在关闭Welcome视图后 可以看到新增的工具栏的了 而添加工具栏的过程没有编写任何代码 21 6小结 本章建立了一个RCP程序 RCP程序本身是特殊插件 它只是通过一些扩展设置 改变Eclipse程序窗口的外观和一些行为 看上去就像是一个全新的应用程序 应用程序必须实现org eclipse core runtime application扩展点 至少要实现下面几个接口 org eclipse equinox application IApplicationorg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 橱窗展示空间设计案例解析
- 介绍礼仪动画版
- 日用电商产品介绍
- 电工年终工作总结个人总结(5篇范例)
- 杭州市富阳区2025年劳资专管员能力考核试题及答案
- 2025安全员-C证上岗证理论试题及答案
- 2025石油化工产品购销合同范文
- 2025广西河池市金城江区金碗贸易投资有限公司招聘工作人员笔试历年典型考点题库附带答案详解试卷2套
- 2025广东河源市连平县城乡投资有限公司连平县旅游实业投资有限公司招聘拟聘人员笔试历年典型考点题库附带答案详解试卷2套
- 2025年福建省晋江水务集团有限公司秋季招聘15人笔试历年难易错考点试卷带答案解析试卷2套
- 国企合规培训课件
- 天津市2021-2023年中考满分作文48篇
- 早教入股协议书范本合同
- 公司租海外仓库合同范本
- 2025至2030中国原生铼金属市场发展模式及未来前景预测报告
- 医院院企合作模式探索与实践
- 小区施工损坏赔偿合同范本
- 医院合作实施方案
- 口腔医学技术职业生涯
- 老年患者深静脉血栓护理
- 静脉采血操作并发症的预防与处理
评论
0/150
提交评论