porting the PopupEditor to spring and cdm
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / ui / RegistrationUI.java
1 /**
2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.vaadin.ui;
10
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.context.ApplicationEventPublisher;
13
14 import com.vaadin.annotations.Theme;
15 import com.vaadin.annotations.Title;
16 import com.vaadin.annotations.Viewport;
17 import com.vaadin.annotations.Widgetset;
18 import com.vaadin.devday.ui.MainMenu;
19 import com.vaadin.devday.ui.UIInitializedEvent;
20 import com.vaadin.devday.ui.navigation.NavigationEvent;
21 import com.vaadin.navigator.ViewDisplay;
22 import com.vaadin.server.FontAwesome;
23 import com.vaadin.server.Responsive;
24 import com.vaadin.server.VaadinRequest;
25 import com.vaadin.spring.annotation.SpringUI;
26 import com.vaadin.ui.Component;
27 import com.vaadin.ui.UI;
28 import com.vaadin.ui.themes.ValoTheme;
29
30 import eu.etaxonomy.cdm.vaadin.view.phycobank.TestView1;
31 import eu.etaxonomy.cdm.vaadin.view.phycobank.TestView2;
32
33 /**
34 * @author a.kohlbecker
35 * @since Feb 24, 2017
36 *
37 */
38 @Theme("edit-valo")
39 @Title("Registration")
40 @SpringUI(path="registration")
41 @Viewport("width=device-width, initial-scale=1")
42 @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet")
43 // @PreserveOnRefresh
44 // @Push
45 public class RegistrationUI extends UI {
46
47 private static final long serialVersionUID = -8626236111335323691L;
48
49 @Autowired
50 private ViewDisplay viewDisplay;
51
52 /*
53 * this HACKY solution forces the bean to be instantiated, TODO do it properly
54 */
55 // @Autowired
56 // MenuBeanDiscoveryBean bean;
57
58 @Autowired
59 private MainMenu mainMenu;
60
61 @Autowired
62 ApplicationEventPublisher eventBus;
63
64 public RegistrationUI() {
65
66 }
67
68 @Override
69 protected void init(VaadinRequest request) {
70 addStyleName(ValoTheme.UI_WITH_MENU);
71 Responsive.makeResponsive(this);
72
73 setContent((Component) viewDisplay);
74
75 mainMenu.addMenuItem(TestView1.NAME, FontAwesome.AMBULANCE, TestView1.NAME);
76 mainMenu.addMenuItem(TestView2.NAME, FontAwesome.APPLE, TestView2.NAME);
77
78 eventBus.publishEvent(new UIInitializedEvent());
79
80 //navigate to initial view
81 eventBus.publishEvent(new NavigationEvent(TestView1.NAME));
82 }
83 }