Baliウィザードの実装

JDeveloperの標準ウィザードは、Baliウィザード・フレームワークを使用して構成されています。実際には、ウィザードの拡張機能にこのフレームワークを使用する必要があります。このフレームワークにより、標準ボタンの動作などの詳細を処理し、ウィザードをJDeveloperのスタイルに準拠させることができます。

JDeveloperで使用されるBaliウィザードのページ・レイアウトでは、左側にイメージがあり、最下部に1列の標準ボタンがあります。ユーザーはボタンのいくつかと値を関連付ける必要がありますが、その処理はBaliウィザードにより指定されます。次のボタンがあります。

典型的なウィザードには、ユーザーがデータを入力するページが複数あります。これらのページは、ウィザードを使用するための導入的な役割を果たす「初期画面」ページまたは「サマリー」ページにまとめられています。ユーザーはページを順にアクセスし、「終了」をクリックすることによりウィザードの機能を実行して、ソース・ファイル・スケルトンの作成などを行います。

基本的なBaliウィザードには、次の3つの主要コンポーネントがあります。

拡張クラス

拡張クラスは、このクラスを「新規」ギャラリに表示し、必要時にはインスタンス化するoracle.ide.addin.Wizardoracle.bali.ewt.wizard.Wizardではありません)を実装します。(メイン・メニューから「ファイル」->「新規」を選択し、「新規」ギャラリを開きます。)ポップアップ・メニューまたはその他のメニューから起動するウィザードは、Addinも実装する必要があります。Wizardクラスには、次の主要メソッドが用意されています。

ウィザード・クラス

ウィザード・クラスはBaseWizardを拡張します。ウィザードのページを順にアクセスする場合は、サブクラスのoracle.bali.ewt.wizard.Wizardを使用するとより簡単です。このクラスの目的は、ウィザードのページの作成とアセンブルです。次の主要メソッドが用意されています。

ページ・クラス

ページ・クラスはWizardPageを拡張します。または、JDeveloperのスタイルに準拠するページの場合はImageWizardPageサブクラスを拡張します。準拠するページには、左側にイメージ、右側に対話領域、最下部に標準ボタンがあります。

ImageWizardPageコンストラクタは、次の引数を要求します。

ImageWizardPageには、次の主要メソッドが用意されています。

WelcomeWizardPageは、ウィザードを使用するための導入的な役割を果たす最初のページとして使用される、ImageWizardPageの拡張です。初期画面ページは、複数のページから構成される複雑なウィザードに適しています。初期画面ページには、導入的な説明と「次回にこのページを表示」というラベルの付いたチェックボックスが表示されます。初期画面ページを使用する場合、このページをスキップするかどうかを決定するため、Baliウィザード・クラスのコンストラクタでisShowNextTimeメソッドをコールする必要があります。

ページ検証リスナー

ページ・バリデータは、WizardValidateListenerを実装します。ユーザーが「次へ」または「終了」をクリックしたときに通知を受信するよう、検証リスナーがページ・クラスに登録されます。

デフォルトでは、「次へ」ボタンおよび「終了」ボタンは使用不可で、ユーザーがデータを入力するときには使用できないようになっています。ユーザーがボタンをクリックするとデータの検証が行われ、無効な場合はボタンのイベントは取り消されます。

検証リスナーは、データをテストするためにwizardValidatePageを実装する必要があります。 データが無効な場合、メソッドはイベントのcancelメソッドをコールして、イベントを中止します。また、リスナーはstaticメソッドJOptionPane showMessageDialogをコールして、ユーザーに説明を提供します。

パネル・クラス

パネル・クラスは、JPanelまたはComponentの他のサブクラスを拡張します。パネル・クラスは、ウィザードのユーザー・インタフェースを指定します。各ページにはパネルがあります。パネルの制御要素により、ユーザーからデータが収集され、ウィザードの状態クラスに格納されます。

各パネルは、ヘルプ・トピックと関連付けられており、パネルに関するドキュメントを取得するための「ヘルプ」ボタンを使用できます。パネルおよびヘルプ・トピック識別子を渡して、ヘルプ・システムのregisterTopicメソッドをコールします。ヘルプ・システムは、IdeクラスのstaticメソッドgetHelpSystemをコールすることにより取得されます。ヘルプ・トピックは、ドキュメントのファイル名に関連付けられた文字列です。ドキュメントJARファイルには、関連をリスト表示する .mapファイルが含まれます。

状態クラス

状態クラスは、ウィザードのパネルにより収集されるデータのリポジトリです。このクラスは、ユーザーが「終了」ボタンをクリックしたときにwizardFinishedメソッドがコールされるよう、WizardListenerを実装します。ウィザードの機能を実行するwizardFinishedメソッドを定義します。


「新規」ギャラリのウィザードの開発

oracle.ide.Ide
oracle.ide.addin.Addin
oracle.ide.addin.Wizard
oracle.bali.ewt.wizard.Wizard
javax.swing.JOptionPane
javax.swing.JPanel
java.awt.Component