新しいコマンド・クラスを実装する拡張機能は、これを含めるアクションを定義します。アクションは、メニュー項目、またはその他のユーザー・インタフェース・コントロールと、そのメニュー項目が選択された際に実行されるコマンドとのリンクの役割を果たします。 アクションは、IdeAction
のインスタンスです。
既存のUI要素に特化された動作を定義する拡張機能は、カスタム・アクションを定義するのではなく、その要素にすでに提供されているアクションを使用します。 Ide
クラスで定義されているフィールドでは、標準コマンドのクラス名およびIDを指定します。 たとえば、保存操作を提供するエディタでは、事前定義のIde.SAVE_CMD
およびIde.CUT_SAVE_ID
の値、およびそれらに関連付けられたアクションを使用します。
アクションは通常、関連付けられたメニュー項目またはツールバー・アイコンをインストールするAddin
クラスのフィールドとして定義されます。アクションを拡張機能の初期化の一部として作成および構成します。
次のトピックでは、アクションの定義について説明しています。
アクションはコマンドIDによってキャッシュされます。必要なコマンドにアクションがすでに存在する場合、通常は新しいものを作成するかわりに、それを使用します。
IdeAction
コンストラクタを使用してアクションを作成しないでください。かわりに、次のstaticメソッドを使用し、キャッシュされたアクションを取得するか、新しいアクションを作成します。
find
メソッドは、アクションがすでにキャッシュされている場合、指定したコマンドIDを含むアクションを返します。
get
メソッドは、アクションがすでにキャッシュされている場合、指定したコマンドのIDと一致するアクションを返しますが、このアクションのプロパティは指定したパラメータに一致する場合も、しない場合もあります。コマンドIDに一致するアクションが見つからない場合、指定したパラメータから新しいアクションが作成され、キャッシュされて、返されます。
create
メソッドは、新しいアクションを作成し、キャッシュせずに返します。 create
から取得されるアクションは、後からロードされた拡張機能には使用できません。
1つのアクションには、外観を決めるものなどの様々なプロパティがありますが、これにはputValue
メソッドおよびgetValue
メソッドにより、文字列キーを使用してアクセスします。 プロパティの一部は、create
メソッドまたはstatic
getterメソッドによりアクションが作成される際に設定されます。 IDEで認識されるキーは、ToggleActionスーパークラスで定義されます。
開くなど、ビューに無関係なアクションは、アクションを更新し、そのイベントを処理するコントローラを指定する必要があります。ビューのコンテキストで起動されるアクションには、アクション・コントローラは不要です。
コマンドの動作は、そのコマンドを使用するすべてのIDE機能に対し、コマンドのアクションのコントローラを置換するか、コントローラがないアクションの場合は、これを指定することにより、拡張してカスタム操作を実行できます。しかし、デフォルトの動作に干渉しないよう注意する必要があります。
既存のコントローラを置換するには、次のようにします。
handleEvent
メソッドを起動すると、元の動作が保存されます。
コントローラのないアクションにコントローラを追加するには、次のようにします。
handleEvent
メソッドを起動すると、元の動作が保存されます。
getController
メソッドおよびaddController
メソッドを使用し、アクションのコントローラにアクセスします。
getCommand
メソッドは、アクションのコマンド・クラスの名前を返します。 setCommand
メソッドを使用してこれを置換できます。ただし、コマンドは一括置換され、そのアクションを処理するIDEのすべての機能に影響を与えます。必要以上の影響を及ぼさないように、元のコマンド・クラスはそれを拡張するクラスによってのみ置換します。
コマンドの開発
ユーザー・インタフェース・イベントについて
コマンドの実装
コントローラの実装
oracle.ide.Ide
oracle.ide.IdeAction
oracle.ide.addin.Addin
Copyright © 1997, 2004, Oracle. All rights reserved.