2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.vaadin
.ui
;
11 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
12 import org
.springframework
.context
.ApplicationEventPublisher
;
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
.navigator
.ViewDisplay
;
19 import com
.vaadin
.server
.ExternalResource
;
20 import com
.vaadin
.server
.FontAwesome
;
21 import com
.vaadin
.server
.Page
;
22 import com
.vaadin
.server
.Resource
;
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
.Label
;
28 import com
.vaadin
.ui
.UI
;
29 import com
.vaadin
.ui
.themes
.ValoTheme
;
31 import eu
.etaxonomy
.cdm
.vaadin
.view
.registration
.ListViewBean
;
32 import eu
.etaxonomy
.cdm
.vaadin
.view
.registration
.StartRegistrationView
;
33 import eu
.etaxonomy
.vaadin
.ui
.MainMenu
;
34 import eu
.etaxonomy
.vaadin
.ui
.UIInitializedEvent
;
35 import eu
.etaxonomy
.vaadin
.ui
.navigation
.NavigationEvent
;
38 * @author a.kohlbecker
43 @Title("Registration")
44 @SpringUI(path
="registration")
45 @Viewport("width=device-width, initial-scale=1")
46 @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet")
49 public class RegistrationUI
extends UI
{
51 private static final long serialVersionUID
= -8626236111335323691L;
54 private ViewDisplay viewDisplay
;
56 private final String INITIAL_VIEW
= "workflow/edit/100002"; // DashBoardView.NAME
59 * this HACKY solution forces the bean to be instantiated, TODO do it properly
62 // MenuBeanDiscoveryBean bean;
65 private MainMenu mainMenu
;
68 ApplicationEventPublisher eventBus
;
70 public RegistrationUI() {
75 protected void init(VaadinRequest request
) {
76 addStyleName(ValoTheme
.UI_WITH_MENU
);
77 Responsive
.makeResponsive(this);
79 setContent((Component
) viewDisplay
);
80 Label phycoBankLogo
= new Label("PhycoBank");
81 phycoBankLogo
.addStyleName("phycobank-green");
82 phycoBankLogo
.addStyleName(ValoTheme
.LABEL_HUGE
);
83 mainMenu
.addMenuComponent(phycoBankLogo
);
85 mainMenu
.addMenuItem("New", FontAwesome
.EDIT
, StartRegistrationView
.NAME
);
86 mainMenu
.addMenuItem("Continue", FontAwesome
.ARROW_RIGHT
, ListViewBean
.NAME
);
87 mainMenu
.addMenuItem("List", FontAwesome
.TASKS
, ListViewBean
.NAME
);
89 eventBus
.publishEvent(new UIInitializedEvent());
91 //navigate to initial view
92 eventBus
.publishEvent(new NavigationEvent(INITIAL_VIEW
));
94 String brand
= "phycobank";
95 //TODO create annotation:
96 // @Styles(files={""}, branding="brand")
98 // the branding can either be specified or can be read from a properties file in .cdmLibrary/{instance-name}/cdm-vaadin.properties
99 // See CdmUtils for appropriate methods to access this folder
100 // the 'vaadin://' protocol refers to the VAADIN folder
101 Resource registryCssFile
= new ExternalResource("vaadin://branding/" + brand
+ "/css/branding.css");
102 Page
.getCurrent().getStyles().add(registryCssFile
);