1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.sample.app.main;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.ui.api.app.AppController;
38
39 import javax.inject.Inject;
40
41 import com.vaadin.ui.Button;
42 import com.vaadin.ui.Component;
43 import com.vaadin.ui.Label;
44 import com.vaadin.ui.VerticalLayout;
45
46
47
48
49 public class NavigationViewImpl implements NavigationView {
50
51 private Listener listener;
52
53 private VerticalLayout layout;
54
55 private final AppController appController;
56
57 private final SimpleTranslator i18n;
58
59 @Inject
60 public NavigationViewImpl(AppController appController, SimpleTranslator i18n) {
61 this.appController = appController;
62 this.i18n = i18n;
63 }
64
65 @Override
66 public void setListener(Listener listener) {
67 this.listener = listener;
68 }
69
70 @Override
71 public Component asVaadinComponent() {
72 if (layout == null) {
73 layout = new VerticalLayout();
74 layout.setMargin(true);
75 layout.setSpacing(true);
76 layout.addComponent(new Label(i18n.translate("sample.app.navigation.label")));
77
78 layout.addComponent(createButton("Alpha"));
79 layout.addComponent(createButton("Bravo"));
80 layout.addComponent(createButton("Charlie"));
81 layout.addComponent(createButton("Delta"));
82 layout.addComponent(createButton("Echo"));
83 }
84 return layout;
85 }
86
87 private Button createButton(final String name) {
88 return new Button(i18n.translate("sample.app.navigation.button.select") + " " + name, new Button.ClickListener() {
89
90 @Override
91 public void buttonClick(Button.ClickEvent event) {
92 listener.onItemSelected(name);
93 }
94 });
95 }
96 }