基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > ウィザードの作成 > Windchill クライアントアーキテクチャウィザード > カスタマイズポイント > ステップのためのデータバリデータの作成
  
ステップのためのデータバリデータの作成
ユーザーが入力したデータの検証は、各ステップの完了後に実行され、各入力フィールドの入力完了後に実行されることもあります。検証は、JavaScript によってクライアント上で行われるか、または UIComponentValidator を拡張する Java クラスを介してメソッドサーバーで行われます。
入力フィールドが標準的なレンダリングによって生成されている場合、すべての必須属性値が入力されていることが自動的に検証されます。レンダリングによって入力フィールドに class="required" 属性が追加され、ウィザードの JavaScript は、そのような属性を持つフィールドに値が入っていることを確認します。ステップ操作の afterJS 属性値と同じメソッドを指定すると、JavaScript のメソッドでほかのクライアントの検証を実行できます。カスタム JavaScript をパッケージする方法については、すべての Windchill クライアントアーキテクチャページへのカスタムコードの追加を参照してください。
「タイプおよび属性の管理」ユーティリティで属性に定義されている制約に対するデータ値の検証は、メソッドサーバーで実行する必要があります。これは、DefaultUIComponentValidator のサブクラスに validateFormSubmission() メソッドを実装して行います。さらに、ステップ操作の afterVK 属性で DefaultUIComponentValidator を示す service.properties エントリのセレクタキーの名前を指定します。ユーザーがステップで「次へ」または「OK」ボタンをクリックすると、バリデータクラスの validateFormSubmission() メソッドがフレームワークによって自動的に呼び出されます。また、ドライバー属性パネルの属性の値が変更されたときも呼び出されます。
「コンテキストを設定」、ドライバー属性テーブル、および「属性を設定」ウィザードステップでは、デフォルトのサーバー側のバリデータを使用できます。セレクタキーとバリデータクラスパスは、components.service.properties.xconf の以下のエントリに指定されます。
<Service context="default" name="com.ptc.core.ui.validation.
UIComponentValidator">
<Option serviceClass="com.ptc.core.components.validators.
ContextWizardStepValidator
" requestor="null" selector=
"setContextWizStep"/>
<Option requestor="null"
serviceClass="com.ptc.core.components.validators.
DefineObjectStepValidator
" selector="defineItem" />
<Option serviceClass="com.ptc.core.components.validators.
SetAttributesStepValidator
" requestor="null"
selector="setAttributesWizStep "/>
</Service>
定義済みのバリデータクラスがニーズを満たしていれば、ウィザードステップ操作の afterVK 属性の値と同様に、前述のエントリに示されているセレクタ文字列を使用して定義済みのバリデータクラスを使用することができます。さらに検証が必要な場合は独自のバリデータを作成できます。通常は、標準的なバリデータを部分的にサブクラス化します。すべてのフォームデータは、UIValidationCriteria.getFormData() を呼び出すことによってバリデータに渡される UIValidationCriteria パラメータからアクセスできます。validateFormSubmission() メソッドは、すべてのフォームデータが有効であれば UIValidationStatus.PERMITTED の状態の UIValidationResult を返し、1 つまたは複数の属性値が無効であれば UIValidationStatus.DENIED の状態の UIValidationResult を返します。後者の場合、無効な値を訂正するために、ユーザーは完了したウィザードステップに戻ります。ユーザーに表示されるフィードバックメッセージは、UIValidationResult.addFeedbackMsg() メソッドによって UIValidationResult に追加されます。