クラスを作成し、パースペクティブを作成
クラスを作成し、パースペクティブを作成
「概要」ページの「すべての拡張」から「org.eclipse.ui.perspectives」-「サンプル・パースペクティブ」を選択し、「拡張エレメント詳細」の「class」リンクをクリックして、 examples.hello2.perspectives.SamplePerspectiveFactoryクラスを作成します。
次にSamplePerspectiveFactoryクラスに以下のようにコードを記述します。
public class SamplePerspectiveFactory implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
// エディタエリアの取得
String editorArea = layout.getEditorArea();
// エディタエリアを非表示に設定
layout.setEditorAreaVisible(false);
// エディタの左側にブックマーク・ビューを生成
IFolderLayout left = layout.createFolder("left_folder",
IPageLayout.LEFT, (float) 0.2f, editorArea);
left.addView(IPageLayout.ID_BOOKMARKS);
// エディタの上側にプロパティ・ビューを生成
IFolderLayout top = layout.createFolder("top_folder",
IPageLayout.TOP, (float) 0.3f, editorArea);
top.addView(IPageLayout.ID_PROP_SHEET);
// エディタの中央にアウトライン・ビューを生成
IFolderLayout middle = layout.createFolder("middle_folder",
IPageLayout.TOP, (float) 0.4f, editorArea);
middle.addView(IPageLayout.ID_OUTLINE);
// エディタの下側に問題・ビューを生成
IFolderLayout bottom = layout.createFolder("bottom_folder",
IPageLayout.BOTTOM, (float) 0.3f, editorArea);
bottom.addView(IPageLayout.ID_PROBLEM_VIEW);
}
}
以上で独自のパースペクティブを作成することができました。ワークベンチ・ランタイムを起動し、「ウィンドウ」メニューから「パースペクティブを開く」-「その他」をクリックします。表示された「パースペクティブの選択」から「サンプル・パースペクティブ」を選択し、作成した「サンプル・パースペクティ ブ」を開いてみてください(図1)。
これまでに、独自のパースペクティブを作成する手順について説明しました。次に拡張ポイントとパースペクティブ・ファクトリ・クラスについて説明したいと思います。
拡張ポイント
拡張する拡張ポイントは"org.eclipse.ui.perspectives"で、extension要素の構造を図2にまとめました。
図2:"org.eclipse.ui.perspectives"のextension要素の構造
perspective要素のclass属性は、org.eclipse.ui.IPerspectiveFactoryインターフェースをインプリメントしたクラスであるパースペクティブ・ファクトリ・クラスを指定する必要があります。
パースペクティブ・ファクトリ・クラス
パースペクティブ・ファクトリ・クラスでは、パースペクティブの画面レイアウトを実装します。インプリメントできるインターフェースは、org.eclipse.ui.IPerspectiveFactoryインターフェースです(図3)。

図3:IPerspectiveFactoryインターフェース
パースペクティブの画面をレイアウトする方法は、「独自のパースペクティブの作成」で作成したSamplePerspectiveFactoryク ラスで記述したように、createInitialLayoutメソッドのパラメータorg.eclipse.ui.IPageLayoutインターフェースのcreateFolderメソッドを呼び出し、レイアウトの枠を表すorg.eclipse.ui.IFolderLayoutインターフェースを生成します。そしてIFolderLayoutインターフェースのaddViewメソッドでパースペクティブにビューを追加します。