Example usage for com.vaadin.server VaadinService findVaadinSession

List of usage examples for com.vaadin.server VaadinService findVaadinSession

Introduction

In this page you can find the example usage for com.vaadin.server VaadinService findVaadinSession.

Prototype

public VaadinSession findVaadinSession(VaadinRequest request) throws ServiceException, SessionExpiredException 

Source Link

Document

Attempts to find a Vaadin service session associated with this request.

Usage

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
}