第5回:メニューとポップアップ・メニューの拡張 (3/4)

Eclipse実践プラグイン開発
Eclipse実践プラグイン開発

第5回:メニューとポップアップ・メニューの拡張
著者:ビーブレイクシステムズ  大森 洋行   2005/8/1
前のページ  1  2  3   4  次のページ
拡張ポイント

   拡張する拡張ポイントは、"org.eclipse.ui.actionSets"です。拡張ポイントの説明やplugin.xmlファイルのextension要素の記述方法は、ヘルプの「Platform プラグイン・デベロッパー・ガイド」の「参照」 - 「拡張ポイント参照」(日本語)を見るか、以下の方法(英語)で確認することができます。
  1. プラグイン開発・パースペクティブのプラグイン・ビューの「org.eclipse.ui (3.0.x)」からplugin.xmlを開く
  2. マニフェスト・エディターの「拡張ポイント」ページを開き、「すべての拡張ポイント」の中の「actionSets」を選択し、「拡張ポイント記述を開く」をクリックする

   拡張ポイント"org.eclipse.ui.actionSets"のextension要素の構造を図3にまとめました。

″org.eclipse.ui.actionSets″のextension要素の構造
図3:"org.eclipse.ui.actionSets"のextension要素の構造
(画像をクリックすると別ウィンドウに拡大図を表示します)


アクション・クラス

   アクション・クラスは、IWorkbenchWindowActionDelegateインターフェースかIWorkbenchWindowPulldownDelegateインターフェースをインプリメントしたクラスです。アクション・クラスでインプリメントできるインターフェースとそれらの関係は、以下のようになります。

IWorkbenchWindowActionDelegateインターフェースとスーパーインターフェース、サブインターフェース
図4:IWorkbenchWindowActionDelegateインターフェースとスーパーインターフェース、サブインターフェース

   IWorkbenchWindowPulldownDelegateインターフェースは、IWorkbenchWindowActionDelegateインターフェースを継承され、plugin.xmlのaction要素のstyle属性に"pulldown"を指定するときにインプリメントします。

   IWorkbenchWindowActionDelegateインターフェースをインプリメントしたアクション・クラスでは、表1のメソッドを実装する必要があります。

メソッド内容
initワークベンチにロードされたときに呼ばれ、初期化処理を実装
runユーザがメニュー・アイテムかツールバー・ボタンをクリックしたときに呼ばれ、実際に実行する機能を実装します。
MessageDialogのようなGUIコンポーネントを使用することができます
selectionChanged選択を変更したときに呼ばれ、機能の変更処理やパラメータの変更処理などを実装
dispose終了するときに呼ばれ、割り当てたシステム・リソースの廃棄処理を実装

表1:実装するメリット

   「Hello2 プラグイン」のSampleActionクラスは、IWorkbenchWindowActionDelegateインターフェースをインプリメントし、4つのメソッド(init、run、selectionChanged、dispose)を実装しています。そして「サンプル・アクション」メニュー・アイテムやメニューバー・ボタンがクリックされると、runメソッドが呼ばれメッセージダイアログが表示されます。


ポップアップ・メニューの追加

   ポップアップ・メニュー(コンテキスト・メニュー)は、ビューやエディタで右クリックしたときに表示されるメニューです。ポップアップ・メニューには2種類あります。

   ひとつは、右クリックしたときの選択しているオブジェクトの種類によって表示されるポップアップ・メニューです。もうひとつは、指定したビューやエディタで表示されるポップアップ・メニューです。ポップアップ・メニューにもユーザがメニューをクリックしたときの動作であるアクションを追加します。

   それでは以下の手順で「Hello2 プラグイン」に、hello.txtファイルを右クリックしたときに表示され、「Hello, Eclipse world」メッセージ・ダイアログを表示するポップアップ・メニュー(図5)を追加してみましょう(プラグイン開発・パースペクティブを開いてください)。

