Example usage for com.vaadin.navigator Navigator addViewChangeListener

List of usage examples for com.vaadin.navigator Navigator addViewChangeListener

Introduction

In this page you can find the example usage for com.vaadin.navigator Navigator addViewChangeListener.

Prototype

public Registration addViewChangeListener(ViewChangeListener listener) 

Source Link

Document

Listen to changes of the active view.

Usage

From source file:com.constellio.app.ui.pages.base.MainLayoutImpl.java

public MainLayoutImpl(AppLayerFactory appLayerFactory) {
    this.presenter = new MainLayoutPresenter(this);

    mainMenuContentFooterLayout = new HorizontalLayout();
    mainMenuContentFooterLayout.setSizeFull();
    mainMenuContentFooterLayout.addStyleName("main-menu-content-footer");

    contentViewWrapper = new Panel();

    Navigator navigator = new Navigator(UI.getCurrent(), contentViewWrapper);
    NavigatorConfigurationService navigatorConfigurationService = appLayerFactory
            .getNavigatorConfigurationService();
    navigatorConfigurationService.configure(navigator);
    UI.getCurrent().setNavigator(navigator);

    contentFooterWrapperLayout = new CssLayout();
    contentFooterWrapperLayout.setId("content-footer-wrapper");

    contentFooterLayout = new VerticalLayout();
    contentFooterLayout.addStyleName("content-footer");

    header = buildHeader();/*from w  w w  .ja  v a2 s .  com*/
    header.setSizeUndefined();

    mainMenu = buildMainMenu();

    userDocumentsWindow = new UserDocumentsWindow();
    dragAndDropWrapper = new DragAndDropWrapper(mainMenuContentFooterLayout);
    dragAndDropWrapper.setSizeFull();
    dragAndDropWrapper.setDropHandler(userDocumentsWindow);
    navigator.addViewChangeListener(new ViewChangeListener() {
        @Override
        public boolean beforeViewChange(ViewChangeEvent event) {
            return true;
        }

        @Override
        public void afterViewChange(ViewChangeEvent event) {
            View newView = event.getNewView();
            if (newView instanceof NoDragAndDrop) {
                dragAndDropWrapper.setDropHandler(null);
            } else if (newView instanceof DropHandler) {
                dragAndDropWrapper.setDropHandler((DropHandler) newView);
            } else {
                List<DropHandler> viewDropHandlers = ComponentTreeUtils.getChildren((Component) newView,
                        DropHandler.class);
                if (viewDropHandlers.size() > 1) {
                    dragAndDropWrapper.setDropHandler(null);
                } else if (viewDropHandlers.size() == 1) {
                    dragAndDropWrapper.setDropHandler(viewDropHandlers.get(0));
                } else if (dragAndDropWrapper.getDropHandler() != userDocumentsWindow) {
                    dragAndDropWrapper.setDropHandler(userDocumentsWindow);
                }
            }
            //            SerializationUtils.clone(event.getOldView());
            //            SerializationUtils.clone(newView);
        }
    });

    addComponent(header);
    addComponent(dragAndDropWrapper);
    setExpandRatio(dragAndDropWrapper, 1);

    mainMenuContentFooterLayout.addComponent(mainMenu);
    mainMenuContentFooterLayout.addComponent(contentFooterWrapperLayout);
    mainMenuContentFooterLayout.setExpandRatio(contentFooterWrapperLayout, 1);

    contentFooterWrapperLayout.addComponent(contentFooterLayout);

    contentFooterLayout.addComponent(contentViewWrapper);

    Component message = buildMessage();
    if (message != null) {
        message.addStyleName("message");
        contentFooterLayout.addComponent(message);
    }

    contentFooterLayout.setExpandRatio(contentViewWrapper, 1);

    Component footer = buildFooter();
    if (footer != null) {
        contentFooterLayout.addComponent(footer);
    }

    Component license = buildLicense();
    if (license != null) {
        license.addStyleName("license");
    }

    PagesComponentsExtensionParams params = new PagesComponentsExtensionParams(header, mainMenu,
            contentFooterLayout, this, contentViewWrapper, contentFooterWrapperLayout, presenter.getUser());
    appLayerFactory.getExtensions().getSystemWideExtensions().decorateView(params);
    String collection = ConstellioUI.getCurrentSessionContext().getCurrentCollection();
    if (collection != null) {
        appLayerFactory.getExtensions().forCollection(collection).decorateView(params);
    }

    buildInitJavascript();
}

