Gwt UiHandler不';无法使用SuggestBox SuggestEvent

Gwt UiHandler不';无法使用SuggestBox SuggestEvent,gwt,uibinder,Gwt,Uibinder,我正在使用SuggestBox并试图捕获当用户选择建议时触发的SuggestionEvent。我可以很容易地使用普通事件处理程序执行此操作: itemInputBox.addEventHandler(new SuggestionHandler() { @Override public void onSuggestionSelect(SuggestionEvent event) { Window.alert(event

我正在使用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正确地触发,而另一个导致错误

SuggestionEvent不扩展GwtEvent,而是扩展java.util.EventObject


这就是为什么它不能与UiBinder一起工作。我会在GWT贡献者列表中提到这一点,看看是否有具体的原因。现在我只是猜测,当我搬到新的活动系统时,它被遗忘了。

谢谢,我以为我疯了!无论如何,在发布了这个问题之后,我做了更多的研究,发现SuggestionHandler无论如何都是不推荐的,所以我转而使用SelectionHandler,相应的UiHandler工作得非常好。