コントローラは、ユーザー生成イベントを解析し、IDEの状態を変更する実行可能なコマンドに変換します。 ユーザーがメニュー項目を選択(またはツールバー・アイコンを選択、あるいはキーボード・ショートカットを入力)すると、そのアクション(IdeAction
インスタンス)が起動されます。コントローラは、テキスト入力またはマウスおよびキーボードのイベントなど、その他のイベントは処理しません。
事前定義のコマンドをオーバーライドする、または新しいコマンドを導入する拡張機能には、独自のコントローラを用意する必要があります。コマンドをオーバーライドする拡張機能は、既存のコマンド、およびそれらを含むアクションを使用します。ビューのコントローラは、既存のコマンド・クラスのインスタンスを作成、初期化および実行することにより、既存のアクションを更新および処理します。新規コマンドを導入する拡張機能には、カスタムのアクションおよびコマンドが必要です。
コントローラは、Controller
を実装するクラスのインスタンスです。
イベントの処理は、IDEの現在の状態の記録である現行コンテキストにより異なります。 コンテキストにより、アクティブ・ビューおよびそのコントローラが識別されます。コンテキストが変わると、アクティブ・コントローラは、選択したアクションを更新し、そのメニュー項目を使用可能および使用不可にします。
コントローラは、イベント処理に関して、次の2つの役割を果たします。
ビュー・コントローラは、エディタなどのビューに関連付けられ、コントローラのビューがアクティブ・ビューである際に発生するイベントを、ビューのデータに適用して管理します。新規のビュー・クラスを使用する拡張機能では、そのクラスのビュー・コントローラを指定する必要があります。
アクション・コントローラは、メニュー項目のアクションなど、現在のビューのサブジェクトに無関係でも起動できるアクションに関連付けられています。拡張機能では、アクションのコントローラを新規コントローラに置き換えることができます。ただし、旧定義を置き換えるのではなく、新しいコンテキストにアクションの定義を拡張すべきです。新規コントローラは、旧コントローラをカプセル化し、新しいコンテキストでアクションが起動されない場合、旧コントローラに処理を委任するようにします。
JDeveloperでは、ユーザー・アクションの解析処理の振分けは、Chain of Responsibilityのデザイン・パターンに従って自動的に管理されます。アクションは、あるコントローラがこれを処理するまで、コントローラからコントローラへとたらい回しにされます。このようなコントローラには、次のものがあります。
アクションは、まずアクション・コントローラに渡されます。このコントローラがアクションを処理する場合はtrueを返しますが、処理しない場合は前のアクション・コントローラに委任します。アクション・コントローラは、アクションを処理せず、前のアクション・コントローラがない場合のみtrueを返します。
アクション・コントローラがfalseを返した場合、アクションはアクティブなビューのコントローラに渡されます。このコントローラも同様に、アクションを処理する場合はtrueを返し、処理しない場合はスーパーバイザに委任します。最上位のスーパーバイザは、メイン・ウィンドウのコントローラであるIDEのMainWindowです。
Ide
クラスのシングルトン・オブジェクトは、ビュー・コントローラです。 オブジェクトのビューは、MainWindow
オブジェクトです。
コントローラには、2つの主要な役割があります。
コントローラは階層で編成されており、どのコントローラにも(ルート・コントローラおよびIde
オブジェクトを除く)スーパーバイザが備わっています。コントローラでは、一部のアクションの更新または処理の方法を決定し、残りのアクションについてはスーパーバイザに委任します。 最上位のスーパーバイザは、Ide
オブジェクトです。
ユーザー・インタフェース・イベントについて
コンテキストについて
IDEアクションについて
コマンドについて
IDEアクションの更新について
IDEアクションの処理について
oracle.ide.Ide
oracle.ide.IdeAction
oracle.ide.MainWindow
oracle.ide.Addin.Controller
Copyright © 1997, 2004, Oracle. All rights reserved.