JavaCapabilityConfigurationPageの利用
http://d.hatena.ne.jp/skrb/20050904/p1
利用例
JavaCapabilityConfigurationPageの利用例といえば、Javaプロジェクトの作成ウィザード。クラスで言うと、こんなのみたいです。
- org.eclipse.jdt.internal.ui.wizards.JavaProjectWizard (ウィザード)
- org.eclipse.jdt.internal.ui.wizards.JavaProjectWizardFirstPage (ページ1)
- org.eclipse.jdt.internal.ui.wizards.JavaProjectWizardSecondPage (ページ2)
JavaProjectWizardSecondPageがJavaCapabilityConfigurationPageをextendsしたページになってる模様。
init()
2ページ目が表示されたときにinit()が呼ばれるよになってるようです。
JavaProjectWizardSecondPage#setVisible()→changeToNewProject()→updateProject()→init()
init()には「少なくともIJavaProject」を渡してやる必要があるようです。
IJavaProjectは1ページ目で入力されたプロジェクト名から作成しているようです。
IJavaProjectは
JavaCore.create(project)
で取得しますが、引数にIProjectが必要で、IProjectはワークスペースのAPIを操作して作ります。
ResourcesPlugin.getWorkspace().getRoot().getProject(name)
configureJavaProject()
configureJavaProject()は、ウィザードをFinishしたときに呼ばれるようです。
これを呼ぶ前に先にIProject自体はcreate()しておく必要があるようです(上のgetProject()では、ハンドルは取得しているが、物理的なファイルはまだ作ってない)。
サンプル
Eclipse SDKのソース追うのも複雑怪奇で辛いなぁ。。。、
ちょっと、JavaCapabilityConfigurationPage利用のサンプル作ってみました。
http://miya.ws/misc/pluginsample/test2_1.0.0.jar
でも、これで正しいものかどうか不明。JavaProjectWizardFirstPage、JavaProjectWizardSecondPage とか使えれば、そのまま使いたい気もする。internalだけど。