Eclipseプラグイン開発Eclipseプラグイン開発Eclipseプラグイン開発は至難の業!?日々の苦悩から技術を蓄積するために綴る日記です。»2004.03.15プロジェクト・ネーチャーの定義方法Eclipse(Platform,JDTおよびPDEが導入されている環境)では,以下のプロジェクトを作成できる。Projectはそれぞれ固有の機能拡張がなされている。Projectに加えてプラグイン・マニフェストを自動的にチェックしてくれる(両方とも「ビルダー」と呼ぶ)。Nature)という機構を使用する。Builder(自動コンパイル機能など)をプロジェクトに付加することで,プロジェクトをJavaプロジェクトとしている。新規にプロジェクト・ネーチャーを定義するには,org.eclipse.core.resources.natures拡張ポイントを使用する。class="yoichiro.MyNature"/></runtime></extension>id属性に新規プロジェクト・ネーチャーを識別するための文字列を,name属性に新規プロジェクト・ネーチャーの名前を記述する。このプロジェクト・ネーチャーのIDは,例のごとく「プラグインID+ネーチャーID」であり,上記のプラグイン・マニフェストがyoichiro.myPluginというIDのプラグインであれば,プロジェクト・ネーチャーのIDは「yoichiro.myPlugin.myNature」となる。プロジェクト・ネーチャーの実体は,runtime要素のrun子要素のclass属性を使って指定する。プロジェクト・ネーチャーの実体は,IProjectNatureインタフェースの実装クラスである。この実装クラス内で,プロジェクトに特徴付けを行う(ビルダーの登録処理がほとんど)。projectから特徴付けを解除する(ビルダーの削除など)}}あるプロジェクトにこのプロジェクト・ネーチャーが登録されると,まずsetProjectメソッドに対象のプロジェクト(IProjectオブジェクト)が渡される(通常はフィールドに保持しておく)。その後configureメソッドが呼び出される。このconfigureメソッド内で,保持しておいたprojectオブジェクトに対して,ビルダーの登録などの特徴付けの処理を行う。プロジェクトからプロジェクト・ネーチャーが解除されたときは,deconfigureメソッドが呼び出される。deconfigureメソッドでは,configureメソッド内で対象プロジェクトに登録したビルダーの登録解除など,特徴付けを解除する処理を行う。このように,プロジェクト・ネーチャーは,あるプロジェクトに対するライフサイクル(プロジェクト活性化の際はconfigureメソッドが呼ばれ,非活性化の際はdeconfigureメソッドが呼ばれる)を担当するということができる。ここで,大きな疑問が浮かび上がる。「プロジェクト・ネーチャーをプロジェクトに関連付けるにはどうするの?いつやるの?」とお思いのことだろう。この話は後のお楽しみ,として今回はこれまで。プロジェクト・ネーチャーの適用方法。