uibinder を使用してカスタム SuggestBox を作成し、uibinder を使用するビューで使用します。
私の問題は、カスタムの提案ボックスを使用しているビューに onSelection イベントを発生できないことです
以下は私のコードです。
MySuggestBox.ui.xml
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
</ui:style>
<g:SuggestBox ui:field="suggestionBox"></g:SuggestBox>
</ui:UiBinder>
MySuggestBox.java
public class MySuggestBox extends Composite implements IsWidget, HasSelectionHandlers<Suggestion>{
private static mySuggestBoxUiBinder uiBinder = GWT
.create(mySuggestBoxUiBinder.class);
interface MySuggestBoxUiBinder extends
UiBinder<Widget, MySuggestBox> {
}
@UiField SuggestBox suggestionBox;
public mySuggestBox(){
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public HandlerRegistration addSelectionHandler(SelectionHandler<Suggestion> handler) {
return addHandler(handler, SelectionEvent.getType());
}
...
...
...
}
ここで上記のウィジェットを使用しています
MySuggestBoxExample.ui.xml
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui
xmlns:my="urn:import:com.myproject.mywidget">
<ui:style>
</ui:style>
<my:MySuggestBox ui:field="suggestBox" />
</ui:UiBinder>
MySuggestBoxExample.java
public class MySuggestBoxExample extends Composite implements IsWidget{
private static mySuggestBoxExampleUiBinder uiBinder = GWT
.create(mySuggestBoxExampleUiBinder.class);
interface MySuggestBoxExampleUiBinder extends
UiBinder<Widget, MySuggestBoxExample> {
}
@UiField MySuggestBox suggestBox;
public MySuggestBoxExample (){
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("suggestBox")
public void onSelection(SelectionEvent<Suggestion> event){
//I DONT GET THIS EXECUTED
}
...
...
...
}
onSelection メソッドがトリガーされません。
助けてください。