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).

我有一个不同的 UiHandler 在同一个 SuggestBox 上正常工作,所以我有点困惑我哪里出错了:

@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 回答