Michael
Michael

Reputation: 1251

Overview of Handler in GWT

Is there an overview about all handlers and their corresponding containers in GWT? Whenever I try to add a handler to a container, I have to check, whether the handler fires an event or not (the JavaDoc does not provide useful information about this). For example a ResizeHandler:

       SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel() {
            @Override
            public void onResize() {
                super.onResize();
                System.out.println("onResize");
            }           
        };

        splitLayoutPanel.addHandler(new ResizeHandler() {

            @Override
            public void onResize(ResizeEvent event) {

                System.out.println("resize");

            }
        }, ResizeEvent.getType());

Overwriting the onResize()-method (1. example) gives an information, if the splitter changes, but if I add a ResizeHandler (2. example), I do not get any call of the onResize-method. I don't understand why and don't find the documentation why the handler is not allowed in this container.

I search for an overview of all available handlers, together with their possible containers and event, when they will be fired.

Upvotes: 1

Views: 978

Answers (2)

Arcadien
Arcadien

Reputation: 2278

If you add a handler using addHandler() on a Widget, you have to ensure the underlying DOM element could catch matching event. If yes, you also have to tell your Widget to sink this event using

void com.google.gwt.user.client.ui.Widget.sinkEvents(int eventBitsToAdd)

where eventBitsToAdd is a constant from com.google.gwt.user.client.Event. AFAIK ONRESIZE event is not yet supported natively. So as I said yesterday, you have to implement your mouse handlers and gesture, or override a slider ;-)

Upvotes: 1

Riley Lark
Riley Lark

Reputation: 20890

Usually there will be a more specific addHandler method. For example, Button has addClickHandler(ClickHandler). The interface that defines that method is HasClickHandlers, so you can look out for that, for example.

If the event doesn't have it's own addXyzHandler method, it probably won't be supported very well. In that case, it's usually pretty easy to subclass the widget and add support for that handler yourself.

Upvotes: 1

Related Questions