ビューのツールバーとプルダウンメニュー
さて、ここまででファイルシステムの内容を表示するエクスプローラ・ビューが完成したわけですが、以降では、このビューに対してアクションを追加することで機能を拡張する方法を解説します。すべてのビューにはツールバーとプルダウンメニュー領域があり、ここにアクションを追加することができます。
例として、エクスプローラ・ビューの内容をリフレッシュするアクションを作成してみましょう。ExplorerViewをリスト5のように修正します。これで図7のようにツールバーとプルダウンメニューにアクションを組み込むことができます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ビューへのアクション・コントリビューション
拡張ポイントを利用してアクションを追加(コントリビュート)することも可能です。拡張ポイントを用いることで、既存のビューに対してアクションを追加することが可能になります。アクションをコントリビュート可能な拡張ポイントとして以下のようなものがあります。
拡張 | 場所 |
---|---|
org.eclipse.actionSets | ワークベンチのメニューバー、ツールバー |
org.eclipse.viewActions | ビューのプルダウンメニュー、ツールバー |
org.eclipse.editorActions | ワークベンチのメニューバー、ツールバー(エディタがアクティブな場合) |
org.eclipse.ui.popupMenus | エディタ、ビュー、ビューオブジェクトのコンテクストメニュー |
表1 アクションをコントリビュート可能な拡張ポイント |
このうちビューに関連するのはorg.eclipse.ui.viewActionsとorg.eclipse.ui.popupMenusになります。本節ではこれらの拡張ポイントを使ってビューを拡張する方法を解説します。ここではエクスプローラ・ビューで選択したファイルを削除するためにリスト6のようなアクションを作成しました。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ビューに追加するアクションはIViewActionDelegateインターフェイスを実装する必要があります。実際の処理はrun()メソッドで実装されており、削除確認のダイアログで[OK]が選択された場合に削除処理を実行するようになっています。
削除処理そのものは特筆すべき点はありませんが、削除されたファイルをビューに反映するため(1)でツリービューアのrefresh()メソッドを呼び出している点に注意してください。では、このアクションをエクスプローラ・ビューにコントリビュートしてみましょう。
org.eclipse.ui.viewActions
org.eclipse.ui.viewActionsはビューのプルダウンメニュー、ツールバーに対してアクションをコントリビュートするための拡張ポイントです。plugin.xmlはリスト7のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
(1)のtargetID属性でビューのidを指定します。[ファイルの削除]アクションはファイルまたはディレクトリが1つ以上選択された場合のみ有効になればよいので(2)のenablesFor属性に[+]を指定しています。ビューの表示イメージは図8のようになります。
org.eclipse.ui.popupMenus
org.eclipse.ui.popupMenusはエディタもしくはビューのポップアップメニューにアクションをコントリビュートするための拡張ポイントです。この拡張ポイントを利用するには、ビュー側から拡張可能なポップアップメニューを提供しておく必要があります。まず、ExplororViewをリスト8のように修正します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
これで拡張ポイントを利用してポップアップメニューにアクションを追加できるようになります。plugin.xmlはリスト9のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
(1)のtargetID属性では、基本的にビューのidを指定しますが、1つのビューが複数のポップアップメニューを持っている場合はそれぞれのポップアップメニューに別々のidが割り当てられている場合もあります。それ以外の点についてはorg.eclipse.ui.viewActionsの場合と同じです。表示イメージは図9のようになります。
このほかにもファイル、ディレクトリの作成や変更を行えるようにしたり、選択したファイルをEclipse上のエディタで開けるようにするといったアクションを追加することでより実用的なビューに発展させることができるでしょう。
以上、駆け足ではありますが、ビューの実装方法および拡張方法について解説しました。本稿で作成したサンプルはここからダウンロード可能です。展開したディレクトリをプロジェクトとしてEclipseにインポートし、ランタイム・ワークベンチを起動すれば動作を確認することができます(ランタイム・ワークベンチの起動方法については第1回「いちばん簡単なEclipseプラグイン」を参照してください)。
次回はプラグイン開発のトピックの中でも1、2を争う大物であるエディタの基本について解説する予定です。
Copyright © ITmedia, Inc. All Rights Reserved.