如何从SmartGWT窗口取消关闭事件?

时间:2012-06-06 14:26:05

标签: window smartgwt

如何从com.smartgwt.client.widgets.Window取消关闭事件?我需要用户确认关闭窗口,我看到类com.smartgwt.client.widgets.tab.events.TabClos​​eClickEvent有一个取消方法停止操作,我需要相同的com.smartgwt.client.widgets .events.CloseClickHandler。我如何实现此功能?

3 个答案:

答案 0 :(得分:1)

public HandlerRegistration addCloseClickHandler(CloseClickHandler handler)

点击此窗口的关闭按钮。默认实现隐藏窗口并返回false以取消冒泡。如果您想要采取其他操作,请覆盖此方法。

答案 1 :(得分:0)

在你的窗口对象中

    myWindowObject.addCloseClickHandler(new CloseClickHandler() {  
            public void onCloseClick(CloseClickEvent event) {  

                    //Do whatever

                    if(IHaveTOCancel){
                            event.cancel();
                    }
                }  
            });

答案 2 :(得分:0)

我发现如果你没有立即取消该事件(因为它等待用户输入),那么窗口仍会关闭。如果你需要等待用户输入,这就是我发现的工作。

window.addCloseClickHandler(new CloseClickHandler() {
        @Override
        public void onCloseClick(CloseClickEvent event) {
            event.cancel();
            StringBuilder b = new StringBuilder();
            b.append("<BR>");
            b.append("Are you sure you want to close?");
            SC.ask("Close", b.toString(), new BooleanCallback() {
                @Override
                public void execute(Boolean value) {
                    if (value) {
                        window.close();
                    } 
                }
            });
        }
    });