私はSSNのような3つのテキストボックスを持つGWTコンポジットウィジェットを持っていて、フォーカスがウィジェット全体から失われたときだけ変更イベントを発生させる必要があります個々のテキストボックスから、それをどうやって行うのですか?あなたの複合にObserverパターンを実装し、新しい通知毎回トリガする必要があるgwtコンポジットウィジェットのイベントを1つの変更イベントとしてグループ化する方法
5
A
答えて
0
:特定のテキストボックスと
- は、のいずれかに転送されませんでした他のテキストボックス。
1
ウィジェット全体がフォーカスを失ったとき(テキストボックスではない)にイベントを表示するには、ウィジェットのトップレベルをFocusPanelにして、それが与えるイベントを公開します。
+1
これは私が試した最初のことですが、何らかの理由でイベントが発生しません。 FocusPanelには、3つのテキストボックスを持つHorizontalPanelがあります。 – retrobrain
0
タイマーを使用できませんでしたか?テキストボックスからフォーカスが失われたら、ヒットしたときに3つのTextBoxインスタンスすべてにフォーカスを合わせる5ms(または何か小さい)タイマーを開始します。フォーカスがない場合は、手動でオブザーバーに通知します。フォーカスがある場合は何もしないでください。
あなたコンポジットクラスでこれを置く:そして
private Map<Widget, Boolean> m_hasFocus = new HashMap<Widget, Boolean>();
そして、あなたのTextBoxのインスタンスのそれぞれにこれを追加します。
new FocusListener() {
public void onFocus(Widget sender) {
m_hasFocus.put(sender, Boolean.TRUE);
}
public void onLostFocus(Widget sender) {
m_hasFocus.put(sender, Boolean.FALSE);
new Timer() {
public void run() {
for (Boolean bool : m_hasFocus.values()) {
if (bool) { return; }
}
notifyObservers();
}
};
}
};
関連する問題
- 1. GWTでタブ変更イベントをキャッチする方法TabLayoutPanel
- 2. C#のグループ化イベント
- 3. 1つのハンドラで複数の変更イベントを処理する方法は?
- 4. Excelのタイムラインマトリックスでイベントをグループ化する方法
- 5. 1つのkeyPressイベントに対して1つのイベントをトリガーします
- 6. gwt Javaテストのイベントがチェックボックスの値を変更しない
- 7. オンロードと変更をチェックする1つのイベントを作成します。
- 8. GWTでフォントのサイズ変更イベントをキャプチャする
- 9. GWTのDOM(イベント)
- 10. OnClickイベントのgridviewテンプレートフィールドの変更方法
- 11. GWTクラウドでClickイベントや他のイベントを処理する方法は?
- 12. orientationchangeイベントがスクロールしてイベントのサイズを変更します
- 13. 反応を使用して変更イベントをトリガーする方法
- 14. 1つの要素の変更イベントに基づいて複数のイベントをトリガする - jQuery
- 15. FileSystemWatcherの変更イベントと作成イベントを区別しますか?
- 16. GWT 2 ButtonCellを1行に追加イベント
- 17. 2つの変数をグループ化して要約する方法
- 18. RibbonComboBox「テキスト変更イベント」の方法
- 19. 1フレームのDOMを別のフレームのイベントに変更する方法は?
- 20. Angularjs-スライダーのonchangeイベントがangularjs rzsliderに変更イベントを処理する方法を
- 21. バブリングされたイベントを1つのイベントにまとめる
- 22. 複数のボタン、クリックしたボタンの色を変更する1つのイベント
- 23. GWTのイベントの枠線を設定する方法は?
- 24. 1つのCSSイベントで2つの要素の属性を変更する
- 25. onClickイベント - 時刻が1つのイベント
- 26. jQueryイベントのパフォーマンス:各イベントの親イベントまたは個別イベントに1つのイベントをバインドしますか?
- 27. 別のTextBox変更イベントに基づいてTextBox値を変更する方法
- 28. クラス名を変更してイベントの応答を変更する
- 29. 方向変更イベントを正しく処理する方法は?
- 30. 列イベントをグループ化してイベントの開始日と終了日を作成します
をイベントの順序であるため保証なしで動作しないことフォーカスが失われ、フォーカスは別のボックスで得られました。 – retrobrain
DeferredCommandを使用すると、次のようなトリックが発生する可能性があります。 http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/user/client/DeferredCommand.html – ivo
明確化:1.イベントをキャッチテキストボックスの1つから失われたフォーカス2. DefferredCommandを使用して、他のテキストボックスでフォーカスが得られなかったかどうかを確認します。 3.他のテキストボックスにフォーカスが得られなかった場合、コンポジットは "フォーカスが失われた"(または何でも)通知を出します。 – ivo