05 Eclipse RCP(四)(常用技术)(2)(进阶开发)

上传人:飞****9 文档编号:131117225 上传时间:2020-05-04 格式:PPT 页数:48 大小:4.09MB
返回 下载 相关 举报
05 Eclipse RCP(四)(常用技术)(2)(进阶开发)_第1页
第1页 / 共48页
05 Eclipse RCP(四)(常用技术)(2)(进阶开发)_第2页
第2页 / 共48页
05 Eclipse RCP(四)(常用技术)(2)(进阶开发)_第3页
第3页 / 共48页
05 Eclipse RCP(四)(常用技术)(2)(进阶开发)_第4页
第4页 / 共48页
05 Eclipse RCP(四)(常用技术)(2)(进阶开发)_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《05 Eclipse RCP(四)(常用技术)(2)(进阶开发)》由会员分享,可在线阅读,更多相关《05 Eclipse RCP(四)(常用技术)(2)(进阶开发)(48页珍藏版)》请在金锄头文库上搜索。

1、EclipseRCP 四 常用技术 2 进阶开发 周甫 zoofchow 2 课程介绍 本课程主要讲授Eclipse及RCP进阶知识适用于Java开发工程师面向的学员是渴望了解EclipseRCP的各类开发工程师全部课程时间大约是40分钟 周甫 zoofchow 3 概要 菜单和工具栏托盘技术进度条状态栏 Job 属性监听器GCJFreeChart在线升级启动和停止Derby数据库 周甫 zoofchow 4 1菜单和工具栏 不同于SWT的菜单和工具栏需要分别创建menu和coolbar RCP的菜单和工具栏的菜单项和工具项可以统一起来创建一个Action类即可 这点和JFace类似 从Act

2、ion的行为上来看 一般做三件事 执行某个后台任务 打开一个对话框打开视图或者编辑器 周甫 zoofchow 5 创建Action 创建一个Action需要继承自org eclipse jface action Action这个类 其代码结构为 publicclassSimpleActionextendsAction publicSimpleAction publicvoidrun 在构造方法中构建这个Action 常用API有 setId SimpleAction 注册ACTIONsetText 示例Action ALT S 设置菜单文字及快捷键setToolTipText 示例Action

3、 作为工具栏使用时的提示文本setImageDescriptor AbstractUIPlugin imageDescriptorFormPlugin Demo icons simpleaction gif 设置图标注意imageDescriptorFormPlugin方法需要2个参数 项目ID号 和图片文件名 实际上这是找到图片的绝对路径在run 方法中实现需要的业务代码 打开某个视图或者执行某个任务等等 周甫 zoofchow 6 创建菜单 创建菜单的步骤 在ApplicationActionBarAdvisor类的makeAction 方法中实例化Action 在fileMenuBar

4、方法中将Action作为菜单项加入到菜单中 首先创建MenuManager 相当于顶级菜单 也可以作为子菜单用 MenuManagermenuCodeParse newMenuManager 代码分析 codeParse 参数为 菜单文本 菜单ID号将Action加入到MenuManager menuUserOption add simpleaction 将MenuManager添加到菜单栏 menuBar add menuUserOption menuBar是filemenuBar的参数 周甫 zoofchow 7 创建工具栏 在ApplicationActionBarAdvisor类的fi

5、llCoolBar 中将构建好的Action添加进来即可 如同菜单 工具栏也需要一个ToolBarManager来管理Action ToolBarManagertoolBarManager newToolBarManager SWT FLAT coolBar add toolBarManager coolBar是fillCoolBar的参数toolBarManager add simpleaction SWT FLAT设置工具栏的样式为平滑 工具项不凸出 如果工具项之间要分组可以用coolBar add newSeparator 加根竖的分离线 周甫 zoofchow 8 2托盘技术 托盘 T

6、ray 技术主要实现以下2个目的 程序启动或关闭 非退出 时自动最小化到Windows右下角的系统托盘区用户可以随时通过托盘打开程序 恢复窗口 另外 托盘技术中应当关注的功能有 菜单项图标管理 周甫 zoofchow 9 托盘对象 托盘对象的获取方法 Traytray getWindowConfigurer getWindow getShell getDisplay getSystemTray 如同Table等容器一样 Tray也是一个容器 给Tray添加内容就要用TrayItem对象来管理 给Tray添加托盘项 TrayItem TrayItemtrayItem newTrayItem tr

7、ay SWT NONE 给TrayItem设置文字和图标 trayItem setImage Image Of Tray trayItem setToolTipText 托盘示例 然后将这段代码放置在ApplicationWorkbenchWindowAdvisor的postWindowOpen 方法中 因为需要创建Display后 程序窗口没打开之前托盘就能开始工作 即实现其目的之一 周甫 zoofchow 10 托盘监听器 现在托盘看起来 但它还不能做事 现在给托盘添加事件以实现托盘功能之二 单击托盘图标打开程序trayItem addListener SWT Selection newL

