【问题标题】:gwt popuppanel cancel onclose process based on a conditiongwt popuppanel根据条件取消onclose进程
【发布时间】:2013-02-20 17:55:04
【问题描述】:

我有一个弹出面板

 private PopupPanel simplePopup;

弹出窗口在应用程序中打开。当用户在其外部单击时,弹出窗口将关闭。这是默认行为。如果满足条件,我想覆盖该行为并且不要关闭弹出窗口。我有这样的想法:

  simplePopup.addCloseHandler(new CloseHandler<PopupPanel>() {

        @Override
        public void onClose(CloseEvent<PopupPanel> arg0) {
            if (conditionIsMet) {
              // do something here to avoid closing the popup
           }
        }
    });

但我不知道如何防止弹出窗口关闭。我读过一些关于 onPreviewNativeEvent 的内容,但我不知道如何使用它。

【问题讨论】:

    标签: gwt event-handling popuppanel


    【解决方案1】:

    您需要禁用自动隐藏标志。默认隐藏行为是由于此标志。您可以使用以下代码 sn-p 禁用它。

    simplePopup.setAutoHideEnabled( false );
    

    你也可以通过构造函数来禁用它。

    您可以通过覆盖隐藏方法来根据某些条件控制隐藏

        simplepopup = new PopupPanel( false)
        {
            @Override
            public void hide( boolean autoClosed )
            {
                if( condition met )
                {
                    super.hide();
                } 
            }
        };
    

    【讨论】:

    • 感谢阿达沙!有效!请注意:我必须使用 super.hide(true);而不是 super.hide();为了让它工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多