EclipseSDKの ヘルプ >> Eclipseについて などを見ると、Eclipseのバージョンや名前、説明が表示されますね。さらにフィーチャーへのリンクのアイコンが並んでいて、その一つをクリックすると、そのフィーチャーのバージョンや名前、説明などが表示されます。
そこに書いてある情報を設定する方法を調べました。調べたというかEclipseのプラグインの中身を見てみただけですが。
Eclipseはこのような製品情報を設定するための拡張ポイントorg.eclipse.core.runtime.productsというのがあり、そこにいろいろなプロパティ値をセットすることで、情報を追加していきます。その拡張ポイントが定義されているプラグインは、さがしたところorg.eclipse.sdkプラグインにあるみたいです。そのプラグインには、
plugin.xml plugin.properties about.mappings about.html about.ini about.properties
などのファイルがあり、これらで値を設定しています。順に見ていきましょう。
org.eclipse.sdk にプロダクト拡張ポイントが定義されています。
<extension id="ide" point="org.eclipse.core.runtime.products"> <product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"> 省略 <property name="aboutImage" value="eclipse_lg.gif"/> <property name="aboutText" value="%productBlurb"/> </product> </extension>プロパティaboutImageはEclipseについてのダイアログに表示される左部の画像です。 プロパティaboutTextはダイアログに表示される製品情報の文字列を指定するプロパティです。%productBlurbとなってますが、これは外部のproperties形式のファイルから値を読み込むという意味です。で、%productBlurbはplugin.propertiesにありました。
productBlurb=Eclipse SDK\n\ \n\ Version: 3.1.1\n\ Build id: {0}\n\ \n\ (c) Copyright Eclipse contributors and others 2000, 2005. All rights reserved.\n\ Visit http://www.eclipse.org/platform\n\ \n\ This product includes software developed by the\n\ Apache Software Foundation http://www.apache.org/
ここまででプロダクト拡張ポイントのaboutTextプロパティは、productBlurbの右辺(?)の値がセットされることがわかりました。たしかに上の画面キャプチャと同じですね。{0}はプレースホルダになっていてabout.mappingsの
0=M20050929-0840
に置換されます。
「Eclipseについて」のダイアログについてはこれだけです。まあ、割と単純でした。つぎはそのダイアログに並んでいる小さなアイコンのうち、Eclipseのアイコンをクリックしたときに表示される、フィーチャーの情報を設定する方法です。
フィーチャーの設定は以下の通りです。
# Property "aboutText" contains blurb for "About" dialog (translated) aboutText=%blurb # Property "featureImage" contains path to feature image (32x32) featureImage=eclipse32.gifこれで、フィーチャーのaboutTextはblurbという変数であること、フィーチャーのアイコンを表示する(画像はeclipse32.gif)ということが設定されました。さてblurbの値はabout.propertiesにあります。
blurb=Eclipse Project SDK\n\ \n\ Version: {featureVersion}\n\ Build id: {0}\n\ \n\ (c) Copyright Eclipse contributors and others 2000, 2005. All rights reserved.\n\ Visit http://www.eclipse.org/eclipse{0}は先のabout.mappingsの値がセットされます。{featureVersion}はフィーチャのバージョンがセットされます。
さて、ここで疑問がでてきました。product拡張ポイントは、当たり前ですがプラグイン内のplugin.xmlで定義しています。で、featureはそのプラグインとは関係のない、別の場所に配置されています。そしてabout.iniなどはプラグイン側に置かれています。そのフィーチャーとプラグインはなんの関係もないのに「featureのダイアログ開いたら、プラグイン内のabout.iniから値をとってくる」てことをやってるように見えます。ナゾですね。どうやって関連付いているんだろう。。。
どうも、フィーチャーとのIDとプラグインのIDが関係があるっぽく、フィーチャーの説明を表示しようとしたときに、同じIDのプラグイン内を検索する、てことが行われてるっぽい。あってるかなあ。。
この記事は
現在のアクセス:9531