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.module.mail.app.main;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.ui.vaadin.form.FormViewReduced;
38 import info.magnolia.ui.vaadin.layout.SmallAppLayout;
39
40 import com.google.inject.Inject;
41 import com.vaadin.ui.Button;
42 import com.vaadin.ui.Button.ClickEvent;
43 import com.vaadin.ui.Button.ClickListener;
44 import com.vaadin.ui.Component;
45 import com.vaadin.ui.CssLayout;
46
47
48
49
50 public class MailMainViewImpl implements MailMainView {
51
52 private final SmallAppLayout root = new SmallAppLayout();
53 private FormViewReduced formView;
54 private CssLayout cssLayout;
55 private Listener listener;
56 private SimpleTranslator translator;
57
58 @Inject
59 public MailMainViewImpl(SimpleTranslator translator) {
60 this.translator = translator;
61 }
62
63 @Override
64 public void build() {
65 Button saveButton = new Button(translator.translate("mail.app.main.button.save.caption"));
66 saveButton.addStyleName("v-button-smallapp");
67 saveButton.addStyleName("commit");
68
69 saveButton.addClickListener(new ClickListener() {
70
71 @Override
72 public void buttonClick(ClickEvent event) {
73 getListener().save();
74 }
75 });
76
77 Button resetButton = new Button(translator.translate("mail.app.main.button.reset.caption"));
78 resetButton.addStyleName("v-button-smallapp");
79 resetButton.addClickListener(new ClickListener() {
80
81 @Override
82 public void buttonClick(ClickEvent event) {
83 getListener().reset();
84 }
85 });
86
87 CssLayout buttonLayout = new CssLayout();
88 buttonLayout.addStyleName("v-csslayout-smallapp-actions");
89 buttonLayout.addComponent(saveButton);
90 buttonLayout.addComponent(resetButton);
91
92 cssLayout = new CssLayout();
93 cssLayout.addComponent(formView.asVaadinComponent());
94 cssLayout.addComponent(buttonLayout);
95
96 root.setDescription(translator.translate("mail.app.main.description"));
97 root.addSection(cssLayout);
98 }
99
100 @Override
101 public Component asVaadinComponent() {
102 return root;
103 }
104
105 @Override
106 public void showValidation(boolean visible) {
107 formView.showValidation(visible);
108 }
109
110 @Override
111 public boolean isValid() {
112 return formView.isValid();
113 }
114
115 @Override
116 public void setFormViewReduced(FormViewReduced formView) {
117 if (this.formView != null) {
118 cssLayout.replaceComponent(this.formView.asVaadinComponent(), formView.asVaadinComponent());
119 }
120 this.formView = formView;
121 }
122
123 @Override
124 public void setListener(Listener listener) {
125 this.listener = listener;
126 }
127
128 public Listener getListener() {
129 return listener;
130 }
131
132 }