Eclipseプラグイン実践テクニック(3)

Eclipseのパースペクティブをカスタマイズしてみよう!



NTTデータ先端技術 竹添直樹
NTTデータ 基盤システム事業本部 岡本隆史
2006/11/3


既存のパースペクティブを拡張してみる

 前述のとおり、新しいパースペクティブを作るだけでなく、既存のパースペクティブを拡張することも可能です。既存のパースペクティブを拡張するには、org.eclipse.ui.perspectiveExtensionsという拡張ポイントを使用します。plugin.xmlは次のようになります。

リスト4
<extension point="org.eclipse.ui.perspectiveExtensions">
    <perspectiveExtension
        targetID="jp.sf.amateras.perspective.perspective1">

中略

    </perspectiveExtension>
</extension>

 perspectiveExtension要素のtargetID属性に拡張対象のパースペクティブIDを指定します。perspectiveExtension要素の配下には以下の要素を記述できます。パースペクティブを作成する際にIPageLayoutに対して行うことができる操作にはいろいろありましたが、拡張ポイント経由でもその操作が一部行えるようになっています。

表2 perspectiveExtensionの子要素
要素名 説明
actionSet アクションセットを追加します
viewShortcut ビューのショートカットを追加します
perspectiveShortcut パースペクティブのショートカットを追加します
newWizardShortcut ウィザードのショートカットを追加します
view ビューを追加します
showInPart 「ナビゲート」メニューの「表示」に追加するビューを指定します

 アクションセットや各種ショートカットを追加する場合は、それぞれの要素のid属性にアクションセットやビュー、パースペクティブ、ウィザードのIDを指定します。view要素は指定可能な属性が多いため、以下に属性の詳細を示します。

表3 view要素の属性
属性名 説明
id(必須)

追加するビューのIDを指定します

relationship
(必須)

top、left、right、bottom、stack、fastのいずれかを指定します

  • top、left、right、bottom: relative属性で指定したビューの相対位置
  • stack: relative属性で指定したビューに重ねて表示
  • fast: 高速ビュー
relative relationship属性でfast以外を指定した場合、相対位置の基準とするビューのIDを指定します。fastを指定した場合は、設定する必要はありません
ratio relationship属性でtop、left、right、bottomのいずれかを指定した場合は、追加するビューに何パーセントの領域を割り当てるかを0.05〜0.95の間で指定します。stackまたはfastを指定した場合は設定する必要はありません
visible パースペクティブを開いた際にビューを表示するかどうかをtrueまたはfalseで指定します。falseを指定した場合、ビューは表示されませんが、「ウィンドウ」→「ビューの表示」で開いた際に指定した位置に表示されます。省略した場合はtrueを指定したと見なされます
closable ビューを閉じるためのボタンを表示するかどうかをtrueまたはfalseで指定します。省略した場合はtrue(閉じるボタンを表示する)を指定したと見なされます
movable ビューが移動可能かどうかをtrueまたはfalseで指定します。省略した場合はtrue(移動可能)を指定したと見なされます
standalone ビューがスタンドアロンかどうかをtrueまたはfalseで指定します。trueを指定した場合、ほかのビューとスタックさせることはできません。relationship属性でfastまたはstackが指定された場合、この属性は無視されます。省略した場合はfalseと見なされます
showTitle ビューのタイトルを表示するかどうかをtrueまたはfalseで指定します。standalone属性でtrueを指定した場合のみ有効です。省略した場合は、true(タイトルを表示する)を指定したと見なされます

 それではこの拡張ポイントを使用して、前節で作成したサンプル・パースペクティブを拡張してみましょう。plugin.xmlは次のようになります。

リスト5
<extension point="org.eclipse.ui.perspectiveExtensions">
    <perspectiveExtension
        targetID="jp.sf.amateras.perspective.perspective1">
        <viewShortcut id="org.eclipse.jdt.ui.PackageExplorer"/>
        <viewShortcut id="org.eclipse.jdt.ui.TypeHierarchy"/>
        <view
            id="org.eclipse.jdt.ui.TypeHierarchy"
            relationship="stack"
            relative="org.eclipse.jdt.ui.PackageExplorer" />
    </perspectiveExtension>
</extension>

 ビューのショートカットを2つと、ビューを1つ追加しています。この定義については特に難しいところはないでしょう。

 パースペクティブの表示は次のようになります。ビューのショートカットが追加され、階層ビューがパッケージ・エクスプローラビューにスタックされています。

図3 org.eclipse.ui.perspectiveExtensionsで拡張したサンプル・パースペクティブ

パースペクティブカスタマイズのすすめ

 本稿で作成したサンプルコードはここからダウンロードできます。パースペクティブは通常のEclipseプラグイン開発だけでなく、EclipseRCPを利用したリッチクライアント・アプリケーションでも必須となる知識です。Eclipseでは個々のビューやエディタだけでなく、パースペクティブによっても使い勝手が大きく左右されますので、用途に応じて最適なパースペクティブを提供したいものです。

 次回はJDTのインクリメンタル・ビルドなどでも使用されているビルダ機能の利用方法について解説したいと思います。お楽しみに!

2/2

 INDEX

第3回 Eclipseのパースペクティブをカスタマイズしてみよう!

  Page1
パースペクティブとは?
独自のパースペクティブを作成するには?
Page2
既存のパースペクティブを拡張してみる
パースペクティブカスタマイズのすすめ


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間