com.ibm.rational.common.test.editor.framework.extensions.ExtActionHandler クラスを使用して、メニュー・ボタンを除去、上に移動、および下に移動することができます。
このタスクについて
テストの操作に必要なエディターまたはプロトコル拡張、およびテストの追加、除去、挿入に固有のモデル・エレメントは、以下で説明する条件に従って
NewModelElementAction クラスを使用する必要があります。
手順
- com.ibm.rational.common.test.editor.framework.Test Editor クラスは、ツリーに表示されるモデル・エレメントごとに com.ibm.rational.common.test.editor.framework.extensions.ExtActionHandler クラスのインスタンスおよび一部の com.ibm.rational.common.test.editor.framework.kernel.actions.NewModelElementAction が、com.ibm.rational.common.test.editor.framework.TestEditorplug-in の com.ibm.rational.common.test.editor.framework.RptMenuManager に登録されているものと期待します。
- ActionHandler は plugin.xml ファイルで宣言されますが、com.ibm.rational.common.test.editor.framework.kernel.actions.NewModelElementAction クラスはプロトコルのプラグイン・クラスによってプログラマチックに作成および登録する必要があります。このクラスはコンテキスト依存であるため、複数のエディターで必要なのは 1 つのアクション・セットだけです。
- 選択されたエレメントの ActionHandler は、「除去」、「上に移動」、および「下に移動」ボタンを使用可能にするかどうかを尋ねられます。com.ibm.rational.common.test.editor.framework.extensions.ExtActionHandler は、選択を調べ、認識されたタイプのオブジェクトを探し、true または false の値を戻します。
- 「追加」および「挿入」ボタン、およびメニューを使用可能または使用不可にするために、TestEditor クラスは登録された各 com.ibm.rational.common.test.editor.framework.kernel.actions.NewModelElementAction インスタンスに選択を渡します。
アクションは選択を調べ、選択された項目にモデル・オブジェクトを追加できるかどうかに基づいて、状態を使用可能または使用不可にすることが期待されます。
- 各 com.ibm.rational.common.test.editor.framework.kernel.actions.NewModelElementAction の ID または派生タイプは、このアクションが表すモデル・オブジェクトのタイプと一致する必要があります。この ID は、modelObjectDescriptor 拡張ポイントで使用されているのと同じ値でなければなりません。com.ibm.rational.common.test.editor.framework.Test Editor クラスは、この値を使用して、特定のモデル・エレメントのさまざまなプロバイダーの場所を見つけます。
- com.ibm.rational.common.test.editor.framework.RptMenuManager クラスによって管理される 2 つの別々のアクション・セット (「追加」アクションと「挿入」 アクション) があります。
同じタイプのオブジェクトを両方に登録することはできますが、同じクラスの同じインスタンスを登録することはできません。つまり、AddObject アクションの 2 つのインスタンスを作成および登録する必要があります。オブジェクトを挿入できない場合、挿入アクションは不要です。追加アクションについても同様です。
- アクションが選択されると、アクションは対応する ActionHandler を呼び出して新しいモデル・オブジェクトを作成します。この時点で、ActionHandler クラスは、新しいモデル・オブジェクト (必須の子を含む) を作成および初期化する必要があります。
アクションは、選択された親に新しいモデル・オブジェクトを追加します。ただし、選択された親の ContentProvider が、EList タイプの子のリスト (ネイティブ・モデル・リスト) を戻す場合のみです。子のコンポジット・リスト (プロバイダーによってまとめられた ArrayList など) の場合、ActionHandler は新しい子を親に追加することが予期されます。
- プロトコル作成者は、アクションを作成するための基本クラスとして LoadTestNewModelElementAction クラスを使用する必要があります。このクラスは、フィーチャーによるフィルターをサポートします。