2012-03-27 3 views
0

私のフォームには、ComboBoxとTextFieldが含まれています。ユーザーがComboBoxで何かを選択すると、TextFieldのコンテンツは選択に応じて何らかの値に設定されます。問題は、TextFieldにバリデータがアタッチされているため、処理に時間がかかることです。検証が完了した後でのみ、TextFieldの新しい値が表示されます。検証の前に新しい値を表示することも、何らかの理由でバックグラウンドスレッドで検証を行うことも可能ですか?バリデーターはブール値のメソッドを持つインターフェースを実装するので、何かを返さなければならないので、私はこれをどうやってできるのか分かりません。Vaadinフォームのバックグラウンドスレッドでの検証?

答えて

1

Refresher addonを試すことができます。 addValidator(Validator)メソッドを使用してバリデータを追加せず、ValueChangeListenerを追加し、バックグラウンドスレッドでバリデータを実行します。

リフレッシャーをレイアウトのどこかに追加して、テキストフィールドの値が変更された後で有効にするだけです。 valueChangeメソッドで新しいスレッドを開始し、バリデータが完了するまでRefresherがサーバー側をポーリングできるようにします。

例が必要な場合はお知らせください。私は自分でこれをやっていないが、これが私が問題を解決しようとする方法である。

+0

これは素晴らしいアイデアです、ありがとう! –