Eclipseプラグインを作ってみよう!

第5回 PDEのソースを読む

この記事を読むのに必要な時間:およそ 3.5 分

前回のコードのおさらい

無事PDEのプロジェクトをチェックアウトすることができましたが,どこから見ていけばよいのでしょうか?まず,PDEについて調べる前に前回のFormEditorクラスのaddPages()メソッドを見てみましょう。

addPages()メソッドの実装

protected void addPages() {
    FormPage page = new FormPage(this, null, null) {
        protected void createFormContent(IManagedForm managedForm) {
            managedForm.getForm().setText("Hello World!");
        }
    };
    
    try {
        addPage(page);
    } catch (PartInitException e) {
        e.printStackTrace();
    }
}

FormPageクラスのインスタンスを生成し,それをFormEditorクラスのaddPage()メソッドを使って追加しています。つまり,FormEditorクラスはFormPageクラスのみ管理しており,各ページの内容はFormPageクラスに任せていると言えます。この構造はEclipse Formsでエディターを実装する場合に共通するはずです。そこでFormEditorクラス,FormPageクラスを継承しているクラスを足掛かりに見ていくことにします。

FormEditorクラスを実装しているクラスの検索

それではPDEの中でFomrEditorクラスを継承しているクラスをEclipseのJava検索機能を使って検索してみましょう。⁠検索⁠⁠→⁠検索」をクリックし,⁠検索」ダイアログを表示します。次に「Java 検索」タブをクリックし,各項目を入力します。検索したいのは⁠FormEditorを継承しているクラス⁠ですので,⁠ストリングの検索」⁠FormEditor⁠と入力し,⁠制限」グループの「実装」を選択し,⁠検索]ボタンをクリックします。

FormEditorクラスを実装しているクラスを検索する

FormEditorクラスを実装しているクラスを検索する

検索の結果,PDEにはFomrEditorクラスを継承しているクラスがふたつあることがわかります。

FormEditorクラスを実装しているクラスがふたつ見つかりました

FormEditorクラスを実装しているクラスがふたつ見つかりました

アイコンの横に⁠A⁠が付いていることから,これらのクラスは抽象クラスだとわかります。それではこれらのクラスの型階層を見てみましょう。PDEFormEditorクラス,SharedHeaderFormEditorクラスをそれぞれ選択し,F4キーを押すと型階層が表示されます。SharedHeaderFormEditorクラスを継承しているクラスはありませんでしたが,PDEFormEditorクラスにはサブクラスが多数あることがわかります。さらに辿っていくと,ManifestEditorクラスを発見しました。設計時に参考にしていたのはまさにマニフェストエディターだったので,名前からこのクラスがマニフェストエディターの実装であることは一目瞭然です。

PDEFormEditorクラスのサブクラスにManifestEditorクラスを発見しました

PDEFormEditorクラスのサブクラスにManifestEditorクラスを発見しました

著者プロフィール

松藤秀治(まつふじひではる)

Piece Frameworkのプログラマー。担当はEclipseのプラグインとして開発されているPiece Frameworkの統合開発環境Piece_IDE。2007年5月に株式会社アイテマンを設立。