1

我正在使用 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();
    }
});

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

4

1 回答 1

3

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

Window.addWindowClosingHandler(new ClosingHandler() {

            @Override
            public void onWindowClosing(ClosingEvent event) {


            }
        });
于 2013-05-15T11:28:10.493 回答