stuff22
stuff22

Reputation: 1672

Execute code on window close in GWT

I'd like to do something like this:

Window.addWindowClosingHandler(new Window.ClosingHandler() {

    @Override
    public void onWindowClosing(ClosingEvent event) {
        event.setMessage("Really?");

        // If user clicks 'ok' in the dialog, execute code below. Else skip the code and return to window.

        // CODE that does stuff goes here.
    }
});

How do I capture the input from the dialog?

Upvotes: 6

Views: 16342

Answers (2)

stuff22
stuff22

Reputation: 1672

There need to be two handlers, one Window.ClosingHandler and one CloseHandler. See below. This will make sure, if 'cancel' is clicked in the dialog, the CloseHandler isn't triggered. But if 'ok' is clicked, the CloseHandler is executed and will run the necessary code. This could be used for releasing db locks, neatly closing open sessions, etc.

Window.addWindowClosingHandler(new Window.ClosingHandler() {

    @Override
    public void onWindowClosing(ClosingEvent event) {
        event.setMessage("You sure?");
    }
});

Window.addCloseHandler(new CloseHandler<Window>() {

    @Override
    public void onClose(CloseEvent<Window> event) {
        //Execute code when window closes!
    }
});

Upvotes: 6

NebuSoft
NebuSoft

Reputation: 4010

You want to look into Window.Confirm for this kind of functionality.

You can read up on it here: gwt.user.client.Window

Upvotes: 0

Related Questions