2014-04-20 46 views
0

我面臨使用smartGWT CloseClickHandler的問題,我將它添加到一個標籤,它工作正常,但我的問題是,它刪除了標籤之前,我可以做任何事情與事件,我是什麼希望是能夠顯示確認窗口,以便用戶可以確定他想關閉標籤, 所以有沒有任何處理程序可以在刪除或隱藏標籤之前執行我的代碼?或者有什麼方法可以處理這種情況標籤CloseClickHandler?smartGwt close clickHandler

我的代碼是:

tabSet = new TabSet(); 
    tabSet .setWidth100(); 
    tabSet .setOverflow(Overflow.HIDDEN); 
    tabSet .setTabBarThickness(23); 
    tabSet .setHeight(23); 
    tabSet .setBackgroundColor("#e1dfdf"); 
    tabSet .setCanCloseTabs(true); 
    tabSet .setCloseTabIcon("icons/close_icon.png"); 
    tabSet .setCloseTabIconSize(12); 
    tabSet .addCloseClickHandler(new CloseClickHandler() { 

     public void onCloseClick(TabCloseClickEvent event) { 

      final int tabIndex = ((MyTab)event.getTab()).getId(); 

      final MyTab = (MyTab)tabSet.getTab(tabIndex); 
      int tabId = tab.getTabId(); 
      int tabType = getType(); 
      presenter.removeBasket(tabId, tabType); 

     } 
    }); 

回答

1

試試這一個。

首先取消TabCloseClickEvent然後做任何你想做的事情。

tabSet.addCloseClickHandler(new com.smartgwt.client.widgets.tab.events.CloseClickHandler() { 

    @Override 
    public void onCloseClick(TabCloseClickEvent event) { 
     event.cancel(); 

     final Tab tab = event.getTab(); 

     SC.confirm("Are you sure? You want to delete " + tab.getTitle()+" tab.", 
       new BooleanCallback() { 

        @Override 
        public void execute(Boolean value) { 
         if (value != null && value) { 
          tabSet.removeTab(tab); 
         } 

        } 
       }); 

    } 
});