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.rssaggregator.app.subapps.aggregationconfig;
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 RSSAggregatorSimpleConfigSubAppViewImpl implements RSSAggregatorSimpleConfigSubAppView {
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 RSSAggregatorSimpleConfigSubAppViewImpl(SimpleTranslator translator) {
60 this.translator = translator;
61 }
62
63 @Override
64 public void build() {
65 Button saveButton = new Button(translator.translate("rssAggregator.app.config.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 CssLayout buttonLayout = new CssLayout();
78 buttonLayout.addStyleName("v-csslayout-smallapp-actions");
79 buttonLayout.addComponent(saveButton);
80
81 cssLayout = new CssLayout();
82 cssLayout.addComponent(formView.asVaadinComponent());
83 cssLayout.addComponent(buttonLayout);
84
85 root.setDescription(translator.translate("rssAggregator.app.config.description"));
86 root.addSection(cssLayout);
87 }
88
89 @Override
90 public Component asVaadinComponent() {
91 return root;
92 }
93
94 @Override
95 public void showValidation(boolean visible) {
96 formView.showValidation(visible);
97 }
98
99 @Override
100 public boolean isValid() {
101 return formView.isValid();
102 }
103
104 @Override
105 public void setFormViewReduced(FormViewReduced formView) {
106 if (this.formView != null) {
107 cssLayout.replaceComponent(this.formView.asVaadinComponent(), formView.asVaadinComponent());
108 }
109 this.formView = formView;
110 }
111
112 @Override
113 public void setListener(Listener listener) {
114 this.listener = listener;
115 }
116
117 public Listener getListener() {
118 return listener;
119 }
120
121 }