子非鱼
BlogJava
首页
新随笔
联系
聚合
管理
21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
eclipse(9)
INVEST(1)
JAVA(9)
OTHER(2)
随笔档案
2011年9月 (1)
2009年3月 (4)
2008年10月 (1)
2008年4月 (1)
2008年2月 (1)
2008年1月 (1)
2007年10月 (2)
2007年8月 (5)
2007年7月 (5)
搜索
最新评论
1. re: eclipse.ini内存设置各参数含义(转)
内容详细,详尽深入
--Hua Hero
阅读排行榜
1. java.lang.OutOfMemoryError: PermGen space及其解决方法(转)(22647)
2. Eclipse奇技淫巧(3202)
3. 模态窗口(1306)
4. Eclipse 快捷键定制(转)(1234)
5. actionSet 和 perspective、view、editor等关联(888)
评论排行榜
1. eclipse.ini内存设置各参数含义(转)(1)
2. java.lang.OutOfMemoryError: PermGen space及其解决方法(转)(0)
3. 深入研究java对String字符串对象的创建以及管理(转)(0)
4. Eclipse 快捷键定制(转)(0)
5. 待整理的东东(0)
Eclipse 快捷键定制(转)
转自:http://lemon.javaeye.com/blog/51480
http://www.blogjava.net/fhawk/archive/2007/01/16/28993.html
利用IKeyBindingService接口为Action绑定快捷键:
1、
设置commands extension
<
extension
point
= "org.eclipse.ui.commands"
>
<!--
activeKeyConfiguration项用来说明所绑定快捷键的初始设置
-->
<
activeKeyConfiguration
value
="org.eclipse.ui.defaultAcceleratorConfiguration"
/>
<!--
如果快捷键设置有多套,可以添加多个类别
-->
<
category
name
="intelliPlatform.Category1"
description
="Test description"
id
="intelliPlatform.Category1"
/>
<!--
其中id为这个command的ID,相关的action通过这个ID标志找到这个command
-->
<
command
name
="intelliPlatform.command.DataSource"
category
="intelliPlatform.Category1"
description
="数据源配置"
id
="com.longtop.intelliplatform.ide.project.commands.DataSource"
/>
<!--
具体的快捷键设置,其中command指定实际的coomand的ID
-->
<
keyBinding
command
="com.longtop.intelliplatform.ide.project.commands.DataSource"
configuration
="org.eclipse.ui.defaultAcceleratorConfiguration"
keySequence
="Ctrl+Shift+D"
/>
</
extension
>
以上是设置了plugin.xml中command extension,并指定了keybinding,在keybinding中
的keysequence中的字符串是设置的快捷键。
------------
在具体的Action配置中,只要在其属性definitionId设置成command的ID即可,示例如下:
<
action
label
="Sample Action"
icon
="icons/sample.gif"
class
="cli.bacchus.portal.ui.actions.BacchusAction"
tooltip
="Hello, Eclipse world"
menubarPath
="sampleMenu/sampleGroup"
toolbarPath
="sampleGroup"
id
="bacchus.portal.ui.actions.BacchusAction"
definitionId
="com.longtop.intelliplatform.ide.project.commands.datesource"
>
</
action
>
注意:当给相关的action设置完definitionID后,必须保证其中设置的command是有的,而且是正确的,否则有可能导致该action显示不出来。
更具体的信息请参考eclipse开发参考中关于扩展点org.eclipse.ui.commands的详细描述。
------------
2、
建立Acion,在此建立的action可以是实现IAction接口的任何类。比较方便的是继承
org.eclipse.jface.Action,然后在新类中覆盖父类的run() 方法.
public
class
CopyAction
extends
Action
{
public
CopyAction()
{
setId(
"
org.example.copyaction
"
);
setActionDefinitionId(
"
com.longtop.intelliplatform.ide.project.commands.DataSource
"
);
}
}
3、
在创建CopyAction的instance之后,将copyActionInstance用IKeyBindingService绑定到
指定的command。
获得IKeyBinddingservice的一种简单方式为:
IKeyBindingService keyBindingService
=
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getKeyBindingService();
keyBindingService.registerAction(copyActionInstance);
注意:
1、action的definitionid和command定义的id必须一致。
2、当指定的keySequence与系统默认的冲突时,如:在窗体的菜单栏中
指定了Edit->Copy(默认的快捷键为Ctrl+C),若将上面的keySequence改为
M1+C(Ctrl+C)则系统默认的快捷键(Ctrl+C)将更改为Ctrl+Insert。即RCP默认
的为用户指定的优先,系统动态更新。
3、IKeyBindingService指定的快捷键是有作用范围的。
为主菜单绑定快捷键
主菜单的快捷键即为 Alt + 菜单名称中带下划线的字母
定义主菜单快捷键只要在主菜单lable中确定的字母前面加上&字符即可
如:
plugin.properties menulabel = &Intelliplatform
plugin_zh.properties menulabel = 平台(&I)
(注意:在该label引用的properties国际化文件中加,直接在plugin.xml中加好像无效,此处存疑)
posted on 2008-10-06 15:18
子非鱼
阅读(1234)
评论(0)
编辑
收藏
所属分类:
eclipse
Powered by:
BlogJava
Copyright © 子非鱼