@Override public UI createInstance(UICreateEvent event) { return (UI) SpringApplicationContext.getApplicationContext().getBean(getUIBeanName(event.getRequest())); }
/** * Create a Vaadin UI using given UI class * @param <T> UI type * @param uiClass UI class to create * @param location Page location * @return UI instance */ @SuppressWarnings("unchecked") protected <T extends UI> T createUi(Class<T> uiClass, String location) { UICreateEvent evt = buildUiCreateEvent(uiClass, location); T ui = (T) uiProvider.createInstance(evt); CurrentInstance.set(UI.class, ui); ui.doInit(evt.getRequest(), TEST_UIID, null); return ui; }
/** * Create a Vaadin UI using given UI class * @param <T> UI type * @param uiClass UI class to create * @param location Page location * @return UI instance */ @SuppressWarnings("unchecked") protected <T extends UI> T createUi(Class<T> uiClass, String location) { UICreateEvent evt = buildUiCreateEvent(uiClass, location); T ui = (T) uiProvider.createInstance(evt); CurrentInstance.set(UI.class, ui); ui.doInit(evt.getRequest(), TEST_UIID, null); return ui; }
@Override public String getTheme(UICreateEvent event) { // get theme from cookies before app ui initialized for smooth theme enabling WebConfig webConfig = configuration.getConfig(WebConfig.class); GlobalConfig globalConfig = configuration.getConfig(GlobalConfig.class); String appWindowTheme = webConfig.getAppWindowTheme(); String userAppTheme = getCookieValue(event.getRequest().getCookies(), App.APP_THEME_COOKIE_PREFIX + globalConfig.getWebContextName()); if (userAppTheme != null) { if (!Objects.equals(userAppTheme, appWindowTheme)) { // check theme support ThemeConstantsRepository themeRepository = AppBeans.get(ThemeConstantsRepository.NAME); Set<String> supportedThemes = themeRepository.getAvailableThemes(); if (supportedThemes.contains(userAppTheme)) { return userAppTheme; } } } return super.getTheme(event); }