ウィザードにページを追加する

今までの LG3DProjectWizard クラスは中身が何にもないので、そこにつけ加えていきたいと思います。で、Tomcat Plug-in の Wizard のクラスを見ると... あれっ、親クラスが違う。

そうなのです、TomcatProjectCreationWizard クラスの親クラスは NewElementWizard クラス。「どこにそんなクラスあるんだ?」と Javadoc を探したのですがありません。ふと、TomcatProjectCreationWizard クラスの import 文を見たら

import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;

internal?? そんなクラス使わないでよ ^^;;

しかたないので、他に使えそうなクラスを探していたら NewJavaProjectWizardPage というクラスを見つけました。

「これだ!」ということで、組み込んでみようと思ったらコンストラクタの引数が全然分かりません。IWorkspaceRoot インタフェースと WizardNewProjectCreationPage クラス。IWorkspaceRoot インタフェースが分からないというか、どうやって IWorkspaceRoot オブジェクトを取得すればいいかよく分かりません。

で、もう一度ドキュメントに戻って、今度は NewJavaProjectWizardPage をキーワードにして検索してみました。そうしたら、NewJavaProjectWizardPage クラスは使わずに JavaCapabilityConfigurationPage クラスを仕えと書いてあるではないですか。それならそうと早くいってくれればいいのに。

ようやく、ページを追加できそうです。LG3DProjectWizard クラスの init メソッドに addPage で JavaCapabilityConfigurationPage オブジェクトを追加してみました。

    public void init(IWorkbench workbench, IStructuredSelection selection) {
        JavaCapabilityConfigurationPage javaPage = new JavaCapabilityConfigurationPage();
        addPage(javaPage);
    }

これで実行だ!

[New] -> [Project...] で Java の中の Project Looking Glass Project を選択して [Next>] をクリックすると...

LG3D Wizard Page

えぇっ、いきなりそこに飛ぶかぁ!