List of usage examples for com.vaadin.server VaadinService findVaadinSession
public VaadinSession findVaadinSession(VaadinRequest request) throws ServiceException, SessionExpiredException
From source file:edu.nps.moves.mmowgli.Mmowgli2UIProvider.java
License:Open Source License
@Override public Class<? extends UI> getUIClass(UIClassSelectionEvent event) { VaadinService serv = event.getService(); VaadinSession vsess;/*from www . j a v a 2 s. c o m*/ CACData data = (CACData) event.getRequest().getAttribute(CACData.class.getName()); // put in place by Mmowgli2VaadinServlet.sessionInit() if (data != null) // why null sometimes? if (!CACManager.canProceed(data)) { return Mmowgli2CACError.class; } try { vsess = serv.findVaadinSession(event.getRequest()); } catch (SessionExpiredException ex) { return Mmowgli2UILogin.class; } catch (ServiceException sex) { return Mmowgli2UIError.class; } Collection<UI> uis = vsess.getUIs(); int count = uis.size(); if (count == 0) return Mmowgli2UILogin.class; MmowgliSessionGlobals globs = vsess.getAttribute(MmowgliSessionGlobals.class); // if globs != null, just means servlet has been hit, shouldn't be here // if globs ! initted, means Mmowgli2UILogin has not finished init ... send error // if glob ! loggedIn, means Mmowgli2UILogin in the sequence of login screens ... send error // else, send Subsequent UI, which is UI for 2nd and further browser windows/tabs in same user session if (globs != null && globs.initted & globs.isLoggedIn()) { for (UI ui : uis) { if (ui instanceof Mmowgli2UILogin) { // so we've got an initted UI, and the user is logged in return Mmowgli2UISubsequent.class; } } } return Mmowgli2UIError.class; // puts up "incomplete login" verbage }