У меня есть табличка Ваадина. Все вкладки являются закрываемыми. Я определил пользовательский CloseHandler. Когда Tab закрывается с помощью маленькой кнопки x, выполняется CloseHadler; однако, если я закрою вкладку программноПринуждение к таблице Ваадина для использования CloseHandler
TabSheet parent = (TabSheet) this.getParent();
parent.removeTab(parent.getTab(this));
Тесный обработчик не выполняется. Есть ли способ заставить CloseHandler выполнить перед удалением Tab.
Спасибо,
Оливер
Если вы посмотрите на [источники] (https://github.com/vaadin/vaadin/blob/master/server/src/com/vaadin/ui/ TabSheet.java) вы заметите, что конструктор 'TabSheet' определяет по умолчанию' CloseListener', который просто вызывает 'tabsheet.removeComponent (c)', что и делает 'removeTab (вкладка Tab)'. Угадайте, что произойдет, если вы позвоните другому :-). В таких обстоятельствах я бы пришел к выводу, что, помимо собственно вызова «CloseHandler» самостоятельно, нет другого (чистого и простого) способа программного запуска его выполнения. – Morfic
Спасибо за ваш ответ. 'tabsheet.removeComponent (c)' дает такое же поведение. Я надеялся, что сможет вызвать CloseHandler, отправив CloseEvent, например [fireSelectedTabChange] (https://vaadin.com/api/com/vaadin/ui/TabSheet.html#fireSelectedTabChange%28%29), но я не см. что-нибудь в документации, которая позволила бы мне это сделать. Думаю, мне придется придумать грязное решение ... –