org.eclipse.ui.IObjectActionDelegate?はパッケージエクスプローラなどを右クリックしたときに現れるポップアップメニューに項目を追加するためのインターフェースです。
org.eclipse.ui.popupMenus
<extension point="org.eclipse.ui.popupMenus"> <objectContribution objectClass="org.eclipse.core.resources.IFile" ↑ 選択されているのがIFileのときだけ id="kino.objectContribution"> <action label="実行!!" <- メニューに表示される文字列 icon="icons/sample.gif" <- アイコン class="kino.actions.HogeAction" <- 実装クラス menubarPath="additions" enablesFor="1" id="kino.actions.HogeAction"> </action> </objectContribution> </extension>
実装クラスはIObjectActionDelegate?を実装します。実際に使用するメソッドは
selectionChanged(IAction action, ISelection selection) run(IAction action)
でしょう。
なにかが選択されたときに呼ばれるメソッドです。selectionを用いて、メニュー内でクリックされたリソースが何であるかを判定するロジックを記述します。
実際にメニューから選択されたときに呼ばれるメソッドです。selectionChangedで選択されたリソースをフィールドに保持して、runメソッド内でロジックを記述する、なんてのが基本パターンでしょうか。
MenuManager menuManager = new MenuManager(); getSite().registerContextMenu(menuManager,getSite().getSelectionProvider());なんですね。
この記事は
現在のアクセス:13485