検索
連載

Eclipseプラグインにウィザードを実装するには作って覚えるEclipseプラグイン(5)(1/2 ページ)

Share
Tweet
LINE
Hatena

 Eclipseを使っていて日常的に利用する機能の1つにウィザードがあります。ウィザードとはプロジェクトやファイルを作成する際に使用するダイアログのことで、必要な情報を順に入力していくことでプロジェクトやクラスのひな型を生成することができます。ウィザードの中でもJavaプロジェクトやJava クラスを作成するためのウィザードは普段皆さんもよく利用されていることと思います。前回前々回でXMLエディタを作成しましたので、今回はXMLファイルを作成するためのウィザードを実装してみようと思います。

ウィザードの基本構造

 実装に取り掛かる前にウィザードの基本構造について軽く触れておきましょう。ウィザードは複数のウィザードページから成り、ウィザードダイアログ下部の[次へ][前へ]をクリックすることで前のページや次のページへ遷移することができます(簡単なウィザードの場合はページが1つしかない場合もあります)。また、[終了]をクリックすると入力された情報を基にファイルやプロジェクトの作成を行います。

 こういったウィザードをゼロから実装しようとすると、ページ間での遷移(ウィザードでの入力内容に応じて遷移するページが変わる場合など)や、どのページで[終了]ボタンをクリックすることができるのか、など考えなければいけないことが多々あります。JFaceにはウィザードの実装を支援するフレームワークが用意されており、これを利用することで面倒な部分をフレームワーク側に任せることができ、ウィザードページの実装に集中することができます。

図1 ウィザードの動き
図1 ウィザードの動き

XMLファイルを作成するウィザードの実装

 まずは第1ステップということで、ウィザードページを1つだけ持ち、ファイル名を入力すると以下のようなXML宣言を含むXMLファイルを作成するウィザードを作成してみます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 いつもどおりプラグインプロジェクトを作成し、マニフェストエディタの[依存関係]タブで以下のプラグインを追加します。

  • org.eclipse.core.resources
  • org.eclipse.ui.ide

 追加後の様子は以下のようになります。

図2 依存関係を追加したところ (クリックすると拡大)
図2 依存関係を追加したところ (クリックすると拡大)

 次に[拡張]タブでウィザードの宣言を追加します。使用する拡張ポイントはorg.eclipse.ui.newWizardsです。拡張ポイントを追加後、さらに右クリックから[新規]→[wizard]を選び、ウィザードの情報を以下のように入力します。

図3 ウィザードを追加したところ (クリックすると拡大)
図3 ウィザードを追加したところ (クリックすると拡大)

 このときのplugin.xmlは以下のようになります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 wizard タグのclass属性で指定しているクラスがウィザードの実装クラスになります。マニフェストエディタでclassの部分のリンクをクリックすると、クラスのひな型を作成することができますので、以下のように実装します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 (1)のXMLNewWizardPageが実際にファイル名の入力を行うウィザードページになります。ウィザードページは(2)のaddPages()メソッド内で初期化され、addPage()メソッドでウィザードに追加されています。もしウィザードが複数のページを持つのであれば同じようにインスタンスを生成してaddPage()で追加してやればOKです。

 (3)ではウィザードで[終了]ボタンがクリックされたときの処理を実装しています。XMLファイルの作成処理そのものはウィザードページ内に実装するので、ここでは単にcreateNewFile()メソッドを呼び出し、作成が成功したらエディタで開くという処理を行っています。

 次にウィザードページを実装します。Eclipseでは標準で汎用的なウィザードページがいくつか用意されており、簡単なものであればそれらを拡張して利用することが可能です。ここではファイルの作成に利用できる.org.eclipse.ui.dialogs.WizardNewFileCreationPage.というウィザードページを継承して作成してみることにします。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 通常、ウィザードページではcreateControl()メソッドをオーバーライドしてユーザー・インターフェイスを作成するのですが、ここではスーパークラスである WizardNewFileCreationPage で実装されているためオーバーライドする必要はありません。(1)のgetInitialContents()メソッドでファイルの内容を作成し、(2)のvalidatePage()メソッドでは入力されたファイル名の拡張子をチェックする処理を行っています。なお、このほかにもすぐに利用可能なウィザードページの実装として表1のようなものが用意されています(JDTによって提供されているものも含みます)。また、このほかにもプロジェクトのインポート/エクスポートを行うものなどさまざまなウィザードページが用意されていますので、必要に応じて利用を検討してください。

クラス名 用途
org.eclipse.ui.dialogs.WizardNewFileCreationPage ファイルを作成
org.eclipse.ui.dialogWizardNewFolderMainPages フォルダを作成
org.eclipse.ui.dialogs.WizardNewProjectCreationPage プロジェクトを作成
org.eclipse.jdt.ui.wizards.NewJavaProjectWizardPage Javaプロジェクトを作成
org.eclipse.jdt.ui.wizards.NewPackageWizardPage Javaパッケージを作成
org.eclipse.jdt.ui.wizards.NewClassWizardPage Java クラスを作成
org.eclipse.jdt.ui.wizards.NewInterfaceWizardPage Javaインターフェイスを作成
org.eclipse.jdt.ui.wizards.NewAnnotationWizardPage Javaアノテーションを作成
org.eclipse.jdt.ui.wizards.NewEnumWizardPage Java列挙型を作成
表1 再利用可能なウィザードページ

 では作成したXMLファイル作成ウィザードの動作を確認してみましょう。ランタイムワークベンチを起動後、適当なプロジェクトを作成したうえで[ファイル]→[新規]→[その他]からウィザードの一覧を表示し、[その他]→[XML ファイル]を選択してください。以下のようなウィザードが起動するはずです。

図4 作成したXMLウィザード
図4 作成したXMLウィザード
       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る