一、概述

在做项目的过程中,处理编辑区的保存机制的时候。发现,同样是扩展eclipse 自带的保存和全部保存按钮时候,rcp 工程下,保存按钮可以正常的灰显和可用,但是rap 的按钮就是始终呈现灰显的状态,无论编辑区是否有变化。为了解决这个问题,经过研究在rap 上做了以下处理,问题得以解决。

二、rap 保存按钮显示的处理

在项目中保存按钮和全部保存按钮是通过扩展点的方式加载的,而且这个扩展点是eclipse 自身带有的扩展点,可以直接调用,并且调用这个保存扩展点,可以直接拥有和eclipse 编辑区类似的功能操作扩展点的添加方式:

1 、保存的commandId 直接扩展:org.eclipse.ui.file.save

2 、全部保存的commandId 扩展:org.eclipse.ui.file.saveAll

这样保存和全部保存添加上了。处理rap 下保存按钮可用的处理逻辑和代码如下,处理了类 ApplicationActionBarAdvisor 中的相关方法 。

处理之前的类:

  1. public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
  2. public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
  3. super(configurer);
  4. }
  5. protected void makeActions(IWorkbenchWindow window) {
  6. }
  7. protected void fillMenuBar(IMenuManager menuBar) {
  8. }
  9. }

在 ApplicationActionBarAdvisor 这个类中,在 makeActions (IWorkbenchWindow window) 方法中将按钮注册进去就可以了。

处理之后的类:

  1. /**
  2. *
  3. * 工具按钮等相关功能注册
  4. *
  5. */
  6. public class ApplicationActionBarAdvisor extends ActionBarAdvisor
  7. {
  8. public ApplicationActionBarAdvisor(IActionBarConfigurer configurer){
  9. super(configurer);
  10. }
  11. /**
  12. * 工具栏保存、全部保存按钮注册
  13. */
  14. protected void makeActions(IWorkbenchWindow window) {
  15. //保存、全部保存按钮的注册
  16. register(ActionFactory.SAVE.create(window));
  17. register(ActionFactory.SAVE_ALL.create(window));
  18. //历史记录回退、重做按钮的注册。
  19. register(ActionFactory.UNDO.create(window));
  20. register(ActionFactory.REDO.create(window));
  21. }
  22. protected void fillMenuBar(IMenuManager menuBar) {
  23. }
  24. }

Eclipse rap 富客户端开发总结(13) :Rap/Rcp保存按钮处理方式的更多相关文章

  1. Eclipse rap 富客户端开发总结(3):rcp/rap目前界面上的一些差异

    1. Label和Button按钮的显示的差异 当Label 和 Button显示的文字过长显示不开的时候,rcp.rap的处理方式就不一样了,rap显示不开会自己截取掉后面的文字,rcp会在文字的中 ...

  2. Eclipse rap 富客户端开发总结(11) : rcp/rap与spring ibatis集成

    1. rcp/rap 与 spring 集成 Activator 是rcp/rap 启动时需要加载的类, 只需要加载一遍,所以与spring 集成的时候一般是在这个类里面加载spring 的Appli ...

  3. Eclipse rap 富客户端开发总结(15) :rap如何使用js

    1. 把输入的字符串当 javascript 执行 try { RWT.getResponse().getWriter().println("alert('123');"); }  ...

  4. Eclipse rap 富客户端开发总结(14) :rap 图片、数据缓存处理

    一.概述 在进行了 rap 的基本学习之后,您对 rap 的理解是否进入了更高的一个层次呢,个人觉得,对学习 rap 的人来说,进行 rap 的学习是一个探索的过程,在编程中不断的对其进行理解和分析, ...

  5. Eclipse rap 富客户端开发总结(4):如何搭建 rap 中文开发环境

    Rap中文开发环境搭建大约分为2个部分 1.  rap国际化,详细参加文章(rap开发经验总结(5)-rap国际化之路) 2.rap自带的JFace ,Dialog 等国际化 1.中文包下载地址: h ...

  6. Eclipse rap 富客户端开发总结(2):rap项目目前的进度和存在的问题

    1. Eclipse rap项目目前的进度 目前rap 的最新版本是 rap 1.5M4,最稳定版本是 rap 1.4.1,我们项目目前使用的版本是rap 1.4.1,Rap目前已经支持的部分是 sw ...

  7. Eclipse rap 富客户端开发总结(1) :rap简单介绍和开发环境搭建

    一.rap简单介绍 1 基本概念     RAP可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序, RAP的工作原理是采用交叉编译的方式将 ...

  8. Eclipse rap 富客户端开发总结(9) : rap上传与下载

    一 上传 上传即将文件上传到服务器上,在客户端需要写相应的脚本,服务器端需要注册相应的 handle 接受客户端的请求. 原理: Rap 的上传和下载是通过普通的 web 的方式进行上传和下载的 ,  ...

  9. Eclipse rap 富客户端开发总结(7) : 如何修改rap的样式

    1. Rap样式原理  Rap的界面样式目前是以css来配置的,程序启动后加载相应的css配置文件再对组件进行样式设置,界面上的所有组件 Label button composit等的样式最开始都是通 ...

随机推荐

  1. 设计模式(6)--Adapter(适配器模式)--结构型

    1.模式定义: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 2.模式特点:  Adapter模式使原本因接口不匹配(或者不兼 ...

  2. How to generate file name according to datetime in bat command

    On the command line, note: must copy and paste below lines of code and then execute them one by one: ...

  3. Windows界面设计标准

    Windows界面设计标准..- Windows界面设计标准 Windows 界面设计标准 1. 易用性 界面元素的名称.标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区 ...

  4. spring boot整合Thymeleaf的那些坑(spring boot 学习笔记之四)

    这里简单记录一下Thymeleaf配置和使用的步骤 1.修改pom文件,添加依赖 <dependency> <groupId>org.springframework.boot& ...

  5. RSA,Miller-Rabin素数测试的源流及其证明

    一.RSA与公钥加密系统的起源与影响. 为了更好地突出公钥加密系统相对私钥加密系统的优势,让我们从这两个问题开始: 这个世界上如果没有公钥加密系统会怎么样呢?全用私钥加密系统会出现什么问题呢? 首先, ...

  6. find the Nth highest salary(寻找第N高薪水)

    Suppose that you are given the following simple database table called Employee that has 2 columns na ...

  7. Jquery Mobile笔记之一

    jQuery Mobile 在你的网页中添加 jQuery Mobile 你可以通过以下几种方式将jQuery Mobile添加到你的网页中: 从 CDN 中加载 jQuery Mobile (推荐) ...

  8. 修改xcode初始生成代码

    xcode在新建新的工程的时候会默认生成一份代码,例如新建一个c++工程,其初始的代码如下: #include <iostream> int main(int argc, const ch ...

  9. Ext.grid.CheckboxSelectionModel复选框设置某行不可以选中

    var sm = new Ext.grid.CheckboxSelectionModel({ renderer:function(v,c,r){ if(r.get("isEdit" ...

  10. 为Ext添加下拉框和日期组件

    Ext.onReady(function(){ var config = { fields:['module'], data:[['新建'],['删除'],['增加']}; var store = n ...