3

org.eclipse.ui.edit.delete コマンド ハンドラーを実装しました。編集/削除のメイン メニュー項目でそれを呼び出したいと思います。

「削除」アクションは、各編集のコンテキストで定義された別のアクションを呼び出すリターゲット可能IActionBars.setGlobalAction(String id, IAction action)なアクションであるため、エディターは通常where id="delete"で構成され、アクションはリターゲット可能なアクションによって呼び出されるカスタム アクションです。

次のオプションが表示されます。

  1. 実行と状態変化の監視をコマンドに委譲するアクションを作成します convert 既存のコマンドを の引数に変換します。setGlobalActionおそらくコピーorg.eclipse.ui.internal.actions.CommandActionアプローチです。
  2. メイン メニューから既存のアクションを削除し、代わりにコマンド コントリビューション アイテムを挿入します

どちらの方法も複雑すぎる/汚れているように見えます。何か不足していますか?アクションの代わりにコマンドを使用できますか?

編集:

メインメニューは ではなく で実装されているようIActionですCommandContributionItem。デフォルトのコマンド ハンドラはCommandAction、次にクエリを呼び出しますRetargetAction。コマンドの「より良い」ハンドラーは、この動作をオーバーライドできます。

現在、削除コマンドのハンドラーを提供できますが、GUI からコマンドを呼び出す (たとえば、ボタンをクリックする) ことは便利であり、カスタム コマンドを呼び出すのはそれほど簡単ではない (デフォルトのキー バインドがないか、またはリターゲット可能なアクション)。

4

0 に答える 0