Добрый день уважаемые разработчики. В некоторых screen’ах потребовалось отключить кнопку закрыть TAB(управление из меню), подскажите как бы ее отключить. Большое спасибо!
П.с. мультитаб отключен.
Добрый день уважаемые разработчики. В некоторых screen’ах потребовалось отключить кнопку закрыть TAB(управление из меню), подскажите как бы ее отключить. Большое спасибо!
П.с. мультитаб отключен.
Добрый день, @mr.vvatcher!
Попробуйте воспользоваться следующим кодом:
@Subscribe
public void onInit(InitEvent event) {
getWindow().setCloseable(false);
}
С уважением,
Глеб
Однако это навело меня на мысли попробовать AfterShowEvent с тем же кодом, я попробовал, и если в случае с кодом @durygin кнопка работала, то в случае с AfterShowEvent кнопка отображается но уже не работает.
@mr.vvatcher, да, вы правы, нужно подписаться на AfterShowEvent
:
@Subscribe
protected void onAfterShow(AfterShowEvent event) {
getWindow().setCloseable(false);
}
С уважением,
Глеб
@mr.vvatcher, попробуйте воспользоваться следующим кодом:
@UiController("sample_")
@UiDescriptor("new-screen.xml")
public class NewScreen extends Screen {
@Inject
protected Screens screens;
@Inject
protected UserSettingsTools userSettingsTools;
@Subscribe
protected void onAfterShow(AfterShowEvent event) {
Screen rootScreen = screens.getOpenedScreens().getRootScreen();
Component workAreaComponent = rootScreen.getWindow().getComponent("workArea");
if (workAreaComponent instanceof AppWorkArea) {
AppWorkArea.Mode appWindowMode = userSettingsTools.loadAppWindowMode();
if (AppWorkArea.Mode.TABBED == appWindowMode) {
// cuba.web.appWindowMode = TABBED
TabSheetBehaviour tabSheet = ((WebAppWorkArea) workAreaComponent).getTabbedWindowContainer().getTabSheetBehaviour();
TabWindowContainer windowContainer = (TabWindowContainer) tabSheet.getSelectedTab();
String tabId = tabSheet.getTab(windowContainer);
tabSheet.setTabClosable(tabId, false);
} else if (AppWorkArea.Mode.SINGLE == appWindowMode) {
// cuba.web.appWindowMode = SINGLE
CubaSingleModeContainer singleModeContainer = ((WebAppWorkArea) workAreaComponent).getSingleWindowContainer();
TabWindowContainer windowContainer = (TabWindowContainer) singleModeContainer.getWindowContainer();
if (windowContainer != null) {
WindowBreadCrumbs breadCrumbs = windowContainer.getBreadCrumbs();
breadCrumbs.getComponent(breadCrumbs.getComponentCount() - 1);
com.vaadin.ui.Component closeBtn = breadCrumbs.getComponent(breadCrumbs.getComponentCount() - 1);
if (closeBtn instanceof CubaButton
&& "c-closetab-button".equals(closeBtn.getStyleName())) {
closeBtn.setVisible(false);
}
}
}
}
}
}
С уважением,
Глеб
Работает! Спасибо большое!