Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute code on window close in GWT

Tags:

java

events

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?

like image 493
stuff22 Avatar asked Apr 01 '10 18:04

stuff22


1 Answers

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!
    }
});
like image 129
stuff22 Avatar answered Oct 23 '22 19:10

stuff22