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.field;
35
36
37 import info.magnolia.context.MgnlContext;
38 import info.magnolia.i18nsystem.SimpleTranslator;
39 import info.magnolia.jcr.node2bean.Node2BeanProcessor;
40 import info.magnolia.module.rssaggregator.RSSJob;
41 import info.magnolia.module.rssaggregator.command.LaunchSingleRSSCommand;
42 import info.magnolia.objectfactory.Components;
43 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
44
45 import javax.jcr.Node;
46
47 import com.vaadin.ui.Alignment;
48 import com.vaadin.ui.Button;
49 import com.vaadin.ui.Button.ClickEvent;
50 import com.vaadin.ui.Component;
51 import com.vaadin.v7.data.Item;
52 import com.vaadin.v7.ui.CustomField;
53 import com.vaadin.v7.ui.VerticalLayout;
54
55
56
57
58
59
60 @SuppressWarnings("serial")
61 @Deprecated
62 public class RunRSSImportButtonField extends CustomField<String> {
63
64 private final VerticalLayout rootLayout = new VerticalLayout();
65 private final Button runButton = new Button();
66
67 private Item item;
68 private SimpleTranslator simpleTranslator;
69
70 public RunRSSImportButtonField(Item item, SimpleTranslator simpleTranslator) {
71 this.item = item;
72 this.simpleTranslator = simpleTranslator;
73 }
74
75 @Override
76 protected Component initContent() {
77 setImmediate(true);
78 rootLayout.setSizeFull();
79 rootLayout.setSpacing(true);
80
81 runButton.addStyleName("commit");
82 runButton.setCaption(simpleTranslator.translate("rssAggregator.manual.rss.import.run"));
83 runButton.addClickListener(createButtonClickListener());
84
85 rootLayout.addComponent(runButton);
86 rootLayout.setExpandRatio(runButton, 0);
87 rootLayout.setComponentAlignment(runButton, Alignment.MIDDLE_CENTER);
88
89 return rootLayout;
90 }
91
92 @Override
93 public Class<String> getType() {
94 return String.class;
95 }
96
97 private Button.ClickListener createButtonClickListener() {
98 return new Button.ClickListener() {
99 @Override
100 public void buttonClick(ClickEvent event) {
101 runImport();
102 }
103 };
104 }
105
106 private void runImport() {
107 try {
108 Node node = ((JcrNodeAdapter) item).applyChanges();
109 Node2BeanProcessor n2b = Components.getComponent(Node2BeanProcessor.class);
110 RSSJob job = (RSSJob) n2b.toBean(node, RSSJob.class);
111 LaunchSingleRSSCommand command = new LaunchSingleRSSCommand(job);
112 command.execute(MgnlContext.getInstance());
113 } catch (Exception e) {
114
115 }
116 }
117
118 }