Java 有没有办法在eclipse RCP中创建一个不管焦点如何都能工作的密钥绑定?
我正在eclipse中开发一个RCP应用程序。我需要创建一个键绑定来执行一些操作,但不考虑当前的焦点 换句话说,我需要创建一个一直在监听的键绑定,不管您使用的是应用程序的哪个部分或者哪个窗口具有当前焦点 例如,给定一个带有菜单(Java 有没有办法在eclipse RCP中创建一个不管焦点如何都能工作的密钥绑定?,java,eclipse,rcp,key-bindings,Java,Eclipse,Rcp,Key Bindings,我正在eclipse中开发一个RCP应用程序。我需要创建一个键绑定来执行一些操作,但不考虑当前的焦点 换句话说,我需要创建一个一直在监听的键绑定,不管您使用的是应用程序的哪个部分或者哪个窗口具有当前焦点 例如,给定一个带有菜单(文件)和两个选项(打开和退出)的窗口打开打开一个对话框,退出关闭应用程序。还有一个键绑定(ctrl+1),用于执行退出按钮。我想要的是能够使用ctrl+1关闭应用程序,即使我的焦点在Open显示的对话框上 我所测试的 现在我有了一个RCP应用程序,它将ke绑定(ctrl+
文件
)和两个选项(打开
和退出
)的窗口<代码>打开打开一个对话框,退出关闭应用程序。还有一个键绑定(ctrl+1
),用于执行退出
按钮。我想要的是能够使用ctrl+1
关闭应用程序,即使我的焦点在Open
显示的对话框上
我所测试的
现在我有了一个RCP应用程序,它将ke绑定(ctrl+1)到退出按钮,但是当我在焦点位于open显示的对话框上时执行ctrl+1时,键绑定不起作用
这里是处理程序
// Handler for the Open button
public class OpenHandler implements IHandler {
...
public Object execute(ExecutionEvent event) throws ExecutionException {
// TODO Auto-generated method stub
final ExecutionEvent auxEvent = event;
HandlerUtil.getActiveShell(event).getDisplay().asyncExec((new Runnable() {
public void run() {
MessageDialog.openWarning(HandlerUtil.getActiveShell(auxEvent),"wrong","no");
}
}));
return null;
}
...
}
// Handler for the Exit button
public class ExitHandler extends AbstractHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
HandlerUtil.getActiveWorkbenchWindow(event).close();
return null;
}
}
这里是带有密钥绑定等的清单:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="application"
point="org.eclipse.core.runtime.applications">
<application>
<run
class="de.vogella.rcp.commands.first.Application">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="RCP Perspective"
class="de.vogella.rcp.commands.first.Perspective"
id="de.vogella.rcp.commands.first.perspective">
</perspective>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="de.vogella.rcp.commands.first.commands.ExitHandler"
id="de.vogella.rcp.commands.first.commands.Exit"
name="Exit">
</command>
<command
defaultHandler="de.vogella.rcp.commands.first.commands.OpenHandler"
id="de.vogella.rcp.commands.first.commands.Open"
name="Open">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="fileManu"
label="File">
<command
commandId="de.vogella.rcp.commands.first.commands.Exit"
label="Exit"
style="push"
tooltip="Exits the application">
</command>
<command
commandId="de.vogella.rcp.commands.first.commands.Open"
label="Open"
style="push"
tooltip="Opens">
</command>
</menu>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="de.vogella.rcp.commands.first.commands.Exit"
contextId="org.eclipse.ui.contexts.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+1">
</key>
</extension>
</plugin>
当对话框打开时,键绑定通常不起作用 可以在对话框工作的地方编写对话框,但不能将其添加到现有对话框中