Я создаю собственный виджет в GWT, расширяющий Composite и реализующий ClickHandler. Я уже реализовал метод onClick, но clickEvent не работает. Какой метод следует дополнительно реализовать в классе для работы clickEvent? Может быть, HandlerRegistration? Как?
Внедрение ClickHandler в пользовательский виджет
Ответ 1
Если вы хотите, чтобы ваш виджет вел себя как интерактивные виджеты GWT, вы должны использовать интерфейс com.google.gwt.event.dom.client.HasClickHandlers.
public class MyWidget extends Widget
implements HasClickHandlers
{
public HandlerRegistration addClickHandler(
ClickHandler handler)
{
return addDomHandler(handler, ClickEvent.getType());
}
}
Ответ 2
Попробуйте
this.addClickHandler( myClckHandler ) ;
или если недоступно
this.addDomHandler( myClckHandler , ClickEvent.getType()) ;
это должно работать
Изменить == > это должно работать:
public class Foo extends Composite {
private ClickHandler myClkHandler = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("Overnuts is the best !") ;
}
};
public Foo() {
initWidget(this) ;
this.addDomHandler( myClkHandler, ClickEvent.getType()) ;
}
}