gwt POUPPANEL基于条件的取消关闭进程

gwt POUPPANEL基于条件的取消关闭进程,gwt,event-handling,popuppanel,Gwt,Event Handling,Popuppanel,我有一个PopupPanel private PopupPanel simplePopup; 弹出窗口将在应用程序中打开。当用户在其外部单击时,弹出窗口关闭。这是默认行为。我希望覆盖该行为,如果满足条件,则不关闭弹出窗口。我有这样的想法: simplePopup.addCloseHandler(new CloseHandler<PopupPanel>() { @Override public void onClose(CloseEvent&l

我有一个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
           }
        }
    });
simplePopup.addCloseHandler(新的CloseHandler(){
@凌驾
公共void onClose(CloseEvent arg0){
if(条件集){
//在此处执行某些操作以避免关闭弹出窗口
}
}
});

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

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

simplePopup.setAutoHideEnabled( false );
您还可以通过构造函数禁用它

通过将hide方法重写为,可以根据某些条件控制隐藏

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

谢谢阿达莎!成功了!注意:我必须使用super.hide(true);而不是super.hide();为了让它工作。