2013-02-20 69 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