`

RCP 快捷键 问题:如何屏蔽掉Eclipse插件本身的快捷键,而只自定义的快捷键功能有效

 
阅读更多
比如要实现Ctrl+S的Save快捷键时,会出现插件本身的快捷键和自定义的两个快捷键,这样显然不是我们想要的效果。

方案(1)

 
  //屏蔽快捷键
   ((IBindingService)PlatformUI.getWorkbench().getAdapter(IBindingService.class)).setKeyFilterEnabled(false);

PS.:这个能屏蔽所有的Binding 包括自定义的,这显然不合适。

方案(2)

采用默认的ContextID:org.eclipse.ui.contexts.window

  在plugin.xml中实现:

   <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="org.xxx.SaveConfigHandler"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="CTRL+S">
      </key>
   </extension>


PS:这就导致了标题中提到的问题,同时有两个快捷键。

方案(3)(有效解决方案)

指定自定义ContextID,只有在该ContextID下快捷键才有效,而非默认的ContextID

  在plugin.xml中实现:

 <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="org.xxxx.SaveConfigHandler"
            contextId="MyConfigEditor.Context"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="CTRL+S">
      </key>
   </extension>


同时扩展:

  <extension
         point="org.eclipse.ui.contexts">
      <context
            id="MyConfigEditor.Context"
            name="MyConfigEditor  Context"
            parentId="org.eclipse.ui.contexts.window">
      </context>
   </extension>


(以Editor下Ctrl+S为例:)

在相应的Editor中

重写起init方法如下:

@Override
 public void init(IEditorSite site, IEditorInput input) throws PartInitException {
  super.init(site, input);
   IContextService contextService =(IContextService) getSite().getService(IContextService.class);
   contextService.activateContext("MyConfigEditor.Context");
 }
分享到:
评论

相关推荐

    Eclipse插件开发学习笔记全篇+源码.rar

    Eclipse插件开发是扩展其功能和定制工作环境的关键技术。本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇...

    Eclipse插件开发笔记源码

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse IDE的功能来创建自定义的工作环境。这份“Eclipse插件开发笔记源码”提供了丰富的学习材料,帮助开发者深入理解并实践Eclipse插件开发...

    eclipse plug-in/rcp 开发方法详解03

    Eclipse RCP(Rich Client Platform)和插件系统是Java开发人员构建强大、自定义桌面应用的首选工具。以下是关于这个主题的详细知识点: 1. **Eclipse插件体系结构**: - 插件是Eclipse平台的核心组成部分,它们...

    Eclipse RCP培训.zip

    1. **组件模型**:Eclipse RCP基于插件(plugin)体系结构,每个功能模块都可以作为一个独立的插件实现,这使得系统具有高度的可扩展性和可维护性。 2. **工作台(Workbench)**:Eclipse RCP的核心是工作台,它...

    EclipseRcp 例子程序

    6. **命令与快捷键**:Eclipse RCP提供了命令框架,允许自定义用户操作,如菜单项和快捷键。例子程序会展示如何定义、注册和绑定这些命令。 7. **服务(Service)**:Eclipse RCP支持服务导向的架构,通过服务,...

    eclipse插件开发步步教你

    Eclipse插件开发是构建自定义工具、扩展编辑器、视图、透视图等核心功能的重要方式。本教程旨在逐步指导初学者进行Eclipse插件的开发,通过实例演示如何利用Eclipse平台的API和扩展点来实现各种功能。 首先,我们要...

    Eclipse插件开发系列

    4. **实现功能**:根据需求,我们可以创建新的Java类来实现插件的具体功能,比如自定义视图、编辑器、透视图、命令、快捷键等。 5. **运行与调试**:Eclipse提供了内置的插件运行时环境,可以在不离开IDE的情况下...

    Eclipse插件开发学习笔记19-21章.rar

    Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者扩展Eclipse集成开发环境(IDE)的功能,创建自定义工具、编辑器和视图,以满足特定的开发需求。本压缩包包含三份学习资料,分别是第19章“插件开发...

    eclipse 3.6 rcp 开发

    ### Eclipse 3.6 RCP 开发知识点概览 #### 1. 富客户端平台 (RCP) 概述 **1.1 概述** - **定义**: Eclipse Rich Client Platform (RCP) 是一种基于Java的技术框架,用于构建可扩展的桌面应用程序。 - **特点**: ...

    eclipse-rcp开发培训PPT

    1. **平台概述**:Eclipse RCP是一个基于插件的框架,它提供了用户界面、事件处理、国际化和本地化、数据存储等核心功能,让开发者可以专注于业务逻辑的实现,而非底层架构的搭建。 2. **插件系统**:Eclipse RCP的...

    Eclipse RCP开发教程

    Eclipse Rich Client Platform (RCP) 是一个用于构建桌面应用程序的框架,它基于 Eclipse IDE 平台,允许开发者利用 Eclipse 的强大功能和丰富的插件系统来创建自定义的、可扩展的应用程序。Eclipse RCP 的核心理念...

    eclipse插件开发学习笔记配套源码

    Eclipse 插件开发是Java开发者深入理解和扩展Eclipse...同时,这也是提升Eclipse定制能力和解决实际问题能力的有效途径。对于想要成为Eclipse开发专家或者希望优化Eclipse使用体验的开发者来说,这是一份宝贵的资源。

    Eclipse 插件开发学习笔记.rar

    4. 测试插件:使用Eclipse的运行配置,选择“Plug-in Debugging”模式启动一个新的Eclipse实例,测试插件功能。 四、Eclipse插件关键组件 1. 视图(View):显示特定信息或提供操作界面,例如控制台视图、问题视图...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    【Eclipse RCP 插件开发自学教程 (Eclipse3.6)】 Eclipse RCP (Rich Client Platform) 是一个框架,允许开发者构建高度可定制和可扩展的桌面应用程序。本教程是针对Eclipse 3.6版本的,提供了一个详细的学习路径,...

    eclipse rcp 插件开发学习笔记.pdf 1-14章

    Eclipse RCP,全称Eclipse Rich Client Platform...以上内容涵盖了Eclipse RCP插件开发的基本概念和实践,通过这些章节的学习,开发者能够构建功能丰富的桌面应用程序,并具备对Eclipse RCP平台的深入理解和应用能力。

    Eclipse-4-RCP教程

    ### Eclipse-4-RCP教程详解 #### 一、Eclipse RCP 应用程序简介 Eclipse RCP(Rich Client Platform)是一种利用Eclipse平台技术构建独立应用的方式。本教程将交替使用“基于Eclipse的应用”、“Eclipse应用”、...

    Eclipse+RCP入门

    在《Eclipse+RCP入门》资料中,你可能会学习到如何创建基本的RCP项目、定义视图和编辑器、实现命令和快捷键、使用透视图组织界面、以及如何通过插件扩展功能。此外,还会涉及Eclipse插件开发环境(PDE,Plug-in ...

    eclipse rcp 例子 源码

    Eclipse RCP(Rich Client Platform)是一个开源框架,用于构建功能丰富的桌面应用程序。它基于Java,利用了Eclipse IDE的强大功能,提供了插件化架构,允许开发者构建可扩展且模块化的应用。本压缩包包含了一个...

    eclipse 插件 实例01

    Eclipse 插件实例01是一个基于Eclipse RCP(Rich Client Platform)开发的应用程序,展示了如何在Eclipse环境中创建和使用自定义插件。Eclipse RCP是Eclipse IDE的核心组成部分,它允许开发者构建功能丰富的桌面应用...

Global site tag (gtag.js) - Google Analytics