Подтвердить что ты не робот

Внедрение ClickHandler в пользовательский виджет

Я создаю собственный виджет в GWT, расширяющий Composite и реализующий ClickHandler. Я уже реализовал метод onClick, но clickEvent не работает. Какой метод следует дополнительно реализовать в классе для работы clickEvent? Может быть, HandlerRegistration? Как?

4b9b3361

Ответ 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()) ;
   }
}