SmartGWT TabSet.removeTab删除选项卡并选择上一个选项卡。解决方法?

时间:2013-09-17 08:22:44

标签: select tabs smartgwt

我遇到了一个问题:打开了几个标签,一个新标签,在其中的一些活动之后,它已关闭。问题是我在每个TabSelectedHandler上都有Tab个,并且它们不仅被执行onTabSelected,而且还被删除(这恰好是一个问题)。删除最后一个Tab时,正在选择prevoius。如何避免这种情况并且只删除?以下是代码示例:

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

任何解决方法的想法?提前谢谢。

1 个答案:

答案 0 :(得分:1)

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