プロジェクトの説明文をつける

これでできたとよろこんでいたのですが、ちょっとしたことに気がついてしまいました。

普通のプロジェクトを作るダイアログはこうなります。

description

ところが、LG3D のプロジェクトはこうなります。

description

なにが違うかわかりますか?

そうです。ダイアログのタイトルの下に説明文が入るのですが、LG3D のプロジェクトは真っ白 ^^;;

でも、Wizard クラスの Javadoc を見ても、それに相当するようなメソッドは見あたりません。どこでこの文字列を設定するんだろう?

Tomcat Plug-in の場合、ここには「WAR 構造を持った Java プロジェクトを作成する」と表示されます。そこで、この文字列を grep してみました。しかし、何も引っかかりません。いちおう、文字コードをいろいろ変えてやってみたのですが、それでも引っかかりません。

それじゃ、この文字列はどこで???

そうか、プロパティだ! 日本語はプロパティでは \u で表記されるので、そのままみても分けわからん状態なのです。\u 形式なので grep でも引っかからなかったわけですね。ということで、リソースバンドルで読みこまれるプロパティファイルを調べて、そこからキーを探して (wizard.newJavaProject.description でした)、それがソースのどこに使われているかを調べてみました。

そうしたら、なんと plugin.xml に記述されていました。

つまり、Tomcat Plug-in の MANIFEST エディタの [Extensions] タブで Wizard の下によく分からない description というのがくっついているのです。これはプロパティを記述できるでもなく、何のためにあるのかよく分からなかったのです。

Description Property

で、plugin.xml の wizard の部分を見てみると、

   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            name="%wizard.newTomcatProject.label"
            icon="icons/newwar_wiz.gif"
            category="org.eclipse.jdt.ui.java"
            class="com.sysdeo.eclipse.tomcat.TomcatProjectCreationWizard"
            project="true"
            finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
            id="com.sysdeo.eclipse.tomcat.TomcatProjectCreationWizard">
         <description>
            %wizard.newJavaProject.description
         </description>
      </wizard>
   </extension>

ここにおめあての wizard.newJavaProject.description があるのでした。

LG3D には description はまだつけていません。なので、plugin.xml も

   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            category="org.eclipse.jdt.ui.java"
            class="jp.gr.java_conf.skrb.lg3d.wrpe.wizard.LG3DProjectWizard"
            finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
            id="jp.gr.java_conf.skrb.lg3d.wrpe.ProjectWizard"
            name="Project Looking Glass Project"
            project="true">
      </wizard>
   </extension>

となっており、 などは影も形もありません (当たり前ですね)。

とりあえず、wizard を選択して右クリックで表示されるポップアップメニューから description を選択しました。すると、plugin.xml は次のようになりました。

   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            category="org.eclipse.jdt.ui.java"
            class="jp.gr.java_conf.skrb.lg3d.wrpe.wizard.LG3DProjectWizard"
            finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
            id="jp.gr.java_conf.skrb.lg3d.wrpe.ProjectWizard"
            name="Project Looking Glass Project"
            project="true">
         <description/>
      </wizard>
   </extension>

タグはできたものの、中身はなんにもありません。で、直接 plugin.xml を編集しました。こんなことは、MANIFEST エディタで書けるようにしてもらいたいなぁ。

   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            category="org.eclipse.jdt.ui.java"
            class="jp.gr.java_conf.skrb.lg3d.wrpe.wizard.LG3DProjectWizard"
            finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
            id="jp.gr.java_conf.skrb.lg3d.wrpe.ProjectWizard"
            name="Project Looking Glass Project"
            project="true">
         <description>Create LG3D Project</description>
      </wizard>
   </extension>

これで実行すると、ちゃんと説明が表示されるようになりました ;-)

description

しかし、これだけのことに何時間もかけてしまった私はなに?