如何以编程方式检测eclipse插件命令的键绑定?

时间:2009-12-22 19:02:32

标签: java eclipse

我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题,我无法弄清楚如何解决这个问题:

我有一个有热键的命令。我还有一个编辑器,需要从Eclipse中窃取密钥绑定(禁用IBindingService中的密钥过滤器)。但是,这个命令足够“重要”,因此热键仍然需要工作。目前,在该特定编辑器中,在我正在侦听键事件的部分中,我检查该命令的默认键绑定是什么,并在检测到它时手动启动它。显而易见的问题是,如果更改了命令的键绑定,则仍然只在该编辑器中使用默认绑定。有没有什么方法可以轻松访问特定命令的键绑定,以便我可以检查它而不是简单的默认命令?

我意识到这个解决方案在不同的编辑器之间是不可移植的,但这是我唯一需要担心的编辑器,所以我真的不介意特别介绍这个。

1 个答案:

答案 0 :(得分:5)

您需要使用org.eclipse.ui.keys.IBindingService通过org.eclipse.ui.PlatformUI获取它有点棘手:

IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
bindingService.getBestActiveBindingFormattedFor(CMDID); 

CMDID是您在plugin.xml中定义的命令ID。