実行例
図5:実行例

   はじめにマニフェスト・エディターの「拡張」ページを表示します。「追加」ボタンをクリックし、「新規拡張」ウィザードを起動します。拡張ポイント"org.eclipse.ui.popupMenus"を選択し、「新規拡張」ウィザードを終了します。


"objectContribution"のプロパティ設定

   "org.eclipse.ui.popupMenus"を右クリックします。表示されたポップアップ・メニューから「新規」 - 「objectContribution」を選択し、"objectContribution"のプロパティを以下のように設定し、保管します。

プロパティ
内容
id値:examples.hello2.objectContribution
ポップアップ・メニューを識別するID
objectClass値:org.eclipse.core.resources.IFile
選択中のすべてのオブジェクトが、継承、もしくは実装すべきクラスまたはインターフェースの完全修飾名
nameFilter値:hello.txt
選択したオブジェクトの名前に対するフィルタ
adaptable値:false
objectClassがorg.eclipse.core.resources.IResourceインターフェースに適応する型である場合、このポップアップ・メニューを使用するかどうかを示す
  • true - 使用する
  • false - 使用しない(デフォルト)
"menu"のプロパティ設定

   "examples.hello2.objectContribution"を右クリックします。表示されたポップアップ・メニューから「新規」 - 「menu」を選択し、"menu"のプロパティを以下のように設定し、保管します。

プロパティ
内容
id値:sampleMenu3
メニューを識別するためのID
label値:サンプル・メニュー3(&M)
メニューの名前
path値:なし
メニューのルートから開始する新規メニューの位置。省略するとadditionsグループに追加されます
前のページ  1  2  3   4  次のページ


ビーブレイクシステムズ社 大森 洋行
著者プロフィール
ビーブレイクシステムズ社  大森 洋行
中堅システム開発会社にて、データベース検索ソフトの開発・導入コンサルティング・セミナー講師に従事。その現場の中で、Java及びオープンソースを用いたシステム開発は今後のシステム開発の主流になると考え、それらを独学で学ぶ。本格的にそれらを用いた開発に携わるため、ビーブレイクシステムズに入社。現在、データ項目やその流れの分析に重点をおきながら、Javaやオープンソースを用いたシステム開発に携わる。


INDEX
第5回:メニューとポップアップ・メニューの拡張
 はじめに
 "menu"のパラメータ設定
拡張ポイント
 "separator"のプロパティ設定
Eclipse実践プラグイン開発
第1回Eclipseとプラグイン
第2回プラグインの配布とインストール
第3回基本的なGUIコンポーネントの利用
第4回JFaceのGUIコンポーネント
第5回メニューとポップアップ・メニューの拡張
第6回ビューの拡張
第7回エディタの拡張
第8回パースペクティブの拡張
第9回プロパティと設定の拡張
Eclipseが提供するBIとレポーティングツール
第1回インストールからはじめるEclipse BIRT
第2回データベースのデータをレポートに出力しよう
第3回レポートを作成しよう
第4回スクリプティング機能・Tomcatでのプレビュー・レポートエンジンを使用したレポート出力
Eclipse3ではじめるJava Webアプリケーション開発
第1回Eclipse3の概要とインストール
第2回Eclipse3の基本機能
第3回Eclipse3の基本操作を憶えよう
第4回Eclipseの便利な機能
第5回Webアプリケーションの開発(1)〜JSP作成〜
第6回Webアプリケーションの開発(2)〜サーブレットの作成〜
第7回データベースの利用
第8回フレームワークの利用
第9回O/Rマッパーの利用
第10回JUnitの利用
第11回Antの利用
第12回CVSの利用(1)
第13回CVSの利用(2)
Eclipse WTPによる標準開発ツールの提供
第1回Eclipse WTPの概要とインストール
第2回Eclipse WTPでHello World
第3回Eclipse WTPのDB系ツールを使う
第4回Eclipse WTPのエディタとその他のツール

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored