【发布时间】:2015-12-21 17:37:56
【问题描述】:
我有一个 Vaadin 选项卡。所有选项卡都是可关闭的。我已经定义了一个自定义 CloseHandler。当通过小 x 按钮关闭 Tab 时,CloseHadler 执行;但是,如果我以编程方式关闭选项卡
TabSheet parent = (TabSheet) this.getParent();
parent.removeTab(parent.getTab(this));
关闭处理程序不执行。有没有办法强制 CloseHandler 在 Tab 被删除之前执行。
谢谢,
奥利弗
【问题讨论】:
-
如果您查看sources,您会注意到
TabSheet的构造函数定义了一个默认的CloseListener,它简单地调用tabsheet.removeComponent(c),这就是removeTab(Tab tab)所做的。猜猜如果一个叫另一个会发生什么:-)。在这种情况下,我得出的结论是,除了自己实际调用CloseHandler之外,没有其他(干净且简单)的方式可以以编程方式触发其执行。 -
感谢您的回复。
tabsheet.removeComponent(c)给出相同的行为。我希望能够通过发送像fireSelectedTabChange 这样的 CloseEvent 来调用 CloseHandler,但我在文档中看不到任何允许我这样做的内容。我想我将不得不想出肮脏的解决方案......
标签: vaadin