如何在 RCP 中实现删除键绑定 3.X

How to implement delete key binding in RCP 3.X

我需要实现删除键绑定,这样当我按下删除键时,必须删除选定的树节点。我已经在 buttonListener 中实现了删除,但我也需要用 DEL 键实现同样的操作。

Plugin.xml

<extension
     point="org.eclipse.ui.bindings">
  <key
        commandId="org.eclipse.ui.edit.delete"
        contextId="org.eclipse.ui.contexts.dialogAndWindow"
        schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
        sequence="M1+DEL">  //just tried for CTRL+DEL key but i need only for DEL Key
  </key>
</extension>

我应该添加命令吗?命令的属性应该是什么? 我应该在我的代码中的什么地方调用此操作?

大多数插件为此只在树上使用一个键侦听器。类似于:

treeViewer.getTree().addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent event) {
      if (event.character == SWT.DEL && event.stateMask == 0) {
         // TODO handle delete
      }
    } 
});

请注意,Eclipse 已经是删除的绑定:

<key
   commandId="org.eclipse.ui.edit.delete"
   sequence="DEL"
   schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />

因此您也可以为命令 org.eclipse.ui.edit.delete 定义一个处理程序,但您必须确保该处理程序仅在您的 view/editor 处于活动状态时才处于活动状态。