0

私は SuggestBox を使用しており、ユーザーが提案を選択したときに発生する SuggestionEvent をキャプチャしようとしています。これは、通常のイベント ハンドラーで簡単に実行できます。

itemInputBox.addEventHandler(new SuggestionHandler() {
            @Override
            public void onSuggestionSelect(SuggestionEvent event) {
                Window.alert(event.getSelectedSuggestion().getReplacementString());         
            }           
        });

これは正常に機能し、正しい置換文字列でイベントが発生します。ただし、コードが非常に簡潔であるため、可能な限り UiHandler を使用するのが好きです。だから私は次のことを試しました:

@UiHandler("itemInputBox")
    void onSuggestionSelect(SuggestionEvent event) {
        Window.alert(event.getSelectedSuggestion().getReplacementString());
    }

しかし、これにより次のエラーが発生します。

[WARN] [jsonp] - Method 'getAssociatedType()' could not be found in the event 'SuggestionEvent'.


[ERROR] [jsonp] - Parameter 'SuggestionEvent' is not an event (subclass of GwtEvent).

同じ SuggestBox で別の UiHandler が正しく動作しているため、どこが間違っているのか混乱しています。

@UiHandler("itemInputBox")
    void onKeyUp(KeyUpEvent event) {
            Window.alert("Key up event firing.");
    }

一方の UiHandler が正しく起動し、もう一方がエラーになる理由がわかりません。

4

1 に答える 1

2

SuggestionEvent は GwtEvent を拡張せず、代わりに java.util.EventObject を拡張します。

これが、UiBinder では機能しない理由です。これに特定の理由があるかどうかを確認するために、GWT コントリビューター リストでこれを取り上げます。今のところ、新しいイベントシステムに移行したときに忘れられたと推測しています.

于 2012-07-13T14:55:13.283 に答える