И снова здравствуйте!
Версия 2.1.2. Столкнулся с необходимостью скрывать таблицу tab
в элементе tabSheet
в зависимости от условий (если конкретнее, от параметра, переданного в экран при открытии, но это не суть).
Инжектировал в экран следующий компонент:
@ViewComponent("tabSheet1.tab3")
private Tab tabSheet1Tab3;
Как можно догадаться, tabSheet
имеет id=tabSheet1
, а таблица под номером 3 имеет id=tab3
в xml-дескрипторе.
В методе прописал следующее:
@Subscribe
public void onBeforeShow(final BeforeShowEvent event) {
if (mode.equals("new")) {
tabSheet1Tab3.setVisible(false);
}
}
там ещё много чего в методе, но это не нужно.
В итоге получаем:
NullPointerException: Cannot invoke "com.vaadin.flow.component.tabs.Tab.setVisible(boolean)" because "this.tabSheet1Tab3" is null
Удалось обойти эту ошибку и добиться желаемого, если добавить в контроллер:
@ViewComponent
private JmixTabSheet tabSheet1;
и в метод beforeShow
:
Tab tab3 = tabSheet1.getTabAt(2);
tab3.setVisible(false);
Я где-то видел что можно создавать какие-то “тикеты”, чтобы их поправили в последующих патчах, если эта тема подходит под это, скиньте гайд пожалуйста.
Ну или если я что-то не так понял, то поправьте))