カスタム・ワークベンチの振る舞いを提供する「エントリー・ポイント」は、 ワークベンチを構成する WorkbenchAdvisor の指定です。 リッチ・クライアント・プラグインは、この抽象クラスを拡張して、ワークベンチのアプリケーション固有の構成を提供する必要があります。ブラウザー・サンプルでは、BrowserAdvisor クラスが使用されています。
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
ワークベンチ・アドバイザーは、メソッドをオーバーライドして、アクション・バー項目や概要ページなど、必要なレイアウトおよびフィーチャーを持つワークベンチを構成する必要があります。
ワークベンチ・アドバイザーが提供するライフ・サイクル・メソッドを使用すると、アプリケーションは、いつでもワークベンチの作成を開始して、振る舞いに影響を与えることができます。 以下のオーバーライド可能なアドバイザー・ライフ・サイクル・メソッドのリストは、WorkbenchAdvisor の Javadoc に基づいています。
initialize
: 最初に呼び出されます。その後、ウィンドウが呼び出されます。何かを登録する場合に使用します。preStartup
: 2 番目に呼び出されます。初期化の後、最初のウィンドウが開く前に呼び出されます。始動または復元時に何かを一時的に使用不可にする場合に使用します。
postStartup
: 3 番目に呼び出されます。最初のウィンドウが開いた後に呼び出されます。直前のステップで一時的に使用不可にしたものを再度使用可能にする場合に使用します。postRestore
: ワークベンチとそのウィンドウが直前に保管された状態から再作成された後に呼び出されます。復元したワークベンチを調整する場合に使用します。preWindowOpen
: 各ウィンドウが開いたときに呼び出されます。ウィンドウのアクション・バー以外の部分を構成する場合に使用します。fillActionBars
: preWindowOpen
の後に呼び出されて、ウィンドウのアクション・バーを構成します。postWindowRestore
: ウィンドウが直前に保管された状態から再作成された後に呼び出されます。復元したウィンドウを調整する場合に使用します。postWindowCreate
: ウィンドウが初期状態または復元された状態から再作成された後に呼び出されます。ウィンドウを調整する場合に使用します。openIntro
: 概要コンポーネント (ある場合) を作成するために、ウィンドウが開く直前に呼び出されます。
postWindowOpen
- ウィンドウが開いた後に呼び出されます。ウィンドウ・リスナーなどをフックする場合に使用します。preWindowShellClose
: ユーザーがウィンドウのシェルを閉じると、呼び出されます。事前の画面ウィンドウのクローズに対して使用します。eventLoopException
: イベント・ループの破損に対応するために呼び出されます。ユーザーに不具合を通知する場合に使用します。eventLoopIdle
: 現在処理されているイベントがない場合に呼び出されます。他の処理を実行するか、または新規イベントがキューに入るまで作成する場合に使用します。preShutdown
: イベント・ループが終了した直後、ウィンドウが閉じる前に呼び出されます。アプリケーションは、シャットダウンを拒否できます。postShutdown
: 最後に呼び出されます。イベント・ループが終了し、すべてのウィンドウが閉じた後に呼び出されます。初期設定時に登録済みのものを登録解除する場合に使用します。このように、リッチ・クライアント・アプリケーションには、ワークベンチの構成およびインプリメント方法に関するコントロールが数多くあります。ブラウザー・サンプルでは、BrowserAdvisor の 1 次機能は、ブラウザーに適切なメニュー項目があるアクション・バーの構成になっています。これは、fillActionBars メソッドで行われます。
public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) { ... BrowserActionBuilder builder = new BrowserActionBuilder(window); getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); builder.fillActionBars(configurer, flags); }
このメソッドでは、ワークベンチは、特殊なアクション・ビルダーを使用して構成されます。このアクション・ビルダーを使用して、ワークベンチのアクション・バーを作成します。 アクションの指定方法についての詳細は、『アクションの定義』を参照してください。ここでは、ワークベンチの構成方法に焦点を当てます。
上記の getWorkbenchConfigurer メソッドの使用には注意してください。 IWorkbenchConfigurer および IWorkbenchWindowConfigurer を WorkbenchAdvisor と組み合わせて使用して、ウィンドウをカスタマイズします。 これらのクラスを使用すると、さまざまなレベルでワークベンチ作成の多数の性質をオーバーライドできます。 例えば、IWorkbenchWindowConfigurer は、アクション・バー、状況表示行、パースペクティブ・バー、クール・バーなど、ワークベンチ・ウィンドウのコントロールの特定の構成を前提とするプロトコルを定義します。 このプロトコルを使用すると、これらの項目をカスタマイズし、取り込むことができます。 IWorkbenchConfigurer は、よりハイ・レベルで作動し、ワークベンチを使用してアプリケーション固有のデータを保管することができます。 WorkbenchAdvisor は、上記のライフ・サイクル・メソッドの構成へのアクセスを提供します。 WorkbenchAdvisor 内の下位メソッドは、オーバーライドされ、デフォルトの振る舞いに置き換えられることがあります。 例えば、ワークベンチ・アドバイザーは、全く異なるメイン・ウィンドウの実装を提供するために、ウィンドウの SWT コントロールを作成するメソッドをオーバーライドします。
また、ワークベンチのカスタマイズ方法は数多くあり、その方法が使用されるレベルも数多くあります。 WorkbenchAdvisor、IWorkbenchConfigurer、および IWorkbenchWindowConfigurer の Javadoc には、使用可能なプロトコルの完全な記述が含まれています。 代替実装のコメントについては、BrowserAdvisor の完全な実装を参照してください。