给RCP系统添加全局快捷键

本文详细介绍了在RCP系统中为特定命令添加全局快捷键的步骤,包括在plugin.xml中定义扩展点、创建Action类以及注册快捷键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章转自:http://www.blogjava.net/chengang/archive/2006/04/28/43873.html 
一个RCP系统,给它添加一个象Eclipse中Ctrl+Shift+O一样的全局快捷键,怎么加? 

参考了RCP的Email项目示例,给我RCP项目中MonitorAction(显示一个监视器的命令)添加一个快捷键Ctrl+1。简单把添加的过程概述如下: 

1、首先在plugin.xml中添加两个扩展点如下 

<extension  
       point="org.eclipse.ui.bindings">  
    <key  
          commandId="org.eclipse.ui.file.exit"  
          schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"  
          sequence="CTRL+X"/>  
    <key  
          commandId="adminconsole.monitor"  
          schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"  
          sequence="CTRL+1"/>  
 </extension>  
  
 <extension  
       point="org.eclipse.ui.commands">  
    <category  
          id="adminconsole.perspective"  
          name="Perspective"/>  
    <command  
          categoryId="adminconsole.perspective"  
          id="adminconsole.monitor"  
          name="Open Monitor Perspective"/>  
 </extension> 

说明: 
。org.eclipse.ui.file.exit是另一个退出系统命令,是复用了Eclipse本身的那个,它和本例无关。 
。commandId要求唯一 
。cmmands扩展点的category是一个组,估计不要也可以,最后还是加上吧。 
。bindings扩展点中的commandId对应于cmmands扩展点中的id 

2、创建一个类,专门保存所有commandId 

public interface ICommandIds {  
    public static final String CMD_MONITOR = "adminconsole.monitor";  
}  

3、创建Action类,在构造函数里用两个方法注册一下

private static class MonitorAction extends Action {  
    public MonitorAction() {  
        setText("监视");  
        // The id is used to refer to the action in a menu or toolbar  
        setId(ICommandIds.CMD_MONITOR);  
        // Associate the action with a pre-defined command, to allow key bindings.  
        setActionDefinitionId(ICommandIds.CMD_MONITOR);  
    }  
}  

4、在ApplicationActionBarAdvisor的makeActions方法,给monitorAction对象加上这样一句 

saveAction = new SaveAction(window);
		register(saveAction);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值