2013-02-20 76 views
0

过程中,我有一个PopupPanelGWT popuppanel取消的OnClose基于条件

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的一些信息,但我不知道如何使用它。

回答

2

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

simplePopup.setAutoHideEnabled(false); 

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

您可以通过overridding隐藏方法

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

感谢Adarsha控制基于一些条件躲!有效!请注意:我必须使用super.hide(true);而不是super.hide();为了它的工作。 – Mike 2013-02-21 10:28:37