Должно быть два обработчика, один Window.ClosingHandler
и один CloseHandler
. Увидеть ниже. Это обеспечит, если в диалоговом окне будет нажата кнопка «Отмена», CloseHandler
не сработает. Но если нажать «ок», то CloseHandler
будет выполнен и запустит необходимый код. Это можно использовать для снятия блокировок БД, аккуратного закрытия открытых сессий и т. Д.
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!
}
});