Eclipseプラグイン実践テクニック(3)
Eclipseのパースペクティブをカスタマイズしてみよう!
NTTデータ先端技術 竹添直樹
NTTデータ 基盤システム事業本部 岡本隆史
2006/11/3
パースペクティブとは? |
本連載ではこれまでビューやエディタ、アクションなどさまざまな機能の拡張方法を解説してきました。Eclipseではこれらの拡張を特定の目的に応じてひとまとめにし、「パースペクティブ」として提供しています。例えばJava開発用のJavaパースペクティブはパッケージ・エクスプローラビューやアウトライン・ビューなど、Java開発で利用頻度の高いビューが配置され、ツールバーにはクラスやインターフェイスを作成するためのウィザードへのショートカットなどが表示されています。
あらゆる機能をプラグインとして拡張可能なEclipseのことですから、もちろん新たなパースペクティブをプラグインとして追加することもできますし、既存のパースペクティブを拡張することも可能です。今回はこのパースペクティブについて詳しく解説していきたいと思います。
独自のパースペクティブを作成するには? |
新たなパースペクティブを追加するには、org.eclipse.ui.perspectivesという拡張ポイントを使用します。plugin.xmlでの定義は以下のようになります。
リスト1 |
<extension |
perspective要素のclass属性で指定しているjp.sf.amateras.perspective.PerspectiveFactoryクラスによってパースペクティブが生成されます。このクラスはorg.eclipse.ui.IPerspectiveFactoryインターフェイスを実装する必要があります。最もシンプルなIPerspectiveFactoryの実装例を以下に示します。
リスト2 |
package jp.sf.amateras.perspective; |
IPerspectiveFactoryの実装クラスでは、createInitialLayout()メソッドの引数として渡されるIPageLayoutに対してレイアウト情報などを設定していくことで、パースペクティブを作成します。初期状態ではエディタ領域だけが存在する真っさらな状態ですので、addView()メソッドでエディタ領域に対する相対位置を指定してビューを追加しています。addView()メソッドは以下の引数を取ります。
表1 IPageLayout#addView()の引数 |
|||||||||||||||
|
このプラグインによって、以下のようなサンプル・パースペクティブが追加されます。
図1 サンプル・パースペクティブ |
IPageLayoutにはこのほかにもフォルダ(ビューをレイアウトするための領域)や高速ビュー、アクションセットを追加したり、ウィザードやパースペクティブなどのショートカットを追加するためのメソッドが用意されています。これらのメソッドを使用して、先ほどのサンプル・パースペクティブに少し手を加えてみましょう。
リスト3 |
public void createInitialLayout(IPageLayout layout) { |
この例ではJDTのビューやアクションセットなどをパースペクティブに追加しています。JDTのビューやアクションセットのIDは、JDTの提供するorg.eclipse.jdt.ui.JavaUIクラスに定数値として定義されています。そのため上記のソースコードを動作させるためには、org.eclipse.jdt.uiプラグインを依存関係に追加する必要があります。ビューやアクションセットのIDがあらかじめ分かっているのであれば文字列で直接指定しても構いません。この場合、依存関係の追加は不要です。
パースペクティブは以下のようになります。高速ビューやアクションセット、ウィザードのショートカット、パースペクティブのショートカットなどが追加されていることに注意してください。
図2 サンプル・パースペクティブ拡張版 |
1/2 |
INDEX |
||
第3回 Eclipseのパースペクティブをカスタマイズしてみよう! |
||
Page1 パースペクティブとは? 独自のパースペクティブを作成するには? |
||
Page2 既存のパースペクティブを拡張してみる パースペクティブカスタマイズのすすめ |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|