EclipseRCP四常用技术基础知识
第一讲 Eclipse简介
什么是EclipseEclipse是一个开放源代码的、与NetBeans、Sun ONE Studio和Borland Jbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一,IBM在最近几年里也一直在大力支持该项目的发展,目标是将其做成用以替代IBM Visual Age for Java(简称IVJ)的下一代IDE开发环境,并于2001年11月宣布投入4千万美元资金到该项目的研发。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclips e 附带了一个标准的插件集,包括Java 开发工具(Java Development Tools,JDT)。
其未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Ecli pse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。
目前,Eclipse已经开始提供C语言开发的功能插件。
更难能可贵的是,Ec lipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。
也就是说未来只要有人需要,就会有建立在Eclip se之上的COBOL,Perl,Python等语言的开发插件出现。
同时可以通过开发新的插件扩展现有插件的功能,比如本系列文章为了进行手机应用程序的开发就是通过J2ME插件的扩展来加以实现的。
可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。
Eclipse的主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclips e工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成--Eclipse Platform、JDT、CDT和PDE。
JDT支持Java开发、CDT支持C开发、PDE 用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
EclipseRCP与SpringOSGi:技术详解与最佳实践
EclipseRCP与SpringOSGi:技术详解与最佳实践Eclipse RCP与Spring OSGi:技术详解与最佳实践第⼀部分基础篇1 初识Eclipse RCP1.1 Eclipse平台概述1.2 Eclipse RCP概述1.3 Eclipse RCP的应⽤1.4 OSGi与Equinox1.5 SWT与JFace1.6 ⼩结2 搭建Eclipse RCP开发环境2.1 JDK的安装与配置2.1.1 下载JDK安装程序2.1.2 安装JDK运⾏程序2.1.3 配置JDK运⾏环境2.1.4 测试JDK安装状态2.1.5 卸载JDK应⽤程序2.2 安装Eclipse IDE2.2.1 Eclipse开发包2.2.2 Eclipse版本更新2.2.3 下载Eclipse2.2.4 安装Eclipse2.2.5 技术资源2.3 Maven的安装与配置2.3.1 Maven介绍2.3.2 下载Maven2.3.3 安装Maven2.3.4 测试Maven2.3.5 修改Maven的配置⽂件2.3.6 技术资源2.4 Maven和Eclipse的集成2.4.1 安装Maven Eclipse插件2.4.2 配置Maven Eclipse插件2.4.3 技术资源2.5 安装Spring IDE Plugin2.5.1 Spring IDE介绍2.5.2 安装Spring IDE插件2.5.3 技术资源2.6 安装WindowBuilderProPlugin2.6.1 WindowBuilder介绍2.6.2 安装WindowBuilder插件2.7 ⼩结3 SWT界⾯设计详解3.1 SWT介绍3.2 WindowBuilder插件初识3.2.1 设计视图3.2.2 源码视图3.2.3 结构视图3.3 SWT设计⾯板3.6 容器使⽤⼊门3.6.1 Composite3.6.2 Group3.6.3 ScrolledComposit3.6.4 SashForm3.6.5 TabFolder与TabItem3.6.6 CTabFolder与CTabItem 3.6.7 ViewForm3.6.8 CBanner3.7 容器使⽤进阶3.7.1 checkSubclass⽅法3.7.2 界⾯复⽤3.7.3 添加⾃定义的Component 3.7.4 背景模式3.7.5 带分隔条的SashForm 3.8 布局使⽤⼊门3.8.1 AbsoluteLayout3.8.2 FillLayout3.8.3 GridLayout3.8.4 FormLayout3.8.5 RowLayout3.8.6 StackLayout3.8.7 GroupLayout3.8.8 FlowLayout3.8.9 BoxLayout3.8.10 BorderLayout3.9 布局使⽤进阶3.9.1 使⽤AbsoluteLayout3.9.2 使⽤GridLayout3.9.3 StackLayout3.10 控件使⽤⼊门3.10.1 Label3.10.2 CLabel3.10.3 Separator3.10.4 Text3.10.5 StyledText3.10.6 Combo3.10.7 CCombo3.10.8 List3.10.9 Button3.10.10 DateTime3.10.11 Spinner3.10.12 Slider3.10.13 Scale3.10.14 Link3.10.15 ToolBar与ToolItem 3.10.16 CoolBar与CoolItem3.10.24 TableTree3.11 控件使⽤进阶3.11.1 创建Simple Table3.11.2 创建Lazy Table3.11.3 创建Virtual Table3.11.4 Virtual Table注意事项3.11.5 Virtual Table排序3.11.6 创建Lazy Tree3.11.7 创建Virtual Tree3.11.8 创建TreeVirtualDynamic3.11.9 创建POJOComposite3.11.10 如何与浏览器交互3.12 菜单使⽤⼊门3.12.1 Menu Bar组件3.12.2 Popup Menu3.12.3 MenuItem3.13 菜单使⽤进阶3.14 技术资源3.15 ⼩结4 JFace界⾯设计详解4.1 MVC设计思想4.1.1 MVC模式4.1.2 Java与MVC模式4.2 JFace与MVC模式4.2.1 JFace Viewer框架概述4.2.2 JFace Viewer框架机制4.3 JFace常⽤组件⼊门4.3.1 ComboViewer4.3.2 ListViewer4.3.3 TableViewer4.3.4 TreeViewer4.3.5 CheckboxTableViewer4.3.6 CheckboxTreeViewer4.3.7 TreeTableViewer4.3.8 TableViewer Composite4.3.9 Table Composite4.3.10 TreeViewer Composite4.3.11 Tree Composite4.4 JFace组件使⽤进阶4.4.1 数据绑定4.4.2 基于EditingSupport的可编辑表格4.4.3 基于ICellModifier的可编辑表格4.4.4 对话框编辑器4.4.5 其他表格标签4.4.6 Viewer浮动提⽰控件4.5 ⼩结5.2.2 ExpandableComposite5.2.3 Label与Text5.2.4 Hyperlink与ImageHyperlink5.2.5 Composite Separator5.2.6 Section5.2.7 Form与ScrolledForm5.3 Eclipse Forms使⽤进阶5.3.1 FormEditor与FormPage5.3.2 MasterDetailsBlock与IDetailsPage5.4 Eclipse Forms技术资源5.5 Nebula项⽬介绍5.6 安装Eclipse Nebula Plugin5.6.1 安装Eclipse Nebula Main Widgets5.6.2 安装Eclipse Nebula incubation Widgets5.6.3 加载Eclipse Nebula控件到WindowBuilder Pro Plugin中5.7 Nebula Main Widgets设计初识5.8 Nebula Incubation widgets设计初识5.9 Nebula设计经验5.10 Nebula技术资源5.11 ⼩结第⼆部分⾼级篇6 Eclipse RCP开发基础6.1 Eclipse概念6.1.1 欢迎界⾯6.1.2 ⼯作台6.1.3 透视图6.1.4 视图6.1.5 编辑器6.2 RCP应⽤程序设计6.2.1 RCP插件创建向导6.2.2 Plug-in Project6.2.3 Plugin Content6.2.4 Templates6.2.5 Sample Intro6.2.6 产品初次运⾏6.3 插件清单编辑器6.3.1 插件概述6.3.2 插件依赖项6.3.3 插件运⾏时6.3.4 插件扩展6.3.5 插件扩展点6.3.6 插件构建6.3.7 其他页⾯6.4 RCP Activator与Advisor类解析6.4.1 WorkshopAppActivator6.4.2 Application6.4.3 ActionBarAdvisor6.4.4 WorkbenchAdvisor6.4.5 WorkbenchWindowAdvisor7.1.1 帮助插件的Content向导页⾯7.1.2 帮助插件的Templates向导页⾯7.1.3 帮助插件的Sample Help Table of Contents向导页⾯7.2 维护Help Content7.2.1 帮助系统配置与资源⽂件的⽬录7.2.2 帮助系统配置与资源⽂件的关系7.2.3 帮助系统扩展7.3 添加帮助的菜单项7.4 帮助⽂件的创建7.5 ⼩结8 构建产品欢迎页⾯8.1 产品绑定欢迎页⾯8.1.1 欢迎页⾯扩展8.1.2 欢迎页⾯定义8.1.3 欢迎页⾯⾸页8.1.4 页⾯跳转链接8.2 欢迎页⾯请求8.2.1 创建IIntroAction8.2.2 添加IIntroAction链接8.3 添加动态内容8.3.1 动态页⾯创建8.3.2 动态数据创建8.4 创建页⾯扩展8.5 ⼩结9 构建产品多国语⾔9.1 插件清单的多国语⾔9.2 Java程序的多国语⾔9.2.1 Java程序的外部化字符串9.2.2 Java程序的多国语⾔包9.2.3 产品多国语⾔进阶9.3 帮助系统的多国语⾔9.4 Eclipse界⾯汉化9.5 切换软件系统语⾔9.5.1 添加⾃定义产品的config⽂件9.5.2 添加语⾔切换扩展点9.5.3 语⾔切换处理器9.6 ⼩结10 产品的运⾏与导出10.1 产品配置10.2 产品配置编辑器10.3 导出向导10.3.1 产品导出10.3.2 跨平台导出10.3.3 插件导出10.4 运⾏与导出进阶10.5 ⼩结11 Eclipse RCP扩展的使⽤11.1 ViewPart视图11.1.1 创建新插件11.1.2 视图向导11.2.1 透视图向导11.2.2 透视图代码11.2.3 透视图扩展11.2.4 透视图布局11.2.5 打开透视图11.3 EditorPart编辑器11.3.1 创建数据表单11.3.2 创建编辑器的输⼊11.3.3 创建编辑器11.3.4 创建视图树形组件11.3.5 编辑器扩展11.4 编程实现Action11.4.1 IAction11.4.2 ToolBar⼯具栏11.4.3 CoolBar⼯具栏11.4.4 ContentMenuBar菜单栏11.4.5 ⼯作台Action11.4.6 视图Action菜单栏11.4.7 视图Action⼯具栏11.4.8 编辑器Action⼯具栏11.5 扩展实现Action11.5.1 ⼯作台Action扩展11.5.2 视图Action扩展11.5.3 编辑器Action扩展11.6 Action的键盘绑定11.6.1 Commands扩展11.6.2 Bindings扩展11.7 Eclipse RCP设计进阶11.7.1 视图/编辑器之间通信11.7.2 创建状态栏项11.7.3 创建属性配置页⾯11.7.4 创建登录对话框11.8 ⼩结12 Eclipse RCP扩展点开发12.1 扩展点简介12.2 创建扩展点12.3 扩展点编辑器12.3.1 扩展点概述12.3.2 扩展点定义12.3.3 扩展点源码12.4 扩展点处理12.4.1 扩展点对象12.4.2 扩展点注册12.4.3 扩展点获取12.5 添加扩展12.6 使⽤扩展12.7 ⼩结第三部分实战篇13 Eclipse RCP与Spring OSGi 13.1 OSGi技术介绍13.2 Spring OSGi项⽬所需要的开发包13.2.1 下载Spring DM的开发包13.2.2 解压缩Spring DM的开发包13.2.3 创建Spring DM⽬标平台13.3 Spring OSGi项⽬的Maven管理13.3.1 创建Maven POM项⽬13.3.2 修改Maven项⽬类型13.4 Spring OSGi项⽬的模块化设计13.4.1 创建Spring DM业务项⽬13.4.2 设计Spring DM业务项⽬13.5 Spring OSGi项⽬转为插件项⽬13.6 Spring OSGi插件项⽬发布接⼝13.6.1 创建接⼝发布配置13.6.2 添加包的路径导出13.7 Eclipse RCP获取Spring OSGi服务13.7.1 创建Eclipse RCP UI插件13.7.2 获取Spring OSGi服务接⼝13.7.3 调⽤Spring OSGi服务接⼝13.8 Eclipse RCP与Spring OSGi的启动13.8.1 Eclipse应⽤程序启动选项13.8.2 启动Eclipse RCP产品配置13.8.3 启动基于Spring OSGi的RCP程序13.9 在Eclipse RCP中获取ApplicationContext和Bean 13.10 Spring OSGi的Maven插件项⽬打包13.10.1 PDE插件导出向导13.10.2 Maven插件项⽬的打包配置13.10.3 执⾏Maven插件打包13.11 ⼩结14 Eclipse RCP与数据访问14.1 SpringOSGi与Hibernate14.1.1 Hibernate简介14.1.2 数据访问插件⽬标14.1.3 数据访问插件设计14.2 插件如何引⼊第三⽅开发包14.2.1 如何获取第三⽅开发包14.2.2 如何引⽤第三⽅开发包14.3 将普通JAR转成插件格式14.3.1 导⼊向导14.3.2 BND⼯具14.4 创建数据库插件14.4.1 Maven POM配置⽂件14.4.2 properties配置⽂件14.4.3 Spring XML配置⽂件14.4.4 MAINFEST.MF配置⽂件14.5 创建连接池插件14.5.1 Maven POM配置⽂件14.5.2 properties配置⽂件14.5.3 Spring XML配置⽂件14.5.4 Java类设计14.7 创建Hibernate插件14.7.1 Maven POM配置⽂件14.7.2 properties配置⽂件14.7.3 Spring XML配置⽂件14.7.4 扩展点设计14.7.5 Java类设计14.7.6 MAINFEST.MF配置⽂件14.8 创建业务插件14.8.1 Spring XML配置⽂件14.8.2 Java类设计14.8.3 数据库SQL设计14.8.4 MAINFEST.MF配置⽂件14.8.5 添加BundleAnnotationSessionFactoryBean扩展14.9 启动OSGi Framework程序14.10 其他整合数据库的⽅式14.11 基于数据访问插件的RCP程序启动14.12 ⼩结15 Eclipse与Java的模块化设计15.1 基于编程语⾔的模块化15.1.1 Java语句的模块化设计15.1.2 Java⽅法的模块化设计15.1.3 Java类的模块化设计15.1.4 Java接⼝的模块化设计15.2 基于编程⽅法的模块化15.2.1 IoC编程的模块化设计15.2.2 AOP编程的模块化设计15.3 基于程序物理⽂件的模块化15.3.1 Package路径的模块化设计15.3.2 XML⽂件的模块化设计15.3.3 Properties⽂件的模块化设计15.3.4 JAR组件的模块化设计15.4 基于技术架构的模块化15.4.1 OSGi的模块化设计15.4.2 Eclipse插件的模块化设计15.4.3 JMS的模块化设计15.5 模块化的技术移植15.6 ⼩结思维导图防⽌博客图床图⽚失效,防⽌图⽚源站外链:)思维导图在线编辑链接:。
Eclipse从入门到精通(第二版)_ch37
第37章 在Eclipse中使用Hibernate本章将把Hibernate应用到myweb项目中,对数据库层的代码进行改造,同时还会介绍一些Hibernate工具的使用。
37.1 概述37.1.1 持久化框架产生的背景和现状什么叫持久化?数据在内存中,关机后就会丢失。
而如果把数据保存到后台的数据库中,就能达到“持久”保存数据的目的。
而持久化框架的目的就是为了帮助用户更好地使用数据库。
在Java数据库项目中,由于数据库是关系型而非面向对象的。
很多时候,用面向对象方法完成了前期的设计和分析,到了数据库层编程时就会变得很别扭,其中最痛苦的就是写面向过程的SQL语句。
J2EE开发主要由JSP、Servlet、JavaBean和EJB 4部分组成。
其中EJB是J2EE中一个比较重要的部分,它提供了企业级开发所需的分布式支持。
但现实中的大部分项目都是单服务器的轻量级项目,一般都不会涉及分布式的开发环境,这时用EJB就像大炮打蚊子,蚊子没打到,房子却被打破个洞。
EJB的笨重和复杂一直让开发者很不满,其中EJB中Entity Bean受到的批评最多,现实项目中鲜有使用Entity Bean的成功范例。
开发者急切地需要一种符合Java编程习惯的、适合轻量级开发的、易于使用的数据库持久化解决方案。
在这个背景下就产生了轻量级的数据库持久化技术,其中最主要的就是Hibernate、JDO。
Hibernate是一个民间开源项目,有点像一个草莽英雄,但Hibernate从实用出发的设计思路,使得它脱颖而出成为最流行的持久化技术。
Hibernate的作者Gavin King也一举成名,现已成为EJB 3.0专家组的成员,并且在EJB 3.0的Entity Bean部分,将采用和Hibernate 类似的设计方案。
因此,Hibernate是开发者学习和使用持久化技术的一个比较好的选择,即使以后EJB 3.0一统天下,所学的Hibernate知识也不会浪费。
基础_1:RCP基本框架
基础_1:RCP基本框架Display:Display是⼀个SWT对象,代表底层图形系统的实现。
⼀个RCP应⽤程序只需要⼀个Display对象。
Display的主要任务是从操作系统队列中读取事件,传递给RCP的事件监听器进⾏处理。
但是Display对象不代表任何UI控件。
在程序主窗⼝打开之前,Display是不可获得的。
主窗⼝打开之后,才可以通过Shell对象获得。
Display的获得⽅法:new Display();Display.getCurrent();Display.getDefault()PlatformUI.createDisplay()shell.getDisplay() //通过shell实例对象获取Shell:每⼀个窗⼝都有⼀个Shell对象。
Shell对象代表了与⽤户交互的窗⼝框架,并处理与窗⼝关联的诸如:移动、改变⼤⼩等常见⾏为。
获取Shell对象:new Shell(display);display.getActiveShell() //获取当前激活的shell(获得焦点)Workbench-⼯作台:Workbench是⼯作台,就是代表⽤户界⾯的UI元素。
⼯作台上有各种窗⼝、图标、按钮和控件,⽤户可以在⼯作台上做各种操作。
项⽬开发中⼏乎不会直接使⽤Workbench每个RCP应⽤只有⼀个⼯作台。
eclipse的系统界⾯就是⼀个⼯作台,Workbench实现接⼝IWorkbench。
获取Workbench:IWorkbench workbench = PlatformUI.getWorkbench()IWorkbench 对象有两个⽅法⽐较重要:restart():⽴即重启应⽤close():正常关闭应⽤程序Advisor-建议者:advisor是建议者,应⽤主界⾯宽度、⾼度、图标、菜单、⼯具栏、颜⾊、操作等等配置⽅案需要Advisor来提出“建议”。
Eclipse提供了3种类型的Advisor:WorkbenchAdvisor:应⽤程序级别,负责Workbench的⽣命周期管理,以及异常处理;并负责向Workbench提供⼀些重要参数。
使用Eclipse-RCP进行桌面程序开发(一):快速起步
使用Eclipse RCP进行桌面程序开发(一):快速起步Posted on 2006-11-17 21:41 海边沫沫阅读(26857) 评论(42)编辑收藏所属分类: 拥抱Eclipse RCP 所谓RCP,就是Rich Client Platform的缩写,即富客户平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创建自己的基于Eclipse的应用程序,并且这些应用程序能够得到Eclipse的底层支持。
更重要的是,我们可以利用Java创建象Eclipse这么漂亮的桌面程序。
我相信,在未来的几年里,RCP一定会变得非常流行。
使用RCP,我们可以开发界面象Eclipse这样漂亮的桌面程序,比如医院管理系统啊、CAD软件等等。
遗憾的是,目前在国内基本上找不到关于RCP的中文资料,我们只能通过自己的探索来为我们的程序添加我们想要的功能。
下面让我们一步一步来建立一个Eclipse RCP程序,下面的内容可以说在Google 上一搜一大把,有些人会觉得乏味,但是没关系,这只是一个快速的起步。
选择“新建--项目”,选择“插件项目”:点下一步,输入项目名称,选择Eclipse版本,我这里选择的是3.2:点下一步,插件标识和插件名称可以更改,其他的内容都可以保持默认,一定要记得选中富客户机应用程序支持:点下一步,选中一个模板,这里选一个最简单的,到时候看源代码的时候便于理解:点下一步,改一下应用程序标题:点完成,我们可以在项目上面点右键,选择按Eclipse程序运行,就可以看到效果了:在这个程序中,窗口上显示的是一个透视图,透视图中含有一个编辑器区域,以后,我们可以逐步为这个程序添加菜单、工具条和为这个透视图添加视图、编辑器等等。
现在,这个程序只能在Eclipse环境下运行,而RCP的目标是创建可以独立运行的应用程序,我们的事情还没完呢。
eclipse知识教程(1)
ECLIPSE黑油数值模拟基础斯伦贝谢科技服务(北京)有限公司Schlumberger Technology Services (Beijing) Ltd目录简介1目的3什么是油藏数值模拟 5如何把模型与实际油藏联系在一起7为什么要进行油藏数值模拟研究10为什么选择ECLIPSE 12ECLIPSE的功能14ECLIPSE是如何工作的16静态油藏描述19PVT和岩石数据22初始化数据24井数据26使用ECLIPSE进行油藏数值模拟研究28 如何使用手册30文件的组织和结构33ECLIPSE输入/输出结构35ECLIPSE输出文件 37ECLIPSE输出类型 41输出文件名称44文件位置48宏命令的使用50输入文件结构53数据文件语法规则56关键字语法58各部分通用的关键字60系统使用63基本的UNIX命令65VI编辑器69RUNSPEC部分 73RUNSPEC部分的作用 75 RUNSPEC部分关键字 78不含RUNSPEC部分的数据文料81 GRID部分83GRID部分的作用85数据排列规则88网格几何形状90块中心网格实例94角点网格实例97网格模型格块属性99如何指定网格格块属性101传导系数规则109笛卡儿网格的传导系数Ill径向网格传导系数118页岩模型121传导系数修正124非相邻连接NNC 128断层处NNC的生成130尖灭处NNC的生成132局部网格加密(LGR)处NNC的生成134双孔模型中的NNC 136水体处NNC的生成138径向网格中NNC的生成140径向模型142输出控制145GRID部分关键字总结 148GRID部分关键字149EDIT部分153EDIT部分的作用155EDIT部分关键字总结157PROPS部分—流体属性159流体属性的作用161黑油模型概述163黑油及组分模拟167油相状态方程169用PVDO输入dead oi1的PVT属性172用PVCDO输入dead oi1的PVT数据174 用PVTO输入live oil的PVT数据176用PVCO输入live oi1的PVT数据178气体状态方程180用PVZG输入干气的PVT数据183 用PVDG输入干气的PVT属性185 用PVTG输入湿气的PVT数据187 水的状态方程189参考密度191黑油模型中相的选择193用PVT分区定义多种PVT类型196 用API追踪定义多种PVT类型199 岩石压缩系数205饱和度函数和端点标定207饱和度函数的作用209饱和度函数211三相相对渗透率217饱和度函数标定219端点标定221垂向标定226毛管力标定229输出控制233REGIONS分区部分235 REGIONS的作用237REGIONS部分关键字类型239 SOLUTION部分245SOLUTION部分的作用247平衡法249EQUI关键字的使用252块中心平衡253水平和倾斜网格块的精细网格平衡255 动态流体校正257过渡区端点变更260拟合初始含水分布262列举法264初始溶解比266重启268如何产生一个完全重启运算271如何产生一个快速重启运算272完全重启和快速重启274输出控制275水体模拟277水体模拟功能279网格水休281数值水体283Fetkovich水体286Carter-Tracy水体289流量水体292输出控制294SUMMARY部分295SUMMARY部分的作用297附加的参数301输出控制和补充的关键字304SCHEDULE部分—历史拟合307SCHEDULE部分的作用309历史拟合与预测分忻311SCHEDULE历史拟合部分体系结构313VFP曲线指定315钻一口新井:WELSPECS 321气井中的流动327连接层位定义:COMPDAT 331部分完并:COMPRP 337垂向平衡的部分完井:COMPVE 340井历史产量:WCONHIST 345井注入量:WCONlNJE 349模拟器控制:TUNING,TUNINGL和NEXTSTEP 352 输出控制:RPTSCHED和RPTRST 355再溶解和再挥发量:DRSDT和DRVDT 358模拟的前进和终止:DATES,TSTEP和END 360模拟井的动态362手动修井,修改产量和PI 366SCHEDULE部分—生产预测369主产预测部分关键字组成371 SCHEDULE预测部分结构372井目标产最设定:WCONPROD 374经济极限定义377单井经济极限,自动修井和自动降产379 经济极限,自动修井和自动降产381 CECON完井层段经济极限382WPLUG堵水措施:WPLUG 383修井措施:WLIFT 384WTEST试井:WTEST 385井产最的自动降产:WCUTBACK 386井组控制387创建井组层次:GRUPTREE 389井组/油田生产控制:GCONPROD 390井组注入控制:GCONINJE 393优先控制396井组经济极限:GECON 398收敛性399典型的收敛性问题401ECLIPSE100用户教程练习407练习1:单井锥进模型 409关于练习1的说明:单井锥进模型412练习2:部分模型的RUNSPEC部分 413练习3:部分模型GRID部分 415练习4:部分模型的PROPS部分和REGIONS部分418 练习5:部分模型初始化420练习6:部分模型历史拟合422练习7:部分模型开采优化425参考文献4271简介1.1 目的ECLIPSE100用户教程旨在通过介绍ECLIPSE中最常见的功能来帮助用户熟悉油藏数值模拟的整个过程。
Eclipse-RCP入门
Eclipse-RCP用于何处? Eclipse-RCP用于何处? IBM-Louts8 IBM-
Eclipse-RCP于我何用? Eclipse-RCP于我何用?
可以快速搭建桌面应用程序 使用Java语言编程 UI组件(widget)丰富 有可视化编程插件(SWTDesigner) 开源软件(版权、开发库)
1999年IBM开始开发Eclipse 2001年IBM发起创建Eclipse开源项目 同年,IBM发起并成立Eclipse协会 开源用户试图将Eclipse 作为通用富客户端使用,不 单单作为IDE。 2004年发布Eclipse3.0提出微小内核+插件的理念 2005年发布Eclipse3.1正式提出Eclipse-RCP的概念
Eclipse-RCP如何使用? Eclipse-RCP如何使用? Widget
Eclipse-RCP如何使用? Eclipse-RCP如何使用?
Example
Eclipse-RCP入门 Eclipse-RCP入门
快速搭建桌面应用程序
大纲
Eclipse-RCP它是什么? Eclipse-RCP怎么来的? Eclipse-RCP用于何处? Eclipse-RCP于我何用? Eclipse-RCP如何使用?
se-RCP它是什么? Eclipse-RCP它是什么?
Perspective应该包含哪些内容;
◦ 一组Viewer,一些Editor
如果通过配置产生一个Perspective; 如何在Perspective增加多个Viewer;
Eclipse-RCP如何使用? Eclipse-RCP如何使用? Layout
在composite中使用 setBounds FillLayout RowLayout GridLayout FormLayout
Eclipse RCP(中文)
Eclipse RCP的本教程介绍了如何开发Eclipse RCP应用程序。
它是基于Eclipse 3.6(Eclipse的太阳神)。
目录1。
Eclipse RCP的概况2。
Eclipse的插件架构2.1。
Eclipse IDE的越南难民。
Eclipse RCP的2.2。
Eclipse RCP的建筑2.3。
Eclipse RCP应用程序的一个主要组成部分2.4。
配置文件3。
安装3.1。
安装3.2。
更新一个Eclipse的Java IDE4。
创建您的第一个RCP应用程序4.1。
创建RCP应用程序4.2。
启动您的RCP应用程序5。
启动过程及顾问6。
运行配置6.1。
概述6.2。
检查运行时配置7。
命令7.1。
概述7.2。
定义命令7.3。
使用菜单中的命令8。
系统托盘9。
点击9.1。
概述9.2。
创建一个视图9.3。
添加你的观点的看法9.4。
结果9.5。
通过添加代码以透视9.6。
编辑/查看互动10。
现场协助和标签装饰11。
JFace的浏览器11.1。
概述11.2。
ComboViewer12。
添加一个状态行12.1。
设置状态行12.2。
共享状态线13。
透视13.1。
添加到应用程序的角度13.2。
选择的角度14。
产品及品牌14.1。
与产品应用14.2。
产品配置14.3。
创建您的产品配置14.4。
依赖性14.5。
启动您的产品14.6。
闪屏14.7。
品牌产品14.8。
自定义启动图标和发射参数15。
部署您的产品16。
技巧和诀窍16.1。
为用户节省布局16.2。
查找未使用的依赖16.3。
部署自己的JRE与您的RCP应用程序16.4。
多用户设置17。
问题与讨论18。
链接与文学18.1。
源代码18.2。
Eclipse资源18.3。
vogella资源1。
Eclipse RCP的概况Eclipse RCP的开发人员可以使用的Eclipse平台,建立灵活和可扩展的桌面应用程序。
Eclipse是建立在一个插件的体系结构。
插件是最小的部署和安装Eclipse的软件组件。
EclipseRCP教程
最近在客户端软件开发过程中,使用到了Eclipse RCP的若干技术,有种相见很晚的感觉。
尽管自己在日常开发中也使用了SWT中的若干技术,在运用了Theme之后看起来也让人眼前一亮,但是比起RCP 就相当于闭门造车了,例如下面两幅图片,就是SWT技术和RCP 技术开发出的不同界面,后者看起来是不是很炫呢,用流行的话来讲,就是使用户的体验更rich了,呵呵。
SWT界面:Eclipse RCP界面:好了,既然Eclipse RCP开发出的界面如此漂亮,那我们就可以借助Eclipse RCP平台中各类UI组件来改善应用程序上的UI缺陷,通过RCP平台上的各类丰富的GUI视图,来打造赏心悦目的应用程序。
但是在RCP开发的过程中,UI视图之间是相互依赖的,需要进行交互,目前国内教程对这一步骤往往语焉不详,下文就以实例的形式详细介绍Eclipse RCP View视图之间的交互机制,并总结了开发过程中的一些注意事项,避免大家绕了弯路,呵呵。
(一)下载最新的Eclipse RCP开发环境开发RCP的首要前提是下载RCP开发环境,从/上可以下载,下载之后是个zip格式文件,解压到任何目录下都可以直接运行,前提是装好jdk。
在Eclipse的官方网站上,针对不同的开发环境,已经为我们打好了不同的package,只要下载专门用来开发RCP的package即可。
当然如果你已经安装了Eclipse普通开发环境,想增加RCP相关的开发功能,需要通过Eclipse的update功能来添加就可以了,不过后者采用在线安装的方式,容易引起packge插件下载不全,导致开发时出现莫明其妙的错误,因此推荐第一种方案。
(二)新建并运行Eclipse RCP项目Eclipse安装并启动完毕之后,我们可以以插件的形式新增一个RCP模块,在该模块的基础上再添加不同的视图,这样就为下一步打下了良好的基础:在Eclipse的Package Explorer中单击右键,选择菜单第一项“new”,在弹出的子菜单中选择“other”,在对话框中如下图选择:在弹出对话框的“project name”栏中填入自己的项目名称,例如“hellorcp“,其余选项保持默认状态,点击下一步,在Plugin content对话框中“Rich Client Application”中,选择"YES",如下图所示:选择YES表示除了新建一个插件之外,还愿意将其转换成一个RCP应用,以便以后脱离Eclipse开发环境而独立部署,而插件是不能独立运行的,必须依附Eclipse而运行。
RCP开发技术培训
21
•谢谢
3
查询数据
4
查询数据
在客户端查询数据时,应熟练掌握QueryInfo,Field,QueryHandle等 类的使用,同时可结合QueryComposite面板构建QueryInfo,同时可 使用PagedTable(分页表格控件)实现分页功能。下面将一一讲解 每个类的使用方法。
5
QueryInfo
18
带联想功能下拉列表
MapCustomerCombo:创建一个带联想功能的下拉列表。 该控件继承自CustomerCombo类,对CustomerCombo进行了扩展, 他们之间的关系类似于MapAutoSelectCombo与AutoSelectCombo。 与MapAutoSelectCombo的区别: MapAutoSelectCombo只能从左到 的联想,即按照所输入的字母依次进行联想,而MapCustomerComb 能做到全联想,即只要字符串存在,不管出现在什么位置,都能自动 关联。 构造函数:new MapCustomerCombo(parent, SWT.BORDER)。 主要方法:setMap(Map map),用于设置下拉列表的值。
11
QueryHandle
findByProperty(Class clazz, Map propertyValues):执行查询, clazz为查 询的实体,propertyValues封装每个查询条件,Key值为实体属性, Value值为对应的值,请注意,这里的条件并不像QueryInfo能设置不 同的条件,诸如大于,小于等,只能设置简单的等于条件。
eclipse rcp 编程 -回复
eclipse rcp 编程-回复Eclipse RCP (Rich Client Platform) 是一种用于构建桌面应用程序的框架,使开发人员能够基于Eclipse平台开发功能强大且个性化的应用程序。
本文将以以中括号内的内容为主题,一步一步回答关于Eclipse RCP 编程的问题。
什么是Eclipse RCP?Eclipse RCP是Eclipse基于插件化架构的一个桌面应用开发框架。
开发人员可以使用Eclipse RCP来构建具有丰富用户界面的功能强大的Java应用程序。
Eclipse RCP提供了一个可扩展的架构,使开发人员能够利用Eclipse平台的核心功能,并通过插件机制来添加自定义功能。
为什么选择Eclipse RCP?选择Eclipse RCP开发桌面应用程序有以下几个优势:1. 强大的插件机制:Eclipse RCP框架采用插件化架构,使开发人员可以将应用程序分解为独立的模块,通过插件的方式来实现功能的扩展和定制。
这种模块化的设计使得应用程序更易于维护和扩展。
2. 成熟的生态系统:Eclipse平台作为一个开源社区,拥有庞大的开发者社区和丰富的插件库。
使用Eclipse RCP开发应用程序可以充分利用这些已经存在的插件和工具,提高开发效率。
3. 丰富的用户界面:Eclipse RCP提供了丰富的GUI组件库,可以轻松构建出现代化的用户界面。
开发人员可以利用Eclipse的界面设计器创建界面,也可以使用自定义的SWT和JFace组件。
4. 跨平台性:Eclipse RCP框架是基于Java的,因此可以在多个操作系统上运行。
开发人员只需编写一次代码,即可在Windows、MacOS和Linux等系统上部署应用程序。
如何开始使用Eclipse RCP?以下是使用Eclipse RCP开始开发桌面应用程序的步骤:1. 下载并安装Eclipse IDE:从官方网站( IDE。
确保选择与您的操作系统和Java版本兼容的版本。
eclipse基本使用操作-一定要很熟悉
最常用快捷键快捷键功能备注eclipse常用快捷键在开发中,常用的eclipse快捷键:代码补全:alt + /添加和取消单行注释:ctrl + /添加多行注释:ctrl + shift + /取消多行注释:ctrl + shift + \快速复制所选择的代码:ctrl + shift + ↓或↑(注意:该快捷键和windows屏幕反转快捷键重合,需要禁用windows反转快捷键)移动所选择的代码向下或向下移动:alt + ↓或↑删除所选代码:ctrl + d修正代码:ctrl + 1 当书写的程序中出现小红X可以为错误的代码提供一些解决方案快速导入类所在的包:ctrl + shift + o代码格式化:ctrl + shift + fCtrl+1 快速修复最经典的Alt+/ 提供内容的帮助记不全方法类属性最常用输入try 按alt / 自动出现代码try catch 一般很容易出现异常的代码或者是很容易出错误的代码放在try...catch中Ctrl+O显示类中方法属性和大纲查找bug时非常有用(函数列表)多按一次Ctrl+O 列出更多的内部变量Ctrl+/为每行或者选择部分添加注释调试有用Ctrl+D删除当前行最喜欢的快捷键之一Ctrl+F6 界面切换程序名切换Ctrl+F 查找Ctrl+M窗口最大最小化方便进行代码的书写Ctrl+T 快速显示当前类的继承结构Ctrl+L 定位于某行Ctrl+Shift+R快速查找资源免得左边找Ctrl+F3 打开结构(跟Ctrl+O 类似)Ctrl+Q快速定位到最后一个编辑的地方F4 查看类结构Ctrl+F11 运行Ctrl+Shift+L显示所有的快捷键F11 调试最后一次运行的程序Ctrl+Shift+F最常用格式化某段代码不选择某段代码则格式化化整个Java文件Ctrl+Shift+S 保存所有save allCtrl+H全局搜索Ctrl+Alt+↓复制当前行到下一行Alt+↓当前行和下一行相互交换位置Alt+Enter 显示当前资源(工程或者文件)的属性Ctrl+W关闭当前编辑器Ctrl+E快速显示文件下拉列表Ctrl+/(小键盘)显示当前类的所有代码Ctrl+*(小键盘)关闭当前类的所有代码Ctrl+J 查找当前选中的文本块Ctrl+Shift+J 反向查找当前选中的文本块从后往前找Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)上面是最常用的研读代码经常用的不用会很晕Crtl+O切换查看方法(当前查找类成员)Ctrl+T看继承关系重构最常用的快捷键:(注:一般重构的快捷键都是Alt+Shift开头的了)Alt+Shift+R重命名(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)Alt+Shift+M 抽取方法(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)Alt+Shift+F 把Class中的local变量变为field变量(比较实用的功能) Alt+Shift+I 合并变量(可能这样说有点不妥Inline)Alt+Shift+V 移动函数和变量(不怎么常用)Alt+Shift+Z 重构的后悔药(Undo)正则表达式:其实就是定义一些规则来简化String字符串的操作通过一些特定的符号组成规则来限定字符串预定的规则正则表达式的书写:是由字母、数字等一些程序中经常使用的符号组合而成学习正则表达式其实就是学习正则中的各种符号(主要了解各种正则符号的含义)正则表达式的符号规则:一般规则:x 表示一个任意字母,字符串中当前某个位置必须包含所指定的x字符例:“abc” 正则:”a[a-z]”\\ 表示反斜线例:\t 表示制表符[abc] 表示当前字符串中某个字符必须是a或b或c []表示是一个范围[^abc] 表示不是[abc][a-zA-Z] 表示所有的大小写字母[a-d[f-h]] 表示字符的范围必须是a到d或f到h (并集)[a-d&&[d-f]] 表示字符的范围必须是d (交集)[a-z&&[^xm]] 表示字符的范围在a到z之间但是不包含x和m[a-d&&[^d-f]] 表示字符的范围必须是a或b或c预定义字符:. 表示任意字符\d 表示的就是数字可以代替[0-9]\D 表示[^0-9]\w 表示字母、数字、下划线可以代替[a-zA-Z_0-9]\W 表示[^a-zA-Z_0-9]\s 表示空白字符边界符:^ 表示行开始$ 表示行结束例:”helloworld” 正则:”^h 此处中间有正则d$数量词:x? 表示可以有0次或1次字符?表示前面的字符可以有0或1次x*表示可以有0次或多次字符*表示前面的字符可以有0或多次x+ 表示可以有1次或多次+表示前面的字符可以有1次或多次x{n}表示必须有n次{n}表示前面的字符只能有n次x{n,}表示至少有n次{n,}表示前面的字符必须有n次以上(不能少于n次) x{n,m} 表示从n到m次{n,m}表示前面的字符有n到m次正则表达式中只有4种功能:匹配、切割、替换、获取正则只属于字符串使用,而正则也是对字符串进行操作(匹配、切割、替换、获取)Eclipse界面简单设置1.重置为默认视图2.查看某一视图(恢复某一视图界面)3.代码模版(删除多余的或者自定义代码模版)4.配置快捷键window-preferences-General5.调整代码字体大小颜色6.显示代码行号7.导入包,资源,光标选中单词,按住ctrl,出现小手标识,单词出现超链接,点击弹出底层源代码9.改文件名称10.小光标放置ctrl+e或者双击11.Tab切换光标往前走,Shift+Table光标往回走12.ALT+CTRL+箭头上复制往上走13.ALT+箭头上往上走14.F4查找树15.查看代码的class文件16.Ctrl+f 查找替换某些内容17.Alt+shift+s???18.格式化代码Ctrl+Shift+f19.ctrl+shift+o代码中导入多个包20.Domain 域,主要描述某一领域的事物动物界等等21.Ctrl+/单行注释Ctrl+/取消单行注释Ctrl+shift+/多行注释Ctrl+shift+\取消多行注释22.Ctrl+A选中全部23.新建文件(.txt...)Eclipse快捷键使用1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。
使用RCP进行程序开发(学习篇)
使用RCP进行程序开发(学习篇)背景由于8808站端(RPU)配置客户端是使用富客户端技术来进行开发的,自己在维护该项目之前并没有接触过该技术,以下就总结一下自己学习的过程。
简介RCP 的全称是 Rich Client Platform,富客户端技术。
RCP 给开发者带来的更多的感觉是在它充分发挥了插件化系统的优势,从 RCP 的设计中,可以学习到如何将应用做到模块化、将应用做到动态化,甚至还可以学习到如何自动生成界面这样的设计思想。
Eclipse RCP体系结构如下:Workbench SWT/JFace Workspace Help TeamPlatform Runtime(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平台架构技术分析及基于RCP的应用研究
●2Eclipse技术的应用:2.1开发插件利用PDE可以方便快捷把应用程序开发成插件,打包后放到plugins目录下,Eclipse启动时会找到相应的插件。这种方式可开发GUI和非GUI插件。如开发GUI插件,一般是对平台的操作组(actionSets)进行扩展,实现在菜单栏中添加菜单项。然后提供透视图、视图、编辑器的扩展。其过程如下。使用这种方式开发的应用只能作为Eclipse的插件运行,必须安装Eclipse。插件开发的流程1)决定插件如何与平台集成2)标识需要进行添加的扩展点以便与用户的插件进行集成3)根据扩展点的规范来实现这些扩展。如实现扩展点所要求的特定的接口。4)提供清单文件(plugin.xml),它描述用户正在提供的扩展以及代码的封装。Eclipse就是解析这个文件来加载插件的。2.2开发RCP应用胖客户端程序(RCP)是指运算和商务逻辑是在客户端实现的应用,相反的在服务器端实现的称为瘦客户端程序。EclipseRCP提供了一个通用的工作台,开发人员可以扩展该工作台来构造自己的应用程序。利用RCP可以开发出独立的应用,从而脱离了Eclipse平台的IDE环境。一个RCP至少要实现一个插件,并且可以使用与EclipseIDE相同的用户界面元素。运行EclipseRCP不需要安装Eclipse。开发EclipseRCP的步骤:1)确定扩展点。插件需要实现哪些扩展点。2)编写插件清单plugin.xml。3)生成组件类来实现扩展。4)创建WorkbenchAdvisor类。构建RCP的核心任务之一就是创建一个实现抽象类WorkbenchAdvisor的类。WorkbenchAdvisor负责配置工作台,当执行RCP应用程序时,将显示该工作台。5)接下来需要创建Application类。它相当于与Java类中的main方法,是RCP应用程序的主要入口点,需要定义org.eclipse.core.runtime.applications扩展点,并实现IPlatformRunnable接口。6)创建并导出一个应用程序,并生成一个插件。将其放在plugins目录。7)配置config.ini文件。需要定义product、application和闪屏等信息。
Eclipse+RCP深入浅出要点
第Ⅱ部分通过范例学习RCP学习作为富客户端平台的RCP,最佳方法是创建一个富客户端应用程序。
本书的这一部分内容,将引导你完成这个任务。
启动一台完全没有任何Eclipse 功能的机器,为了进行RCP开发,我们来逐步设置Eclipse,然后创建、运行、调试并增强一个功能齐全的即时消息客户端应用程序——名曰Hyperbola。
下图所示为你将创建的Hyperbola聊天客户端应用程序的屏幕截图。
第Ⅱ部分,以非正式的教程风格进行介绍——假设我们坐在一起,指导你完成Hyperbola的开发。
我们鼓励你跟着说明步骤去做。
如果你不想按照这些步骤或遇到困难,也可以在本书配套网站()找到每一章的全部源代码。
即使这几章非常注重开发,但每章的内容也非常完整,不按下列步骤或不看提供的源代码也可以读完。
第3章教程入门入门往往被证明是最大的挑战之一。
特别是,考虑到未来十多章教程的性质,理解本教程的目标,并确保你有一个合理的开发计划,对于拥有一个愉快的学习经验而言是至关重要的。
本章的目的是设置情境,包含如下内容:●概述教程的内容和发展●如何设置才能进行Eclipse RCP开发●如何获取、比较和管理范例代码●使用Eclipse IDE开发源代码的一些技巧3.1 Hyperbola是什么Hyperbola是为本书明确开发的一个即时消息聊天客户端程序。
即时消息领域十分引人注目,因为它非常简单,也容易理解。
事实上,你很可能在某个时候已经使用了即时消息客户端。
无论是Google Talk(谷歌对话)、Yahoo! Messenger(雅虎通)、AOL Instant Messenger (AOL即时信使)、MSN Messenger或者是Lotus Sametime,原理基本上是相同的——客户端连接到服务器,服务器将信息从一个客户端路由到另外一个客户端。
是什么使得编写另外一个聊天客户端如此有意思?尽管这个想法很简单,但是即时通信客户端本身还有很多挑战和功能需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
• •
本课程主要讲授Eclipse及RCP基础知识
适用于Java开发工程师 面向的学员是渴望了解Eclipse RCP的
各类开发工程师
•
1
全部课程时间大约是40分钟
周甫(zoofchow@)
概要
• 项目的组织结构
• RCP基本框架
• 定制应用程序窗口
• 定制开发平台和目标平台
• Eclipse自动生成了一个RCP项目所需要的
5个java文件,RCP项目也主要是在这5个 文件基础上做开发. • 深入的了解这5个文件对于RCP开发是非 常有帮助的.
5
周甫(zoofchow@)
2.1 基本概念
• Display
• 应用程序一般只需要一个Display对象,该
2
周甫(zoofchow@)
0 新建项目
新建项目,除了在新建向导的”Templates”一页选择:”RCP Application with an intro”以外,其他的过程都和”快速入门”中新建项目过程一样. • 建好项目后,将默认的包名:**.**.intro改为**.**.core • 同时修改plugin.xml中的相关两处,如: 第一处: <run class="net.zoof.kayaka.intro.Application"> </run> 第二处: <perspective name="net.zoof.kayaka.perspective" class="net.zoof.kayaka.intro.Perspective" id="net.zoof.kayaka.perspective"> </perspective> • 在项目下新建以下2个目录:
•
Display display = PlatformUI.createDisplay(); try { //数据库启动 //网络校验 //安全验证 int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); …….
•
– – lib -- 存放我们将要用到的一些类库文件 icons -- 存放各种图片
3
周甫(zoofchow@)
1 项目的组织结构
Java源文件
系统类库 插件依赖 欢迎文字
描述文件
构建属性对文件
插件配置文件 启动图片
4 周甫(zoofchow@)
2 RCP基本框架
– WorkbenchAdvisor : 应用程序级别,负责工作台生命周期的 管理,例如启动、关闭等。 – WorkbenchWindowAdvisor: 窗口级别,每个窗口都有一个 WorkbenchWindowAdvisor实例。该实例负责具体窗口的生命 周期管理,例如:状态栏、工具栏、菜单、标题和各种控件 等等.有点与SWT中的Shell类似. – ActionBarAdvisor: 窗口级别。每个窗口都有一个 ActionBarAdvisor的实例,该实例管理窗口的菜单栏、状态栏、 工具栏的外观和行为。
• Workbench重要的两个方法: – restart() -- 重新启动应用程序 – close() – 关闭应用程序
8 周甫(zoofchow@)
Advisor
• Advisor是个通称,主要设置用户主界面宽度、高度、
图标、菜单、工具栏、颜色、各类操作等等. • Advisor有具体的3种类型:
9
周甫(zoofchow@)
View 和 Editor
• 在RCP中,用户主要通过视图(View)和编辑器
(Editor)来与程序交互。
– 视图是可以浮动的工作窗口,负责显示在某个层面 的状态信息。视图扩展自ViewPart抽象类. – 编辑器也是一种工作窗口,提供对数据进行各种操 作的交互能力。编辑器扩展自EditorPart抽象类
12
周甫(zoofchow@)
ApplicationWorkbenchAdvisor.java
11 周甫(zoofchow@)
2.2 类文件分析
Application.java Application相当于Java类的main(),RCP程序的运行总是开始于 Application,它负责程序的启动、停止。 • 切入点: 可以将我们需要在程序运行之前的一些准备工作(诸如数据库启动, 网络检验,安全验证等等)放在这类中.放置的地方:
对象实际上是一个SWT对象,代表了低层 图形系统的实现.它负责从操作系统的事 件队列中读取事件,传递给RCP的事件监 听器以便完成具体任务。
6
周甫(zoofchow@)
Shell与Shell居中
• Shell
• 每个窗口都有一个Shell对象.Shell对象代
表了与用户交互的窗口框架,并处理与 窗口关联的诸如移动、改变大小等常见 行为。 • Shell居中: (见:代码集锦 Code 1);
• 实际上,视图和编辑器并没有严格的区分。
10
周甫(zoofchow@)
Perspective
• 透视图(Perspective)是应用程序对窗口内容进
行安排和布局的主要工具,每个应用程序都有 一个默认的透视图。 • 默认的透视图不可移动、不可关闭且没有标题 栏。 • 透视图与视图、编辑器之间的关系可以用书包、 书和笔来形容。 • Eclipse为我们创建了一个透视图类 (Perspective),而我们只需要在这个类中定义新 的透视图即可.
7 周甫(zoofchow@)
Workbench
• Workbench是工作台,通俗地说就是代表用户界
面的UI元素.工作台上有各种窗口、图标、按钮 和控件,用户执行各种操作的主要地方。 • 每个应用程序只有一个Workbench。 • 获取方法:
IWorkbench workbench = PlatformUI.getWorkbench();