2

メニューバーからユーザーの選択をキャプチャしようとしています。たとえば、ユーザーがメニューでファイルを押した場合、プラグインは「ファイルが押されました」と出力します。IselectionService でビューの選択をリッスンする方法を見つけましたが、メイン メニュー バー (またはツールバー) でそれを行う方法はまだわかりません。

助けてくれてありがとう


詳細:

問題をもう少し正確に説明します。
トップレベルのメニュー アクションとツールバーをキャプチャしたいのですが、問題は、リスナーを作成してアタッチする方法が本当にわからないことです。プラグインの説明は
こちら。 私の目的は、ワークベンチのトップレベルのメニュー選択とツールバーを聞くことです。 助けてくれてありがとうISelectionListener

// the listener we register with the selection service 
private ISelectionListener listener = new ISelectionListener() {
  public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) {
    // we ignore our own selections
    if (sourcepart != SelectionView.this) {
      showSelection(sourcepart, selection);
    }
  }
};
...
...
public void createPartControl(Composite parent) {
  ...
  getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(listener);

PS : メニュー リスナーについて私が見つけたもののほとんどは、私が作成したいくつかのビューまたはウィンドウの SWT のものでした。

4

3 に答える 3

1

YuoはICommandServiceの使用を試みることができます。このサービスを使用すると、IExecutionListenerを登録できます。

このようにして、実行されたすべてのコマンドを追跡できますが、この方法では、コマンド自体をアクティブ化したメニュー項目を追跡することはできません。

それが役に立てば幸い

于 2010-11-12T14:29:24.770 に答える
1

場所の uri ( PluginSpyで確認できます)がわかっている場合は、そのメニュー イベントに反応するためにハンドラーを追加できます。

注: Menu Contribution の記事では、次の locationURI について言及しています。

  • メインメニューは「org.eclipse.ui.main.menu
  • メイン ツールバーは「org.eclipse.ui.main.toolbar」です
于 2010-09-10T20:15:55.743 に答える
0

Smarttutor プラグインを作成した人たちから助けを得たことをお伝えしたいと思います。これはまさに私が必要としているものです。メニュー上のすべてのアクションをキャプチャします。– amir farah 31 秒前 編集 Smarttutor プラグインを作成した人たちから助けを得たことを伝えたいと思います。メニュー上のすべてのアクションをキャプチャします。
ここにウェブサイトがあります:code.google.com/p/smarttutor

于 2010-11-13T07:59:00.210 に答える