作成日:2008/12/14
Mac OS X 10.5.4 Eclipse SDK 3.3.2 Pleiades 1.2.3p10


Eclipse プロジェクトの新規作成  掲載記事一覧
1 新規プロジェクト作成ウィザードの作成 Eclipseへの新規プロジェクト追加方法と、対応する新規プロジェクト作成ウィザードの実装方法
2 新規プロジェクトをカテゴリ分けする 新規プロジェクトをカテゴリ分けして追加する方法
3 新規プロジェクトファイル作成 新規プロジェクト作成ウィザードの内容に従い、実際にプロジェクトファイルを生成する方法
4 プロジェクトの特徴付け(Natureの付与)を行う ネーチャーでプロジェクトを区別できるようにする方法
5 プロジェクトに任意のアイコンを重ねて表示 ラベル装飾を利用してプロジェクトに任意のアイコンを重ねる方法

1.プロジェクトの特徴づけについて

プラグインを開発するなどして新しくプロジェクトを追加した場合、このプロジェクトだからこそこんなことができるといった、そのプロジェクト特有の機能を持つと思います。 Eclipse では、ネーチャー (Nature) を定義しプロジェクトに関連付けることで、プロジェクトの特徴付けを行うことができます。こうしておくことで後々、ネーチャーによるプロジェクト特有の実装を行えるようになります。

ここでは、新規プロジェクト作成ウィザードを用いて新たなプロジェクトを作成するタイミングでネーチャーの付与を行う手順を紹介します。 手順作成にあたって、 Mac OS X 10.5.4 上にインストールした Eclipse 3.3.2 を使用しています。 Eclipse は Pleiades 1.2.3p10 をつかって日本語化しています。環境が異なると表示や手順が異なってくる場合もありますのでご注意ください。

2.ネーチャー(Nature)の定義

Nature 定義にあたり、依存関係に org.eclipse.core.resources を追加しておく必要があります。まだ追加していない場合は META-INF/MANIFEST.MF ファイルを開き、 「依存関係」タブ の "必須プラグイン" から 「追加...」ボタン を押して追加しておきます。

2-1.拡張の追加

拡張の登録まず、META-INF/MANIFEST.MFを開き「拡張」タブを選択します。 "すべての拡張" にある 「追加...」ボタン を押します。 新規拡張を追加するダイアログが表示されるので、一覧から "org.eclipse.core.resources.natures" を選択して 「完了」ボタン を押します。

選択した "org.eclipse.core.resources.nature" が追加され、その配下に "(runtime)" が、さらにその下に "[自動で付けられたクラス名](run)" という構成が作成されます。

2-2.ネーチャー情報の入力

依存関係の追加"org.eclipse.core.resources.nature" を選択して "拡張の詳細" でネーチャーの情報を入力します。

ID」  にはプラグイン内でネーチャーを一意に特定できる ID を入力します。今回は "SampleNature"としました。 「名前」 にはネーチャーの名前を入力します。今回は"サンプル・ネーチャー"としました。

3.ネーチャー・クラスの作成

3-1.拡張の追加

クラス作成準備ネーチャー階層の一番下にある "『自動で付けられたクラス名』(run)"を選択します。 "拡張要素詳細" の class 欄にはデフォルトでクラス名が入力されています。クラス名を空欄にした後に "class*:"ラベル をクリックします。

デフォルトのクラス名のままでいい場合は、空欄にする必要はありません。

3-2.ネーチャー・クラス作成

依存関係の追加"class"ラベル をクリックすると、新規Javaクラスを作成するウィザードが表示されます。

インターフェースに "org.eclipse.core.resources.IProjectNature" が選択された状態になっているので、 パッケージ名と名前(クラス名)を入力します。 今回は、パッケージは "newprojectcompletesample.nature" に、名前は "SNature" としました。 「完了」ボタン を押せば指定したパッケージにネーチャークラスが作成されます。

作成されたネーチャークラスは、空のメソッドをもつだけのクラスですが、 今回はプロジェクトの特徴づけが目的でプロジェクト特有の機能を実装しようとしているわけではないので空のままにしておきました。

4.ネーチャーをプロジェクトに関連付ける

ネーチャーをプロジェクトに関連づけるにあたり、登録したいネーチャーのパスを調べておく必要があります。ネーチャーのパス(完全なID)は、ネーチャーを登録してあるプラグインのIDと作成したネーチャーのIDをドットでつないだものになります。 今回は プラグインID が "NewProjectCompleteSample" だったので、 "NewProjectCompleteSample.SampleNature" となります。

4-1.手順の前提

ここでは、ネーチャーが1つも割り当てられていないケースで説明します。 ネーチャーの設定は、プロジェクトに関連づけられる全ての ネーチャーID の配列を用意して設定する必要があるため、 既にネーチャーが登録されている場合はそれも含めた配列を作成しなければなりません。

また、これまでの手順(掲載記事 1~3 の手順)に従い、 新規プロジェクト作成ウィザードで、IProjectDescriptionを使用したプロジェクトファイルの作成までは完成しているとします。 この実装が SampleWizardクラスの performFinishメソッド に書かれている前提で話を進めます。 参考:SampleWizard.jara

4-2.プロジェクトへのネーチャー登録方法

以下を newProjectDescription(name) の次の行に記述します。 description 変数はプロジェクト作成の際に使用する IProjectDescription 型で受け取ったオブジェクトです。

// Natureを登録
String[] natureIds = new String[]{"NewProjectCompleteSample.SampleNature"};
description.setNatureIds(natureIds);

これでネーチャーの登録は完了です。

5.確認

プロジェクトに登録したネーチャーIDの文字列を間違えてもエラーになることはないので、MANIFEST.MFで定義したネーチャーが正しく登録できたか確認したい場合は、 ネーチャーを登録したあとで次のコードを書けば確認できます。 テスト実行した方ではなく、開発している Eclipse側 のコンソール上に null とでなければ プロジェクトに関連づけたネーチャーからネーチャークラスが取得できた(正しく登録できた)ことになります。

// 念のためネーチャーをチェック
System.out.println(project.getNature("NewProjectCompleteSample.SampleNature"));

以上でプロジェクトの特徴付けは完了です。
今回実装を加えた新規プロジェクト作成ウィザードクラスを添付しておきます。  SampleWizard.java 

参考文献