List of usage examples for com.vaadin.server VaadinSession getCurrent
public static VaadinSession getCurrent()
From source file:edu.kit.dama.ui.admin.utils.UIHelper.java
License:Apache License
public static UserData getSessionUser() { String userId = (String) VaadinSession.getCurrent().getAttribute("userId"); UserData result = null;/*from www . j a v a 2 s . com*/ if (userId != null) { IMetaDataManager mdm = MetaDataManagement.getMetaDataManagement().getMetaDataManager(); mdm.setAuthorizationContext(AuthorizationContext.factorySystemContext()); try { result = mdm.findSingleResult("SELECT u FROM UserData u WHERE u.distinguishedName=?1", new Object[] { userId }, UserData.class); } catch (UnauthorizedAccessAttemptException ex) { //no user found } finally { mdm.close(); } } return (result == null) ? UserData.WORLD_USER : result; }
From source file:edu.kit.dama.ui.admin.utils.UIHelper.java
License:Apache License
public static GroupId getSessionGroupId() { String userId = (String) VaadinSession.getCurrent().getAttribute("userId"); String groupId = (String) VaadinSession.getCurrent().getAttribute("groupId"); //set userId to WORLD if no user is logged in userId = (userId != null) ? userId : Constants.WORLD_USER_ID; //set groupId to WORLD if no user is logged in, otherwise set it to USERS by default or to the actual value if one is set groupId = (groupId != null) ? groupId : (Constants.WORLD_USER_ID.equals(userId) ? Constants.WORLD_GROUP_ID : Constants.USERS_GROUP_ID); return new GroupId(groupId); }
From source file:edu.kit.dama.ui.admin.utils.UIHelper.java
License:Apache License
public static IAuthorizationContext getSessionContext(GroupId groupId) { String userId = (String) VaadinSession.getCurrent().getAttribute("userId"); //set userId to WORLD if no user is logged in userId = (userId != null) ? userId : Constants.WORLD_USER_ID; try {/*from www . jav a 2 s . co m*/ return AuthorizationUtil.getAuthorizationContext(new UserId(userId), groupId); } catch (AuthorizationException ex) { //failed, return world context return new AuthorizationContext(new UserId(Constants.WORLD_USER_ID), new GroupId(Constants.WORLD_GROUP_ID), Role.GUEST); } }
From source file:es.mdef.clientmanager.ui.GestionClientesUI.java
License:Apache License
@Override protected void init(VaadinRequest vaadinRequest) { VaadinSession.getCurrent().setConverterFactory(new ConverterFactory()); setContent(root);// w w w. j a v a2 s.com root.setSizeFull(); root.addMenu(buildMenu()); buildNavigator(); }
From source file:fr.univlorraine.mondossierweb.MainUI.java
License:Apache License
/** * @see com.vaadin.ui.UI#init(com.vaadin.server.VaadinRequest) *///from w w w. ja va2s . c om @Override protected void init(VaadinRequest request) { LOG.debug("init(); mainUI"); if (PropertyUtils.isPushEnabled() && !PropertyUtils.isWebSocketPushEnabled()) { getPushConfiguration().setTransport(Transport.LONG_POLLING); } //Gestion des erreurs VaadinSession.getCurrent().setErrorHandler(e -> { Throwable cause = e.getThrowable(); while (cause instanceof Throwable) { /* Gre les accs non autoriss */ if (cause instanceof AccessDeniedException) { Notification.show(cause.getMessage(), Type.ERROR_MESSAGE); displayViewFullScreen(AccesRefuseView.NAME); return; } if (cause != null && cause.getClass() != null) { String simpleName = cause.getClass().getSimpleName(); if (PropertyUtils.getListeErreursAIgnorer().contains(simpleName)) { Notification.show(cause.getMessage(), Type.ERROR_MESSAGE); displayViewFullScreen(ErreurView.NAME); return; } } cause = cause.getCause(); } // Traite les autres erreurs normalement LOG.error(e.getThrowable().toString(), e.getThrowable()); // Affiche de la vue d'erreur displayViewFullScreen(ErreurView.NAME); //DefaultErrorHandler.doDefault(e); }); // Affiche le nom de l'application dans l'onglet du navigateur getPage().setTitle(environment.getRequiredProperty("app.name")); //Gestion de l'acces a un dossier prcis via url deepLinking (ne peut pas tre fait dans navigator //car le fragment ne correspond pas une vue existante) getPage().addUriFragmentChangedListener(new UriFragmentChangedListener() { public void uriFragmentChanged(UriFragmentChangedEvent source) { //Si l'application est en maintenance on bloque l'accs if (!applicationActive() && !source.getUriFragment().contains(AccesBloqueView.NAME) && !(source.getUriFragment().contains(AdminView.NAME) && userController.isAdmin())) { displayViewFullScreen(AccesBloqueView.NAME); } else { if (source.getUriFragment().contains("accesDossierEtudiant") && userController.isEnseignant()) { rechercheController.accessToDossierEtudiantDeepLinking(source.getUriFragment()); } /*else{ if(source.getUriFragment().contains("accesNotesEtudiant") && userController.isEnseignant()){ rechercheController.accessToDossierEtudiantDeepLinking(source.getUriFragment()); navigator.navigateTo(NotesView.NAME); } }*/ } } }); //Paramtrage du comportement en cas de perte de connexion configReconnectDialog(); /* Construit le gestionnaire de vues utilis par la barre d'adresse et pour naviguer dans le dossier d'un tudiant */ navigator.addProvider(viewProvider); navigator.setErrorProvider(new ViewProvider() { @Override public String getViewName(final String viewAndParameters) { return ErreurView.NAME; } @Override public View getView(final String viewName) { return viewProvider.getView(ErreurView.NAME); } }); navigator.addViewChangeListener(new ViewChangeListener() { private static final long serialVersionUID = 7905379446201794289L; private static final String SELECTED_ITEM = "selected"; @Override public boolean beforeViewChange(ViewChangeEvent event) { //Avant de se rendre sur une vue, on supprime le style "selected" des objets du menu viewButtons.values().forEach(button -> button.removeStyleName(SELECTED_ITEM)); //Si on tente d'accder la vue admin et que l'utilisateur est admin if (event.getViewName().equals(AdminView.NAME) && userController.userCanAccessAdminView()) { //Afficher la vue admin setContent(adminView); return true; } //Si l'application est en maintenance on bloque l'accs if (!applicationActive() && !event.getViewName().equals(AccesBloqueView.NAME)) { displayViewFullScreen(AccesBloqueView.NAME); return false; } //On bloque l'accs aux vues mobile if (!Utils.isViewDesktop(event.getViewName())) { return false; } //On bloque l'accs aux vues enseignants if (Utils.isViewEnseignant(event.getViewName())) { //Si utilisateur n'est pas enseignant if (!userController.isEnseignant()) { //acces bloque return false; } else { //Affichage de la vue enseignant demande if (event.getViewName().equals(FavorisView.NAME)) { navigateToFavoris(); return true; } if (event.getViewName().equals(ListeInscritsView.NAME)) { navigateToListeInscrits(null); return true; } if (event.getViewName().equals(RechercheRapideView.NAME)) { navigateToRechercheRapide(); return true; } if (event.getViewName().equals(RechercheArborescenteView.NAME)) { navigateToRechercheArborescente(null); return true; } return false; //la vue enseignant demande n'est pas gr (ex :vue mobile appele depuis la version desktop) } } return true; } @Override public void afterViewChange(ViewChangeEvent event) { //On rcupre l'lment du menu concern par la vue afficher Button button = viewButtons.get(event.getViewName()); if (button instanceof Button) { //on applique le style "selected" sur l'objet du menu concern par la vue affiche button.addStyleName(SELECTED_ITEM); } } }); //init du tracker initAnalyticsTracker(); //mainVerticalLayout est le contenu principal de la page setContent(mainVerticalLayout); //Si utilisateur enseignant ou tudiant if (userController.isEnseignant() || userController.isEtudiant()) { if (!applicationActive()) { displayViewFullScreen(AccesBloqueView.NAME); } else { //On rcupre l'IP du client GenericUI.getCurrent().getIpClient(); /* Parametre le layoutDossierEtudiant */ menuLayout.setPrimaryStyleName(ValoTheme.MENU_ROOT); //Le contentLayout est scrollable si besoin contentLayout.addStyleName("v-scrollable"); //contentLayout prend toute la place possible contentLayout.setSizeFull(); //le contentLayout prend toute la place disponible dans le layoutDossierEtudiant layoutDossierEtudiant.setExpandRatio(contentLayout, 1); //layoutDossierEtudiant prend toute la place possible layoutDossierEtudiant.setSizeFull(); //Si user enseignant if (userController.isEnseignant()) { //On consultera les notes en vue enseignant vueEnseignantNotesEtResultats = true; //Construit le menu horizontal pour les enseignants tabSheetGlobal.setSizeFull(); tabSheetGlobal.addStyleName(ValoTheme.TABSHEET_FRAMED); rangTabRecherche = 0; rangTabDossierEtudiant = 1; //ajout de l'onglet principal 'recherche' layoutOngletRecherche = new VerticalLayout(); ajoutOngletRecherche(); layoutOngletRecherche.setSizeFull(); tabSheetGlobal.addTab(layoutOngletRecherche, applicationContext.getMessage("mainUI.recherche.title", null, getLocale()), FontAwesome.SEARCH); //ajout de l'onglet principal 'assistance' tabSheetGlobal.addTab(assistanceView, applicationContext.getMessage(assistanceView.NAME + ".title", null, getLocale()), FontAwesome.SUPPORT); //ajout de l'onglet dossier tudiant addTabDossierEtudiant(); //Ce tabSheet sera align droite tabSheetGlobal.addStyleName("right-aligned-tabs"); //Le menu horizontal pour les enseignants est dfinit comme tant le contenu de la page mainVerticalLayout.addComponent(tabSheetGlobal); mainVerticalLayout.setSizeFull(); mainVerticalLayout.setExpandRatio(tabSheetGlobal, 1); } else { //On consultera les notes en vue etudiant vueEnseignantNotesEtResultats = false; //User Etudiant //Le Dossier est dfinit comme tant le contenu de la page mainVerticalLayout.addComponent(layoutDossierEtudiant); mainVerticalLayout.setSizeFull(); mainVerticalLayout.setExpandRatio(layoutDossierEtudiant, 1); //On renseigne l'tudiant dont on consulte le dossier //Rcupration du cod_etu etudiant = new Etudiant( daoCodeLoginEtudiant.getCodEtuFromLogin(userController.getCurrentUserName())); LOG.debug("MainUI etudiant : " + MainUI.getCurrent().getEtudiant().getCod_etu()); //Rcupration de l'tat-civil (et les adresses) etudiantController.recupererEtatCivil(); //On construit le menu affich l'tudiant buildMainMenuEtudiant(); } /* Enregistre l'UI pour la rception de notifications */ uiController.registerUI(this); boolean navigationComplete = false; String fragment = Page.getCurrent().getUriFragment(); if (fragment != null && !fragment.isEmpty()) { //Cas de l'appel initial de l'application via l'url vers la vue admin (sinon le cas est grer dans le listener du navigator if (fragment.contains("adminView") && userController.userCanAccessAdminView()) { //Afficher la vue admin navigator.navigateTo(AdminView.NAME); navigationComplete = true; } if (fragment.contains("accesDossierEtudiant") && userController.isEnseignant()) { rechercheController.accessToDossierEtudiantDeepLinking(fragment); navigationComplete = true; } /*if(fragment.contains("accesNotesEtudiant") && userController.isEnseignant()){ rechercheController.accessToDossierEtudiantDeepLinking(fragment); navigator.navigateTo(NotesView.NAME); navigationComplete=true; }*/ } if (!navigationComplete) { //PROBLEME DU F5 : on passe ici (init()) que quand on reinitialise l'UI ou en cas d'erreur. //On ne peut donc pas rediriger vers des vues qui utilisent des variables non initialises (ex : Main.getCurrent.getEtudiant) if (!applicationActive()) { displayViewFullScreen(AccesBloqueView.NAME); } else { //Si utilisateur enseignant if (userController.isEnseignant()) { //Rcupration des favoris pour l'utilisateur List<Favoris> lfav = favorisController.getFavoris(); if (lfav != null && lfav.size() > 0) { //On affiche la vue des favoris navigator.navigateTo(FavorisView.NAME); } else { //On affiche la vue de recherche rapide navigator.navigateTo(RechercheRapideView.NAME); } //Affichage du message d'intro si besoin afficherMessageIntroEnseignants(false, true); } else { //Si utilisateur tudiant if (userController.isEtudiant()) { //On affiche la vue de l'tat-civil navigator.navigateTo(EtatCivilView.NAME); //Affichage du message d'intro si besoin afficherMessageIntroEtudiants(); } else { //On affiche la vue d'erreur displayViewFullScreen(ErreurView.NAME); } } } } } } else { //Si utilisateur n'est ni enseignant, ni tudiant //On affiche la vue accs refus displayViewFullScreen(AccesRefuseView.NAME); } }
From source file:fr.univlorraine.mondossierweb.MdwTouchkitUI.java
License:Apache License
@Override protected void init(VaadinRequest request) { VaadinSession.getCurrent().setErrorHandler(e -> { Throwable cause = e.getThrowable(); while (cause instanceof Throwable) { /* Gre les accs non autoriss */ if (cause instanceof AccessDeniedException) { Notification.show(cause.getMessage(), Type.ERROR_MESSAGE); afficherMessageAccesRefuse(); return; }// www .ja v a 2 s . c o m if (cause != null && cause.getClass() != null) { String simpleName = cause.getClass().getSimpleName(); if (PropertyUtils.getListeErreursAIgnorer().contains(simpleName)) { Notification.show(cause.getMessage(), Type.ERROR_MESSAGE); navigator.navigateTo(ErreurView.NAME); return; } } cause = cause.getCause(); } /* Traite les autres erreurs normalement */ LOG.error(e.getThrowable().toString(), e.getThrowable()); // Affiche de la vue d'erreur navigator.navigateTo(ErreurView.NAME); }); //Le contenu principal n'est pas scrollable. Par contre les lment l'intrieur pourront l'tre setStyleName("v-noscrollableelement"); //Le contentLayout prend toute la place disponible contentLayout.setSizeFull(); /* Affiche le nom de l'application dans l'onglet du navigateur */ getPage().setTitle(environment.getRequiredProperty("app.name")); /* Gestion de l'acces a un dossier prcis via url deepLinking (ne peut pas tre fait dans navigator car le fragment ne correspond pas une vue existante) */ getPage().addUriFragmentChangedListener(new UriFragmentChangedListener() { public void uriFragmentChanged(UriFragmentChangedEvent source) { //On bloque l'accs aux vues desktop /* if(!Utils.isViewMobile(source.getUriFragment())){ afficherMessageAccesRefuse(); }*/ //Si l'application est en maintenance on bloque l'accs if (!applicationActive() && !source.getUriFragment().contains(AccesBloqueView.NAME)) { afficherMessageMaintenance(); } } }); /* Ex de Device Detection */ Device currentDevice = DeviceUtils.getCurrentDevice((HttpServletRequest) request); if (currentDevice.isMobile()) LOG.debug("device : mobile"); if (currentDevice.isTablet()) LOG.debug("device : tablet"); if (currentDevice.isNormal()) LOG.debug("device : normal"); //Paramtrage du comportement en cas de perte de connexion configReconnectDialog(); /* Construit le gestionnaire de vues */ navigator.addProvider(viewProvider); navigator.setErrorProvider(new ViewProvider() { @Override public String getViewName(final String viewAndParameters) { return ErreurView.NAME; } @Override public View getView(final String viewName) { return viewProvider.getView(ErreurView.NAME); } }); navigator.addViewChangeListener(new ViewChangeListener() { private static final long serialVersionUID = 9183991275107545154L; @Override public boolean beforeViewChange(ViewChangeEvent event) { //On bloque l'accs aux vues desktop if (!Utils.isViewMobile(event.getViewName())) { return false; } //Si l'application est en maintenance on bloque l'accs if (!applicationActive() && !event.getViewName().equals(AccesBloqueView.NAME)) { afficherMessageMaintenance(); return false; } return true; } @Override public void afterViewChange(ViewChangeEvent event) { // TODO Auto-generated method stub } }); //init du tracker initAnalyticsTracker(); //contentLayout est le contenu principal de la page setContent(contentLayout); // Si l'utilisateur est enseignant ou tudiant if (userController.isEnseignant() || userController.isEtudiant()) { if (!applicationActive()) { afficherMessageMaintenance(); } else { //On rcupre l'IP du client GenericUI.getCurrent().getIpClient(); // Si l'utilisateur est enseignant if (userController.isEnseignant()) { //On consultera les notes en vue enseignant vueEnseignantNotesEtResultats = true; //On se rend par dfaut la vue des favoris navigator.navigateTo(FavorisMobileView.NAME); //On affiche le message d'intro afficherMessageIntroEnseignants(); } else { // Si l'utilisateur est tudiant //On consultera les notes en vue etudiant vueEnseignantNotesEtResultats = false; //On rcupre le codetu de l'tudiant String codetu = daoCodeLoginEtudiant.getCodEtuFromLogin(userController.getCurrentUserName()); etudiant = new Etudiant(codetu); try { //On rcupre l'tat-civil et les adresses de l'tudiant etudiantController.recupererEtatCivil(); //Si on a eu une erreur la rcupration de l'tat-civil if (GenericUI.getCurrent().getEtudiant() == null) { navigator.navigateTo(ErreurView.NAME); } else { //On rcupre le calendrier de l'tudiant etudiantController.recupererCalendrierExamens(); //On rcupre les notes de l'tudiant etudiantController.recupererNotesEtResultats(etudiant); //On affiche le dossier navigateToDossierEtudiant(); } } catch (WebBaseException ex) { LOG.error( "Probleme avec le WS lors de la recherche de l'tat-civil pour etudiant dont codetu est : " + codetu, ex); navigator.navigateTo(ErreurView.NAME); } catch (Exception ex) { LOG.error("Probleme lors de la recherche de l'tat-civil pour etudiant dont codetu est : " + codetu, ex); navigator.navigateTo(ErreurView.NAME); } } } } else { //Utilisateur ni enseignant, ni tudiant, on le redirige vers la vue accs refus afficherMessageAccesRefuse(); } }
From source file:fr.univlorraine.mondossierweb.MdwTouchkitUIProvider.java
License:Apache License
@Override public UI createInstance(UICreateEvent event) { //Nom de la classe UI utiliser String uiBeanNameObj = ""; //Rcupration du userAgent String userAgent = event.getRequest().getHeader("user-agent").toLowerCase(); // on teste que l'utilisateur est sous WP ou accde via un navigateur compatible webkit if (userAgent.contains("webkit") || userAgent.contains("windows phone 8") || userAgent.contains("windows phone 9")) { //On va vers la version mobile LOG.debug("-uiBeanNameObj = mdwTouchkitUI"); uiBeanNameObj = "mdwTouchkitUI"; } else {/*from w w w. j a va 2 s .c om*/ //On affiche la page proposant une redirection vers la version Desktop LOG.debug("-uiBeanNameObj = mdwFallbackUI"); uiBeanNameObj = "mdwFallbackUI"; } //Stored in VaadinSession to use it in // the ApplicationScope later to initialize vaadin application scope beans final Integer uiId = event.getUiId(); VaadinSession.getCurrent().setAttribute("applicationScope.UiId", uiId); //On retourne l'UI dcide plus haut (desktop ou mobile) if (uiBeanNameObj instanceof String) { String uiBeanName = uiBeanNameObj.toString(); return (UI) this.getWebApplicationContext().getBean(uiBeanName); } return super.createInstance(event); }
From source file:fr.univlorraine.mondossierweb.MdwUIProvider.java
License:Apache License
@Override public UI createInstance(UICreateEvent event) { //Nom de la classe UI utiliser String uiBeanNameObj = ""; //Rcupration du userAgent String userAgent = event.getRequest().getHeader("user-agent").toLowerCase(); /* Device Detection */ Device currentDevice = DeviceUtils.getCurrentDevice((HttpServletRequest) event.getRequest()); // on teste que l'utilisateur est sur smartphone et avec un navigateur compatible webkit ou sous WP if (currentDevice.isMobile() && (userAgent.contains("webkit") || userAgent.contains("windows phone 8") || userAgent.contains("windows phone 9"))) { //On affiche la page proposant une redirection vers la version Mobile LOG.debug("-FallbackTouchkit UI provided (" + userAgent + ")"); uiBeanNameObj = "mdwFallbackTouchkitUI"; } else {/*from w ww.j a v a2 s . c o m*/ //On va vers la version desktop LOG.debug("-uiBeanNameObj = mainUI"); uiBeanNameObj = "mainUI"; } //Stored in VaadinSession to use it in // the ApplicationScope later to initialize vaadin application scope beans final Integer uiId = event.getUiId(); VaadinSession.getCurrent().setAttribute("applicationScope.UiId", uiId); //On retourne l'UI dcide plus haut (desktop ou mobile) if (uiBeanNameObj instanceof String) { String uiBeanName = uiBeanNameObj.toString(); return (UI) this.getWebApplicationContext().getBean(uiBeanName); } return super.createInstance(event); }
From source file:io.github.jikuja.vaadin_yamapa.ui.views.PoiMap.java
License:Creative Commons License
private void setupMap() { // sane default zoom VaadinSession session = VaadinSession.getCurrent(); if (session.getAttribute("lat") != null) { map.setCenter(new Point((Double) session.getAttribute("lat"), (Double) session.getAttribute("lon")), 14.0);/* w ww. j av a 2s.com*/ } else { map.setCenter(new Point(60.440963, 22.25122), 14.0); } // single click / tapping is used to add POIs // using context meny would be even nicer thing to have. Maybe later map.setDoubleClickZoomEnabled(false); setupClickHandlers(); }
From source file:io.github.jikuja.vaadin_yamapa.ui.views.PoiMap.java
License:Creative Commons License
private void setupClickHandlers() { map.addClickListener(event -> {//from w ww. j av a 2 s . c om if (event.getSource() == map && VaadinSession.getCurrent().getAttribute("userid") != null) { Object iid = items.addItem(); PoiForm form = new PoiForm("New POI", items, iid, event.getPoint().getLat(), event.getPoint().getLon()); UI.getCurrent().addWindow(form); } }); }