2012-07-13 21 views
0

我正在使用SuggestBox並試圖捕獲用戶選擇建議時觸發的SuggestionstionEvent。我可以用正常的事件處理程序很輕鬆地做到這一點:UiHandler不能使用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火災正確,而在錯誤的其他結果。

回答

2

SuggestionEvent不擴展GwtEvent,而是擴展java.util.EventObject。

這就是爲什麼它不能與UiBinder一起使用。我將在GWT貢獻者列表中提出這個問題,看看是否有特定的原因。現在我只是猜測它在轉移到新的事件系統時被遺忘了。

+0

謝謝,我以爲我正在失去理智!無論如何,在發佈這個問題後,我做了一些更多的研究,發現SuggestionHandler已被棄用,所以我轉而使用SelectionHandler和相應的UiHandler完美工作。 – 2012-07-13 14:58:11