8、istener publicvoidhandleEvent Eventevent 恢复程序界面 周甫 zoofchow 11 关闭程序窗口 关闭程序窗口而不是退出 只需要调用shell的setMinimized true 和setVisible false 即可 调用的切入点在ApplicationWorkbenchWindowAdvisor的preWindowShellClose 中 调用上述2个方法后shell仅仅只是隐藏而不会真的关闭了 周甫 zoofchow 12 加上菜单 如同系统菜单和工具栏一样 Tray的菜单项也是Action给托盘添加右键菜单 trayItem addListe

9、ner SWT MenuDetect newListener publicvoidhandleEvent Eventevent 若干Action 现在托盘基本上可以工作了 周甫 zoofchow 13 完整的托盘 更好的托盘 其中有一个定时提示的线程 如果不需要就将线程屏蔽 见Code7 11 周甫 zoofchow 14 3进度条 当需要较长时间的操作而用户无法与程序交互时 应该向用户显示一个进度条以提示正在操作及操作进度 这有利于提高用户的耐心 也是软件友好性的体现之一 实现进度条可以用的有 SWT的ProgressBarJFace的ProgressMonitorDialog 周甫 zoo

10、fchow 15 ProgressMonitorDialog ProgressMonitorDialog构造方法 publicProgressMonitorDialog Shellparent ProgressMonitorDialog默认样式 SWT BORDER SWT TITLE SWT APPLICATION MODAL其运行示例 周甫 zoofchow 16 ProgressMonitorDialog详解 ProgressMonitorDialog重要方法 run booleanfork booleancancelable IRunnableWithProgressrunnable

11、调用这个方法 进度条才开始工作 其参数 fork是否 true 在单独的线程中运行cancelable对话框的取消按钮是否可用runnable是一个接口 需要我们来实现 IRunnableWithProgressrwp newIRunnableWithProgress publicvoidrun IProgressMonitormonitor throwsInvocationTargetException InterruptedException 操作代码 可见 这个接口的run 方法才是我们真正写代码的地方 周甫 zoofchow 17 IProgressMonitorAPI IProgre

12、ssMonitor常用方法 beginTask Stringname inittotalWork 任务开始 必须调用的方法 其参数 name 任务的名称 即前图的 正在登录数据库 请稍候 文字部分 totalWork 大概的任务总数 如果无法估算 则用IProgressMonitor UNKNOWN Done 任务完成isCanceled 当前任务是否被取消setCanceled booleanvalue 设置任务的取消状态subTask String 子任务开始 其提示文字worked intwork 通知线程已经完成的任务数 如果任务数已知 则进度条前进1步 周甫 zoofchow 18

13、进度条对话框示例 任务数未知 任务数已知 周甫 zoofchow 19 进度条模板 总结前面的过程 可以得出进度条对话框的模板 见Code12 周甫 zoofchow 20 4状态栏 Eclipse状态栏位于窗口的底部 可以显示图标 文本信息和进度条 不同于ProgressMonitorDialog 要使状态栏可见 ApplicationWorkbenchWindowAdvisor的preWindowOpen 方法中设置了configurer setShowStatusLine true 状态栏常用区域 FastViews可以将视图拖入其中快速访问 或者临时信息 Contributions附加

14、信息 JobsProgress执行的Job 形如进度条 周甫 zoofchow 21 临时信息 在ApplicationWorkbenchWindowAdvisor中的postWindowOpen 方法中添加代码即可 示例如下 IstatusLineManagerstatusline getWindowconfigurer getActionBarConfigurer getStatusLineManager statusline setMessage Image of yours 临时信息示例文字 这段信息在刚打开时出现 激活某个视图后将消失 周甫 zoofchow 22 Contribut

15、ions 使用contributions区域 需要自定义一个扩展自ContributionItem的类 在该类的fill 方法中加入要显示的图片和文字 然后改写ApplicationActionBarAdvisor的fillStatusLine IStatusLineManagerstatusLine 方法 将自定义的类添加给statusLine即可 见Code13 周甫 zoofchow 23 Job 除了进度条这种对于耗时较长的任务友好提示外 还有一种在状态栏中使用的进图条即Job 一个Job可以看作是一个完成单一功能的处理单元 由Job管理器负责调度管理并可反复运行 周甫 zoofcho

16、w 24 示例 Job可以在视图内随处调用 见Code14 周甫 zoofchow 25 5属性监听器 在RCP程序开发当中常常会遇到数据同步的问题 也就是说某个视图的数据发生改变 而其他视图能够响应这个改变 这里就要用到属性监听器 属性监听器的原理来自设计模式 观察者 详见 07设计模式 五 Observer观察者模式 周甫 zoofchow 26 RCP的Observer RCP中属性改变监听模式就是对Observer模式的一个实践 其大致原理是 在这个模式中有一个属性提供方 主题提供方 暴露一个属性 主题 另外有一个或者多个属性监听方 订阅者 当属性提供方的主题发生改变时 监听方收到改变作出相应操作 属性监听方需要实现IPropertyChangeListener接口 在方法propertyChange中给出操作处理 周甫 zoofchow 27 实现属性监听模式 步骤如下 建立一个管理属性监听方的类 这个类用于注册对主题感兴趣各个视图 如果属性发生改变就立刻通知各监听者 调用监听者实现的propertyChange 方法 见Code15 监听者将自己注册到属性监听者管理类 如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号