From source file:com.github.djabry.platform.vaadin.navigation.NavigationSecurity.java

License:Open Source License

@EventBusListenerMethod(scope = EventScope.UI, filter = StartupFilter.class)
public void registerSecurityListener(Action action) {

    Navigator navigator = UI.getCurrent().getNavigator();
    navigator.addViewChangeListener(new ViewChangeListener() {
        @Override/* w  ww .  ja  v  a  2  s.  co m*/
        public boolean beforeViewChange(ViewChangeEvent event) {
            View newView = event.getNewView();

            if (!isSecuredObject(newView)) {
                //return true;
            }

            try {
                newView.enter(event);
                return true;

            } catch (org.springframework.security.access.AccessDeniedException accessDeniedException) {
                log.warning("Attempted to navigate to page without necessary authorization: "
                        + event.getViewName());
                //throw accessDeniedException;
            }

            return false;
        }

        @Override
        public void afterViewChange(ViewChangeEvent event) {

        }
    });

    log.info("Registed navigator security listener");

}

From source file:com.logs.mavfun2.ExampleUI.java

License:Apache License

@Override
protected void init(VaadinRequest request) {
    Navigator navigator = new Navigator(this, this);
    navigator.addViewChangeListener(this);

    navigator.addView("", LoginView.class);
    if (SecurityUtils.getSubject().isAuthenticated()) {
        getUI().getNavigator().addView("secure", SecureView.class);
    }/*from   www  . j  a v  a  2  s  .c  om*/
    navigator.setErrorView(ErrorView.class);
}

From source file:com.lst.deploymentautomation.vaadin.core.LspsUI.java

License:Open Source License

private void initNavigation() {
    Navigator navigator = new AppNavigator(getUI(), appLayout);
    navigator.addView(TodoListView.ID, TodoListView.class);
    navigator.addView(DocumentsView.ID, DocumentsView.class);
    navigator.addView(RunModelView.ID, RunModelView.class);
    navigator.addView(SettingsView.ID, SettingsView.class);
    navigator.addView(TodoView.ID, TodoView.class); //expects to-do ID as parameter
    navigator.addView(DocumentView.ID, DocumentView.class); //expects document ID as parameter + optional document parameters aded as ?key=val&key=val
    navigator.addView(FormPreviewView.ID, FormPreviewView.class); //expects model instance ID + '/' + form expression as parameter

    navigator.setErrorProvider(new ViewProvider() {

        private static final long serialVersionUID = 1L;

        @Override// w w  w .ja  v a 2  s.  co  m
        public String getViewName(String viewAndParameters) {
            return viewAndParameters;
        }

        @Override
        public View getView(String viewName) {
            return new EmptyView();
        }
    });

    navigator.addViewChangeListener(new ViewChangeListener() {

        private static final long serialVersionUID = 1L;

        @Override
        public boolean beforeViewChange(ViewChangeEvent event) {
            return true;
        }

        @Override
        public void afterViewChange(ViewChangeEvent event) {
            //update navigation menu
            String parameters = event.getParameters();
            boolean hasParameters = parameters != null && !parameters.isEmpty();
            appLayout.viewChanged(event.getViewName() + (hasParameters ? "/" + parameters : ""));

            //update page title
            View view = event.getNewView();
            Page page = event.getNavigator().getUI().getPage();
            String title = (view instanceof AppView) ? ((AppView) view).getTitle() : null;
            page.setTitle(getMessage("application.title") + (title == null ? "" : ": " + title));
        }
    });
}

From source file:com.mcparland.john.vaadin_mvn_arch.samples.MainScreen.java

License:Apache License

public MainScreen(MyUI ui) {

    setStyleName("main-screen");

    CssLayout viewContainer = new CssLayout();
    viewContainer.addStyleName("valo-content");
    viewContainer.setSizeFull();/* w ww .j av  a2  s.  c  o  m*/

    final Navigator navigator = new Navigator(ui, viewContainer);
    navigator.setErrorView(ErrorView.class);
    menu = new Menu(navigator);
    menu.addView(new SampleCrudView(), SampleCrudView.VIEW_NAME, SampleCrudView.VIEW_NAME, FontAwesome.EDIT);
    menu.addView(new AboutView(), AboutView.VIEW_NAME, AboutView.VIEW_NAME, FontAwesome.INFO_CIRCLE);

    navigator.addViewChangeListener(viewChangeListener);

    addComponent(menu);
    addComponent(viewContainer);
    setExpandRatio(viewContainer, 1);
    setSizeFull();
}

