如何跟踪SmartGwt的窗口关闭

时间:2013-05-15 11:02:35

标签: java gwt user-interface window smartgwt

我正在使用SmartGwt开发SDI Web应用程序。在主窗口中,我想在单击按钮时弹出一个窗口。但是,当弹出窗口关闭时,主窗口无法捕获事件。有没有好办法呢?

IButton showPopupButton = new IButton();
showPopupButton.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        Window popup = new Window();
        popup.show();
        SC.say("The popup was closed"); // UNEXPECT: It shows up just after the popup is shown.
    }
});

目前,我可以在构造函数中声明一个参数BooleanCallback,这样当弹出窗口关闭时,它应该调用回调函数。

我有一个解决方案:

IButton showPopupButton = new IButton();
showPopupButton.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        Window popup = new MyWindow(new BooleanCallback() {
             public void execute(Boolean value) {
                 SC.say("The popup was closed");
             }
        });
        popup.show();
    }
});

但是如果有人为我编写插件并且没有在其构造函数中使用这样的“回调函数”,那么如何跟踪Window close事件?我试图将一个VisiblityChangedHandler注册到弹出窗口,但它不起作用。

1 个答案:

答案 0 :(得分:3)

窗口关闭处理程序事件捕获关闭事件,尝试使用

Window.addWindowClosingHandler(new ClosingHandler() {

            @Override
            public void onWindowClosing(ClosingEvent event) {


            }
        });