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

Window 如何从SmartGWT窗口取消关闭事件?,window,smartgwt,Window,Smartgwt,如何从com.smartgwt.client.widgets.Window取消关闭事件?我需要用户确认以关闭窗口,我看到类com.smartgwt.client.widgets.tab.events.TabCloseClickEvent有一个cancel方法来停止操作,我需要对com.smartgwt.client.widgets.events.CloseClickHandler使用相同的方法。如何实现此功能 public HandlerRegistration addCloseClickHan

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

public HandlerRegistration addCloseClickHandler(CloseClickHandler handler)
处理单击此窗口的“关闭”按钮的操作。默认实现隐藏窗口并返回false以取消冒泡。如果希望执行其他操作,请重写此方法。

在窗口对象中

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

                    //Do whatever

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

我发现,如果您不立即取消事件(因为它正在等待用户输入),那么窗口仍然会关闭。如果您需要等待用户输入,我发现以下内容是有效的

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();
                    } 
                }
            });
        }
    });
window.addCloseClickHandler(新的CloseClickHandler(){
@凌驾
关闭单击时公共作废(关闭单击事件){
event.cancel();
StringBuilder b=新的StringBuilder();
b、 追加(
); b、 追加(“您确定要关闭吗?”); SC.ask(“关闭”,b.toString(),新布尔回调(){ @凌驾 公共void执行(布尔值){ 如果(值){ window.close(); } } }); } });
CloseClickEvent上的kill()方法有效吗?不,它不起作用,CloseClickEvent类没有kill()方法。:/我已经在文档中看到了这一点,但这不是问题所在。。。
处理程序
参数没有停止关闭操作的
cancel()
方法,明白吗?我错了吗?@JulioSampaio如果你想采取其他行动,请重写此方法。。也就是说,重写它,做你想做的任何事情,但我不知道取消关闭操作的方法,我应该使用什么窗口的类方法?你曾经用SmartGwt做过类似的事情吗<代码>@Override public handler注册addCloseClickHandler(CloseClickHandler){SC.confirm(“关闭窗口?”,new BooleanCallback(){@Override public void execute(布尔值){if(value){//如何取消关闭?}}}}};//它应该返回什么?返回super.addCloseClickHandler(handler);}yes。要避免取消,请什么也不做,否则只需隐藏()窗口,或者如您所说,调用super方法