From source file:com.snowy.MyVaadinUI.java

@Override
protected void init(VaadinRequest request) {
    //d = new data(template);
    if (Page.getCurrent().getWebBrowser().isTooOldToFunctionProperly()) {
        Page.getCurrent().setLocation("https://www.google.com/chrome/browser/");
    }/*from w ww. j a  v  a2  s .  c  om*/
    //VaadinService.getCurrent().
    Page.getCurrent().setTitle("Connect 4");

    d = new data();
    //this.access(()->{

    //n.addView("postLogin", new PostLoginView());
    //Navigator n = this.getNavigator();
    //n.addProvider();
    //});
    /*
    final TextField name = new TextField();
    name.setCaption("Type your name here:");
            
    Button button = new Button("Click Me");
    button.addClickListener( e -> {
    layout.addComponent(new Label("Thanks " + name.getValue() 
            + ", it works!"));
    });
    */
    JavaScript.getCurrent().addFunction("closeMyApplication", new JavaScriptFunction() {
        @Override
        public void call(JsonArray arguments) {
            //Logger.getLogger(MyVaadinUI.class.getName()).info(VaadinSession.getCurrent().getCsrfToken());
            d.logout(VaadinSession.getCurrent().getCsrfToken());
            //new data().setInActive(VaadinSession.getCurrent().getCsrfToken());
            //VaadinSession.getCurrent().close();
        }

    });

    Page.getCurrent().getJavaScript().execute(
            "window.onbeforeunload = function (e) { var e = e || window.event; closeMyApplication(); return; };");
    VaadinService.getCurrent().addSessionDestroyListener(e -> {
        //Logger.getLogger(MyVaadinUI.class.getName()).info(e.getSession().getCsrfToken());
        d.logout(e.getSession().getCsrfToken());

    });

    //Navigator n = new Navigator(this,this);
    //n.addView("Main", new PostLoginView());
    //        this.setNavigator(n);
    //layout.setComponentAlignment(MainL, Alignment.TOP_CENTER);
    this.setPollInterval(1000);
    this.addPollListener((UIEvents.PollEvent e) -> {
        if (e.getUI().getContent().toString().contains("PostLoginView")) {
            PostLoginView plv = (PostLoginView) e.getUI().getContent();
            d.resetActiveIfNot();
            plv.getChatWindow().getUsersList().retrieveActiveUsers();

            plv.getChatWindow().updateChats();
            plv.getGameWindow().updateRequests();
            plv.getGameWindow().updateGames();
            plv.getGameWindow().checkForNewGames();
            //Logger.getLogger(MyVaadinUI.class.getName()).log(Level.INFO,plv.getChatWindow().getUsersList().getValue().toString());
        }

    });
    Navigator navigator = new Navigator(this, this);
    navigator.addProvider(viewProvider);

    navigator.addViewChangeListener(new ViewChangeListener() {
        @Override
        public boolean beforeViewChange(ViewChangeListener.ViewChangeEvent event) {

            if (Page.getCurrent().getLocation().getPath().equals("/")
                    || VaadinSession.getCurrent().getAttribute("token") != null) {

                return true;
            } else {

                //Notification.show(,Notification.Type.ERROR_MESSAGE);
                return false;
            }
        }

        @Override
        public void afterViewChange(ViewChangeListener.ViewChangeEvent event) {

        }

    });

    /*UI.getCurrent().setErrorHandler(new DefaultErrorHandler(){
     @Override
     public void error(com.vaadin.server.ErrorEvent event) {
         UI.getCurrent().setContent(new Label("error"));
     }
                
    });*/
    //VaadinService.createCriticalNotificationJSON("","", "", "");
    //navigator.setErrorView(navigator.getCurrentView());
    //layout.setComponentAlignment(link, Alignment.MIDDLE_CENTER);
    //setContent(new Login());

}

From source file:de.symeda.sormas.ui.MainScreen.java

License:Open Source License

