アクションの定義

新しいコマンド・クラスを実装する拡張機能は、これを含めるアクションを定義します。アクションは、メニュー項目、またはその他のユーザー・インタフェース・コントロールと、そのメニュー項目が選択された際に実行されるコマンドとのリンクの役割を果たします。 アクションは、IdeActionのインスタンスです。

既存のUI要素に特化された動作を定義する拡張機能は、カスタム・アクションを定義するのではなく、その要素にすでに提供されているアクションを使用します。 Ideクラスで定義されているフィールドでは、標準コマンドのクラス名およびIDを指定します。 たとえば、保存操作を提供するエディタでは、事前定義のIde.SAVE_CMDおよびIde.CUT_SAVE_IDの値、およびそれらに関連付けられたアクションを使用します。

アクションは通常、関連付けられたメニュー項目またはツールバー・アイコンをインストールするAddinクラスのフィールドとして定義されます。アクションを拡張機能の初期化の一部として作成および構成します。

次のトピックでは、アクションの定義について説明しています。

アクションの取得

アクションはコマンドIDによってキャッシュされます。必要なコマンドにアクションがすでに存在する場合、通常は新しいものを作成するかわりに、それを使用します。

IdeActionコンストラクタを使用してアクションを作成しないでください。かわりに、次のstaticメソッドを使用し、キャッシュされたアクションを取得するか、新しいアクションを作成します。

アクション値の設定

1つのアクションには、外観を決めるものなどの様々なプロパティがありますが、これにはputValueメソッドおよびgetValueメソッドにより、文字列キーを使用してアクセスします。 プロパティの一部は、createメソッドまたはstatic getterメソッドによりアクションが作成される際に設定されます。 IDEで認識されるキーは、ToggleActionスーパークラスで定義されます。

アクションのコントローラの拡張

開くなど、ビューに無関係なアクションは、アクションを更新し、そのイベントを処理するコントローラを指定する必要があります。ビューのコンテキストで起動されるアクションには、アクション・コントローラは不要です。

コマンドの動作は、そのコマンドを使用するすべてのIDE機能に対し、コマンドのアクションのコントローラを置換するか、コントローラがないアクションの場合は、これを指定することにより、拡張してカスタム操作を実行できます。しかし、デフォルトの動作に干渉しないよう注意する必要があります。

既存のコントローラを置換するには、次のようにします。

  1. 古いコントローラ・クラスを拡張して新しいコントローラ・クラスを実装します。
  2. 拡張されたコマンドの新しいコントローラによる処理では、カスタム操作を実行してから、そのコマンドの古いコントローラのhandleEventメソッドを起動すると、元の動作が保存されます。

コントローラのないアクションにコントローラを追加するには、次のようにします。

  1. 新しいコントローラ・クラスを実装します。
  2. 拡張されたコマンドの新しいコントローラによる処理では、カスタム操作を実行してから、そのコマンドのスーパーバイザのhandleEventメソッドを起動すると、元の動作が保存されます。

getControllerメソッドおよびaddControllerメソッドを使用し、アクションのコントローラにアクセスします。

アクションのコマンド・クラスの拡張

getCommandメソッドは、アクションのコマンド・クラスの名前を返します。 setCommandメソッドを使用してこれを置換できます。ただし、コマンドは一括置換され、そのアクションを処理するIDEのすべての機能に影響を与えます。必要以上の影響を及ぼさないように、元のコマンド・クラスはそれを拡張するクラスによってのみ置換します。


コマンドの開発
ユーザー・インタフェース・イベントについて
コマンドの実装
コントローラの実装

oracle.ide.Ide
oracle.ide.IdeAction
oracle.ide.addin.Addin

 

Copyright © 1997, 2004, Oracle. All rights reserved.