Atul Acharya
Atul Acharya

Reputation: 507

Widget.addHandler() on GWT Button not working correctly

I am trying to use method addHandler on a Button. Following is my code:

private void attachClickHandler(Widget widget) {
    ClickHandler clickHandler1;
    ClickHandler clickHandler2;

    clickHandler1 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler One");
        }

    };
    clickHandler2 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler Two");
        }

    };
    ((Button) widget).addClickHandler(clickHandler1);
    widget.addHandler(clickHandler2, ClickEvent.getType());
}

If I add both handlers, it works perfectly. But if I try to add only clickHandler2 (with widget.addHandler(...), then the handler is not called.

Not able to figure out why?

Thanks in advance.

Upvotes: 3

Views: 4267

Answers (2)

Zied Hamdi
Zied Hamdi

Reputation: 2662

Simply add

widget.sinkEvents(Event.ONCLICK);

this registers the dom 'click' event to trigger the event

Upvotes: 0

Atul Acharya
Atul Acharya

Reputation: 507

Only thing needed to get this working was:

Change

widget.addHandler(clickHandler2, ClickEvent.getType());

to

widget.addDomHandler(clickHandler2, ClickEvent.getType());

Upvotes: 7

Related Questions