Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在eclipse RCP中创建一个不管焦点如何都能工作的密钥绑定?_Java_Eclipse_Rcp_Key Bindings - Fatal编程技术网

Java 有没有办法在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+

我正在eclipse中开发一个RCP应用程序。我需要创建一个键绑定来执行一些操作,但不考虑当前的焦点

换句话说,我需要创建一个一直在监听的键绑定,不管您使用的是应用程序的哪个部分或者哪个窗口具有当前焦点

例如,给定一个带有菜单(
文件
)和两个选项(
打开
退出
)的窗口<代码>打开打开一个对话框,退出关闭应用程序。还有一个键绑定(
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>

当对话框打开时,键绑定通常不起作用

可以在对话框工作的地方编写对话框,但不能将其添加到现有对话框中