SmartGWT TabSet.removeTab 会删除该选项卡并选择前一个选项卡.解决方法



我有一个问题:几个选项卡,一个新的被打开,在里面进行一些活动后,它被关闭了。问题是我在每个Tab上也有TabSelectedHandler,它们不仅onTabSelected执行,而且在删除时执行(这恰好是一个问题)。删除最后一个选项卡时,将选择以前的选项卡。如何避免这种情况并只删除?下面是代码示例:

Tab existingTab0 = new Tab("Static tab 0");
existingTab0.setID("0");
existingTab0.addTabSelectedHandler(new TabSelectedHandler () {
    public void onTabSelected(final TabSelectedEvent event) {
        // do stuff 0
    }
});
Tab existingTab1 = new Tab("Static tab 1");
existingTab1.setID("1");
existingTab1.addTabSelectedHandler(new TabSelectedHandler () {
    public void onTabSelected(final TabSelectedEvent event) {
        // do stuff 1
    }
});
Tab dynamicTab = new Tab("Dynamic tab");
dynamicTab.setID("2");
dynamicTab.addTabSelectedHandler(new TabSelectedHandler () {
    public void onTabSelected(final TabSelectedEvent event) {
        // do stuff 2
    }
});
TabSet tabSet = new TabSet();
tabSet.addTab(existingTab0);
tabSet.addTab(existingTab1);
tabSet.addTab(dynamicTab);
// upon a specific case I need to remove dynamicTab
tabSet.removeTab(dynamicTab); // forces onTabSelected method for Static tab 1 to be fired and does stuff 1 and this should NOT happen here

有什么解决方法的想法吗?提前谢谢。

您可以获取该方法返回addTabSelectedHandler HandlerRegistration,并在想要摆脱 dynamicTab 和调用 removeTab 方法之前使用它来删除处理程序。

最新更新