public MainScreen(SormasUI ui) {

    CssLayout viewContainer = new CssLayout();
    viewContainer.setSizeFull();/*from   w ww . jav  a  2s  .  c o m*/
    viewContainer.addStyleName("sormas-content");

    final Navigator navigator = new Navigator(ui, viewContainer);
    navigator.setErrorProvider(new ViewProvider() {
        @Override
        public String getViewName(String viewAndParameters) {
            return viewAndParameters;
        }

        @Override
        public View getView(String viewName) {
            try {
                // Add new views to this clause to make sure that the right error page is shown
                if (viewName.equals(SurveillanceDashboardView.VIEW_NAME)
                        || viewName.equals(ContactsDashboardView.VIEW_NAME)
                        || viewName.equals(TasksView.VIEW_NAME) || viewName.equals(CasesView.VIEW_NAME)
                        || viewName.equals(ContactsView.VIEW_NAME) || viewName.equals(EventsView.VIEW_NAME)
                        || viewName.equals(SamplesView.VIEW_NAME) || viewName.equals(ReportsView.VIEW_NAME)
                        || viewName.equals(StatisticsView.VIEW_NAME) || viewName.equals(UsersView.VIEW_NAME)
                        || viewName.equals(OutbreaksView.VIEW_NAME) || viewName.equals(RegionsView.VIEW_NAME)
                        || viewName.equals(DistrictsView.VIEW_NAME)
                        || viewName.equals(CommunitiesView.VIEW_NAME)
                        || viewName.equals(HealthFacilitiesView.VIEW_NAME)
                        || viewName.equals(LaboratoriesView.VIEW_NAME)
                        || viewName.equals(PointsOfEntryView.VIEW_NAME)
                        || viewName.equals(UserRightsView.VIEW_NAME)) {
                    return AccessDeniedView.class.newInstance();
                } else {
                    return ErrorView.class.newInstance();
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    });

    menu = new Menu(navigator);
    if (UserProvider.getCurrent().hasUserRight(UserRight.DASHBOARD_VIEW)) {
        ControllerProvider.getDashboardController().registerViews(navigator);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.DASHBOARD_SURVEILLANCE_ACCESS)) {
        menu.addView(SurveillanceDashboardView.class, AbstractDashboardView.ROOT_VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuDashboard), VaadinIcons.DASHBOARD);
    } else if (UserProvider.getCurrent().hasUserRight(UserRight.DASHBOARD_CONTACT_ACCESS)) {
        menu.addView(ContactsDashboardView.class, AbstractDashboardView.ROOT_VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuDashboard), VaadinIcons.DASHBOARD);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.TASK_VIEW)) {
        menu.addView(TasksView.class, TasksView.VIEW_NAME, I18nProperties.getCaption(Captions.mainMenuTasks),
                VaadinIcons.TASKS);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_VIEW)) {
        ControllerProvider.getCaseController().registerViews(navigator);
        menu.addView(CasesView.class, CasesView.VIEW_NAME, I18nProperties.getCaption(Captions.mainMenuCases),
                VaadinIcons.EDIT);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.CONTACT_VIEW)) {
        ControllerProvider.getContactController().registerViews(navigator);
        menu.addView(ContactsView.class, ContactsView.VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuContacts), VaadinIcons.HAND);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.EVENT_VIEW)) {
        ControllerProvider.getEventController().registerViews(navigator);
        menu.addView(EventsView.class, EventsView.VIEW_NAME, I18nProperties.getCaption(Captions.mainMenuEvents),
                VaadinIcons.PHONE);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.SAMPLE_VIEW)) {
        ControllerProvider.getSampleController().registerViews(navigator);
        menu.addView(SamplesView.class, SamplesView.VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuSamples), VaadinIcons.DATABASE);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.WEEKLYREPORT_VIEW)) {
        menu.addView(ReportsView.class, ReportsView.VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuReports), VaadinIcons.FILE_TEXT);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.STATISTICS_ACCESS)) {
        ControllerProvider.getStatisticsController().registerViews(navigator);
        menu.addView(StatisticsView.class, AbstractStatisticsView.ROOT_VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuStatistics), VaadinIcons.BAR_CHART);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.USER_VIEW)) {
        menu.addView(UsersView.class, UsersView.VIEW_NAME, I18nProperties.getCaption(Captions.mainMenuUsers),
                VaadinIcons.USERS);
    }
    if (UserProvider.getCurrent().hasUserRight(UserRight.CONFIGURATION_ACCESS)) {
        AbstractConfigurationView.registerViews(navigator);
        menu.addView(OutbreaksView.class, AbstractConfigurationView.ROOT_VIEW_NAME,
                I18nProperties.getCaption(Captions.mainMenuConfiguration), VaadinIcons.COGS);
    }
    menu.addView(AboutView.class, AboutView.VIEW_NAME, I18nProperties.getCaption(Captions.mainMenuAbout),
            VaadinIcons.INFO_CIRCLE);

    navigator.addViewChangeListener(viewChangeListener);

    ui.setNavigator(navigator);

    addComponent(menu);
    addComponent(viewContainer);
    setExpandRatio(viewContainer, 1);
    setSpacing(false);
    setMargin(false);
    setSizeFull();
}

