2012-03-21 6 views
0

私は、ビューの部分を持って、私のcreatePartControl機能に私はこの持っている:選択リスナーをEclipse RCP Workbenchに追加する際に、使用するIDをどのように知っていると思われますか?

viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); 

getSite().setSelectionProvider(viewer); 
getSite().getWorkbenchWindow().getSelectionService() 
      .addSelectionListener(this); 

私は選択リスナーとしてviewpartを登録するんだけど、私は本当にこのviewpartにtreeviewerが提供する選択肢を聞きたいが。これは、コンテキストポップアップポップアップメニューを作成しようとしているので、メニューポップアップが発生したときにどのノードが選択されているかを知りたい(選択リスナーコードがmenulistenerの前に実行されることを望んでいる)このフレームワークはせいぜい役に立たない。

私はaddSelectionListener(String ID、ISelectionListener listener)メソッドを知っていますが、私は聴いてみたい視聴者のIDを知るはずです。でる?

答えて

1

私は本当に視聴者に対して直接選択リスナーを追加しないのはなぜこのviewpartにtreeviewerによって

を提供する選択肢を聞きたいですか?

私はそれはあなたのビュー(一部)ではない(木)ビューアのIDですビューワ

のIDを知ることになっていますか地球上で。

viewer.getSelection()に直接リスナーなしで電話をかけることもできます。

+0

ビューIDを使用しようとしましたが、機能しませんでした。リスナーへの呼び出しは行われませんでした。クラスからの静的ID文字列を渡したので、間違いなく正しいIDでした。 – Link19

+1

@GlenLambそれはうまくいくはずです、ただそれを試しました。ビューIDはもともとplugin.xmlで定義されています。 –

3

SelectionServiceを使用すると、他のコンポーネントの選択に反応することができます。プラグインを公開してから数年後に書かれた、あなたやあなたが書かなかったコンポーネント。

あなたの意図は、(例えばどのビューまたはエディタでregardlesslyのJava Methodeのの選択に反応する)どこかのEclipseにおける選択に反応しないある場合は、と間違って何もあなたにリスナーを登録ありませんTreeViewer直接

このように、の間違ったフィルタを選択する必要はありませんが、あなたの視聴者のみを取得することはできます。

関連する問題