gwt popuppanel根据条件取消onclose进程

时间:2013-02-20 17:55:04

标签: gwt event-handling popuppanel

我有一个PopupPanel

 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 的内容,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:2)

您需要禁用autoHide标志。默认的隐藏行为是由此标志引起的。您可以使用以下代码段禁用它。

simplePopup.setAutoHideEnabled( false );

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

您可以通过将hide方法重写为

来根据某些条件控制隐藏
    simplepopup = new PopupPanel( false)
    {
        @Override
        public void hide( boolean autoClosed )
        {
            if( condition met )
            {
                super.hide();
            } 
        }
    };