下面列出了怎么用com.vaadin.server.UICreateEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@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);
}
@Override
public UI createInstance(final UICreateEvent event) {
final Class<UIID> key = UIID.class;
final UIID identifier = new UIID(event);
CurrentInstance.set(key, identifier);
try {
logger.debug("Creating a new UI bean of class [{}] with identifier [{}]",
event.getUIClass().getCanonicalName(), identifier);
final UI ui = getWebApplicationContext().getBean(event.getUIClass());
getSpringViewDisplayRegistrationBean().setBeanClass(event.getUIClass());
configureNavigator(ui);
return ui;
} finally {
CurrentInstance.set(key, null);
}
}
@Override
public PushMode getPushMode(UICreateEvent event) {
WebConfig webConfig = configuration.getConfig(WebConfig.class);
if (!webConfig.getPushEnabled()) {
return PushMode.DISABLED;
}
return super.getPushMode(event);
}
@Override
public Transport getPushTransport(UICreateEvent event) {
WebConfig webConfig = configuration.getConfig(WebConfig.class);
if (webConfig.getUsePushLongPolling()) {
return Transport.LONG_POLLING;
}
return super.getPushTransport(event);
}
@Override
public UI createInstance(UICreateEvent event) {
ApplicationContext ctx = VaadinUtils.getApplicationContext();
CurrentInstance.set(UIid.class, new UIid(event.getUiId()));
UI ui = this.uiMapping.getUi(event.getRequest());
if (ui == null)
ui = ctx.getBean(event.getUIClass());
CurrentInstance.set(UIid.class, null);
return ui;
}
@Override
public UI createInstance(UICreateEvent event) {
return AppBeans.getPrototype(AppUI.NAME);
}
@Override
public UI createInstance(UICreateEvent event) {
return IngestServletContextListener.injector().getProvider(uiClass).get();
}