特定エレメントのエラー・ハンドラーの表示方法の制御

指定されたテスト・エレメントのエラー・ハンドラーの表示方法を制御することができます。

テスト・エディターでは、ユーザーはエラーを生成する特定のモデル・エレメントについてのエラー処理を構成することができます。例えば、あるコンテンツ検査ポイントの特定のインスタンスに障害が発生した場合、ユーザーはそのコンテンツ検査ポイントの当該インスタンスについてのみ、エラー処理動作を変更することができます。 プロトコル固有エレメントについてのエラー・ハンドラーの表示方法を変更するには、テストの実行時にそのエレメントについて生成される可能性があるエラーのタイプを知っておく必要があります。

テスト・エディター SDK には、エラー処理ユーザー・インターフェースの表示のためのクラスが提供されています。com.ibm.rational.test.lt.testeditor.main.exceptions.TestExceptionProducerUI クラスは、「拡張」ページの「詳細」セクションのエラー処理ユーザー・インターフェースを制御します。 com.ibm.rational.test.lt.testeditor.main.exceptions.DialogExceptionProducerUI クラスは、ダイアログ・ボックスおよびプロパティー・ページのエラー処理ユーザー・インターフェースを制御します。

以下のコードは、テスト・エディターの「拡張」ページの「詳細」 セクションについての例です。 layoutControls メソッドに、以下の行と同様のコードを追加します。

m_exceptionUi = new TestExceptionProducerUI( 
	getTestEditor(),
	new AuthenticationExceptionCreator());
m_exceptionUi.createErrorProducerContents( 
	getDetails(), 
	getNtlm(),
	(LoadTestWidgetFactory) getFactory());

AuthenticationExceptionCreator クラスは、plugin.xml ファイル内で exceptionDefinition 拡張ポイントに指定される同じクラスです。refreshControls メソッドに、以下の行と同様のコードを追加します。

m_exceptionUi.refresh( getNtlm() );

以下のコードは、ダイアログ・ボックスおよびプロパティー・ページについての例です。createContents メソッドまたは createDialogArea メソッドに、以下の行と同様のコードを追加します。

m_errorHandling = new DialogExceptionProducerUI(
	m_page.getEditor(),
	new PageTitleErrorExceptionCreator());
m_errorHandling.createErrorProducerContents( parent, vp );

onCancelPressed メソッド (ユーザーがダイアログ・ボックスの「キャンセル」をクリックすると呼び出される) に、以下の行と同様のコードを追加します。

m_errorHandling.cleanUp();

ユーザーがダイアログ・ボックスまたはプロパティー・ページの「OK」をクリックした場合、変更内容は CBError オブジェクトに直ちに適用されるため、追加のコードは不要です。ユーザーがダイアログ・ボックスまたはプロパティー・ページの「キャンセル」をクリックした場合、cleanUp メソッドを使用して変更を元に戻す必要があります。

CBError オブジェクトに変更が行われたときに通知を受け取るには、以下のコードを使用して updateEditor メソッドをオーバーライドします。

m_errorHandling = new DialogExceptionProducerUI( 
			TestEditorPlugin.getEditorFor(m_datapool), 
			new EndOfDatapoolExceptionCreator()){
		@Override
		protected void updateEditor() {
			getButton(OK).setEnabled(true);
			super.updateEditor();
		}
	};
	m_errorHandling.createErrorProducerContents(composite, m_datapool, null );

フィードバック