2017-02-13 6 views
0

削除キーバインディングを実装する必要があるため、削除キーを押すと、選択したツリーノードを削除する必要があります。私はすでにbuttonListenerで削除を実装していますが、私は同様にDELキーでも同じことを実装する必要があります。RCP 3.Xでの削除キーバインディングの実装方法

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> 

私はコマンドを追加すべきか?コマンドの属性には何が必要ですか? 私のコードでこのアクションをどこで呼びますか?

答えて

0

ほとんどのプラグインは、ツリーのキーリスナーを使用します。何かのように:Eclipseがすでに削除のために結合

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

注:

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

はそうあなたもコマンドorg.eclipse.ui.edit.deleteのためのハンドラを定義することができるかもしれませんが、あなたは確認する必要がありハンドラがのみ有効ですあなたのビュー/エディタがアクティブなとき。

+0

私はこれをキーリスナーを使用して行っています。しかし、私はアクションとコマンドを追加することで、このように試してみたい。この行動にアクセスするか、どこに呼び出すかはわかりません。 ハンドラを有効にするにはどうすればよいですか?あなたは助けてもらえますか? – Sudeep

+0

私はこのためのハンドラを使ってEclipseで例を見つけることができません。ほとんどすべてがキーリスナーを使用します。 'org.eclipse.ui.handlers'ハンドラを定義し、' '要素を使用して、アクティブであるときを定義します。 –

関連する問題