From source file:fr.amapj.view.engine.menu.MenuPart.java

License:Open Source License

public void buildMainView(final AmapUI ui, ValoMenuLayout root) {
    root.prepareForMainPage();/* w  w w. ja v  a 2 s .  co  m*/

    viewNameToMenuButton = new HashMap<String, Button>();

    CssLayout menu = new CssLayout();
    CssLayout menuItemsLayout = new CssLayout();

    if (ui.getPage().getWebBrowser().isIE() && ui.getPage().getWebBrowser().getBrowserMajorVersion() == 9) {
        menu.setWidth("320px");
    }

    // Chargement de tous les menus accesibles par l'utilisateur
    // et cration du "navigator"
    List<MenuDescription> allMenus = MenuInfo.getInstance().getMenu();

    Navigator nav = new Navigator(ui, root.getContentContainer());
    nav.addViewChangeListener(new ViewChangeListener() {

        @Override
        public boolean beforeViewChange(ViewChangeEvent event) {
            logger.info("Entre dans l'cran {}", event.getViewName());
            return true;
        }

        @Override
        public void afterViewChange(ViewChangeEvent event) {
            menu.removeStyleName("valo-menu-visible");
        }
    });

    if (allMenus.size() > 0) {
        MenuDescription first = allMenus.get(0);
        nav.setErrorView(first.getViewClass());
    }

    for (MenuDescription mD : allMenus) {
        nav.addView("/" + mD.getMenuName().name().toLowerCase(), mD.getViewClass());
    }

    // Cration du menu 
    root.addMenu(buildMenu(menu, menuItemsLayout, allMenus, nav, ui));

}

From source file:me.uni.emuseo.view.menu.MenuView.java

License:Open Source License

public void setNavigator(final Navigator navigator) {
    this.navigator = navigator;
    final ViewChangeListener viewChangeListener = new ViewChangeListener() {
        private static final long serialVersionUID = -4564885643037277448L;

        @Override/*from   ww  w.  j av  a  2  s  .com*/
        public boolean beforeViewChange(final ViewChangeEvent event) {
            return true;
        }

        @Override
        public void afterViewChange(final ViewChangeEvent event) {
            for (final Iterator<Component> it = menuItemsLayout.iterator(); it.hasNext();) {
                it.next().removeStyleName("selected");
            }
            String fullViewName = event.getViewName() + '/' + event.getParameters();
            for (final Entry<String, String> item : menuItems.entrySet()) {
                if (fullViewName.equals(item.getKey())) {
                    for (final Iterator<Component> it = menuItemsLayout.iterator(); it.hasNext();) {
                        final Component c = it.next();
                        if (c.getCaption() != null && c.getCaption().startsWith(item.getValue())) {
                            c.addStyleName("selected");
                            break;
                        }
                    }
                    break;
                }
            }
            menu.removeStyleName("valo-menu-visible");
        }
    };
    navigator.addViewChangeListener(viewChangeListener);
    addDetachListener(new DetachListener() {
        private static final long serialVersionUID = -8082565032894897397L;

        @Override
        public void detach(DetachEvent event) {
            navigator.removeViewChangeListener(viewChangeListener);
        }
    });
}

From source file:net.gvcc.jgoffice.MainUI.java

License:Open Source License

@Override
protected void init(VaadinRequest request) {
    Navigator loginNavigator;

    getPage().setTitle("jGOffice");

    initLayoutBeforLogin();//from  w  w w. j  a  va2 s . c  o m

    loginNavigator = new Navigator(this, loginLayout);
    loginNavigator.setErrorView(new ErrorPage());
    loginNavigator.addView("LoginView", new LoginView());
    loginNavigator.navigateTo("LoginView");
    loginNavigator.addViewChangeListener(this);
}