org.eclipse.ui.IObjectActionDelegate?はパッケージエクスプローラなどを右クリックしたときに現れるポップアップメニューに項目を追加するためのインターフェースです。 拡張ポイント †org.eclipse.ui.popupMenus plugin.xmlのサンプル †<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" <- 選択したファイルが1つだけの時有効 id="kino.actions.HogeAction"> </action> </objectContribution> </extension> objectClassの場所は、他に objectClass="org.eclipse.core.resources.IResource" <- ファイルとか、フォルダだったら表示 objectClass="org.eclipse.jdt.core.ICompilationUnit" <- いわゆるソースファイルだったら objectClass="org.eclipse.core.resources.IFile" <- ファイルだったら表示 objectClass="org.eclipse.core.resources.IFolder" <- フォルダだったら表示 などがあります。 ポイント †実装クラスはIObjectActionDelegate?を実装します。実際に使用するメソッドは selectionChanged(IAction action, ISelection selection) run(IAction action) でしょう。 selectionChanged(IAction action, ISelection selection) †なにかが選択されたときに呼ばれるメソッドです。selectionを用いて、メニュー内でクリックされたリソースが何であるかを判定するロジックを記述します。 run(IAction action) †実際にメニューから選択されたときに呼ばれるメソッドです。selectionChangedで選択されたリソースをフィールドに保持して、runメソッド内でロジックを記述する、なんてのが基本パターンでしょうか。 TIPS †
関連リンク †この記事は 現在のアクセス:13689 |