Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.cxplonka.feature.ui.vaadin; import com.vaadin.annotations.Theme; import com.vaadin.navigator.Navigator; import com.vaadin.server.VaadinRequest; import com.vaadin.spring.annotation.SpringUI; import com.vaadin.spring.navigator.SpringViewProvider; import com.vaadin.ui.Button; import com.vaadin.ui.CssLayout; import com.vaadin.ui.Panel; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; import org.springframework.beans.factory.annotation.Autowired; /** * * @author cplonka */ @SpringUI @Theme("valo") public class VaadinUI extends UI { @Autowired private SpringViewProvider viewProvider; public VaadinUI() { } @Override protected void init(VaadinRequest request) { initLayout(); } private void initLayout() { final VerticalLayout root = new VerticalLayout(); root.setSizeFull(); root.setMargin(true); root.setSpacing(true); setContent(root); final CssLayout navigationBar = new CssLayout(); navigationBar.addStyleName(ValoTheme.LAYOUT_COMPONENT_GROUP); navigationBar.addComponent(createNavigationButton("Default View", DefaultView.VIEW_NAME)); navigationBar.addComponent(createNavigationButton("Data View", DataTableView.VIEW_NAME)); root.addComponent(navigationBar); final Panel viewContainer = new Panel(); viewContainer.setSizeFull(); root.addComponent(viewContainer); root.setExpandRatio(viewContainer, 1.0f); Navigator navigator = new Navigator(this, viewContainer); navigator.addProvider(viewProvider); } private Button createNavigationButton(String caption, final String viewName) { Button button = new Button(caption); button.addStyleName(ValoTheme.BUTTON_SMALL); button.addClickListener(e -> getUI().getNavigator().navigateTo(viewName)); return button; } }