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


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

プロジェクトに表示されるアイコン  について

Eclipse のパッケージ・エクスプローラ上では、プロジェクトはフォルダのアイコンで表示されます。通常のプロジェクトは  のようなアイコン表示となりますが、Javaプロジェクトの場合は、右上に "J" マークが添えられ  と表示されます。他にも PHPプロジェクト の場合は "P" マークが添えられるなどと、プロジェクトの用途によって様々なアイコン表示があります。

これは Eclipse のラベル装飾(デコレータ)という機能を利用して実現されています。デコレータを使用することで、もともとのアイコンに任意の画像を重ねて表示させることができます。

やはり、自分で作成するプロジェクトにも独自のアイコンを表示したいものです。ここではデコレータの機能を使用して、今後作るであろう profaimプロジェクト用のアイコン  を表示させる手順を紹介します。掲載記事1~4の手順で新規プロジェクトに "NewProjectCompleteSample.SampleNature" という名前のネーチャーが設定済みである前提で説明していきます。

また、手順作成にあたっては Mac OS X 10.5.4 上にインストールした Eclipse 3.3.2 を使用しています。 Eclipse は Pleiades 1.2.3p10 をつかって日本語化しています。環境が異なると表示や手順が異なってくる場合もありますのでご注意ください。

1.ラベル装飾用の画像を用意する

1-1.用意した画像と画像のサイズ

拡張の追加今回は PNGフォーマット の画像を用意しました。 サイズは 8×8(pixel) で 透過部分を持つファイルです。

なぜ 8×8 (pixel) で作成したかというと、 パッケージ・エクスプローラに表示されているフォルダのアイコンは16×16 (pixel) となっています。 これにデコレータの機能により 任意の画像を 右上、左上、右下、左下と4ヶ所へ重ねることができます。そのため、異なる画像を異なる位置へ重ねた際にラベル同士が重ならないように画像サイズを縦横それぞれ半分にしたというわけです。

2.デコレータの定義

冒頭にも書きましたが、ここでは 掲載記事1~4の手順に従い 新規プロジェクトに "NewProjectCompleteSample.SampleNature" という名前のネーチャーが設定済みである前提で説明していきます。

まずは、META-INFフォルダの MANIFEST.MF ファイルを開き、以下の設定を行っていきます。

2-1.デコレータ拡張ポイントの追加

デコレータ拡張ポイントMANIFEST.MF ファイルの 「拡張」タブ を選択します。 表示されるページにある "すべての拡張" から 「追加...」ボタン を押します。

続けて、新規に拡張ポイントを選択するダイアログが表示されるので、 "org.eclipse.ui.decorators" を選択して 「完了」ボタンを押します。

2-2.Decorator 設定

ラベル装飾設定デコレータ拡張ポイントを追加すると、すべての拡張の欄に "org.eclipse.ui.decorators" が追加され、その下に "label(decorator)" という要素が作成されます。 この "label(decorator)" を選択して"拡張要素詳細"の設定をします。

id には、デコレータを一意に識別できる値を入力します。
今回は "NewProjectCompleteSample.projectDecorator" としました。

label には、デコレータの名前となる任意の値を入力します。
今回は "Sample Project Decorator" としました。

クラス(class) 、 objectClass、 adaptable は空欄のまま、 adaptable、 lightweight も未選択にしておきます。 クラスを空欄とした場合、 lightweight は true に設定したのと同じ扱いになります。

状態(state) には、 true を設定します。
true とすることで、 デフォルトでこのラベル装飾が適用されます。 false にした場合は環境設定でONと設定しないとラベル装飾が適用されません。

icon には、用意しておいた重ね合わせる画像を指定します。この設定は lightweight かつ、 クラス(class) が未設定 の場合に有効な設定です。
今回はプロジェクトの直下に "profaim-sample.png" という名前で画像を配置しておいたので、 "profaim-sample.png" となりました。 

ロケーションには、 ラベル装飾を適用する位置を指定します。これはlightweightデコレーターでのみ有効な設定です。
今回は "TOP_RIGHT" を指定しました。これにより画像は右上に重ねて表示されます。 Javaプロジェクトなど他のプロジェクトも右上に装飾を行っていたので合わせてみました。

2-3.Description 設定

概要設定ここまでで "label(decorator)" だった表示は "Sample Project Decorator(decorator)" となっています。これを右クリック(Control+クリック)して、 「新規」 から 「description」 を選択します。

"(description)" という要素が追加されるので、"拡張要素詳細"のテキスト欄に、 このデコレーターの簡単な説明を記述します。 ただの説明で任意の項目ですが、デコレーター設定のページに表示されるので入力しておきましょう。今回は、「サンプルプロジェクトを表すデコレーターです。」としました。

2-4.enablement 設定

次に、このデコレータを有効とする条件を設定します。まず、 "Sample Project Decorator(decorator)" を右クリックして、「新規」 から 「enablement」 を選択すると "(enablement)" という要素が追加されます。

今回は 「プロジェクトフォルダ」 かつ 「"NewProjectCompleteSample.SampleNature"が適用されているもの」 という2つの条件に一致するものにラベル装飾を適用したいので、右クリックして"新規"から"および"(and)を選択します。

2-4-1.プロジェクトフォルダを対象とする

オブジェクトクラス設定追加された "(and)"要素 を右クリックして、 「新規」 から 「objectClass」 を選択します。(and)の子要素に "オブジェクトクラス名(objectClass)" が追加されます。

これを選択して、 "拡張要素詳細" にラベル装飾の対象としたいオブジェクトのクラス名を指定します。今回はプロジェクトに対して装飾を施したいので "org.eclipse.core.resources.IProject" としました。

2-4-2.ネーチャーを対象とする

オブジェクトステート設定再度 "(and)"要素 を右クリックして、 「新規」 から 「objectState」 を選択します。子要素に "objectState名(objectState)" が追加されます。

これを選択して、"拡張要素詳細"の "name" には "projectNature" を、 "value" には ネーチャーIDである "NewProjectCompleteSample.SampleNature" と設定しました。

"name" には IResourceActionFilter で定義されている value値 が指定できます。

3.テスト実行

3-1.デコレータの適用を確認

ラベル装飾掲載記事1~4 の手順で事前準備した前提ですが、パッケージ・エクスプローラ上で右クリックして、 「新規」 から 「プロジェクト...」 と選択するとプロジェクト一覧の中に "profaim.jp" というカテゴリがあり、その下に "サンプル・プロジェクト" というプロジェクトがあります。

これを選択すると "NewProjectCompleteSample.SampleNature" が適用されたプロジェクトを作成することができます。

図はプロジェクト名を "Sample" として作成したものです。 アイコンにデコレータが適用されていることが確認できます。

以上で、プロジェクト・フォルダへの任意の画像を重ねる(デコレータの適用)は完了です。

参考文献