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 import info.magnolia.context.Context;
37 import info.magnolia.context.MgnlContext;
38 import info.magnolia.i18nsystem.SimpleTranslator;
39 import info.magnolia.module.ModuleRegistry;
40 import info.magnolia.module.rssaggregator.RSSAggregator;
41 import info.magnolia.module.rssaggregator.RSSJob;
42 import info.magnolia.module.rssaggregator.command.LaunchSingleRSSCommand;
43 import info.magnolia.objectfactory.Components;
44
45 import java.util.Collection;
46
47 import org.slf4j.Logger;
48 import org.slf4j.LoggerFactory;
49
50 import com.vaadin.ui.Alignment;
51 import com.vaadin.ui.Button;
52 import com.vaadin.ui.Button.ClickEvent;
53 import com.vaadin.ui.Component;
54 import com.vaadin.v7.ui.CustomField;
55 import com.vaadin.v7.ui.VerticalLayout;
56
57
58
59
60
61
62 @SuppressWarnings("serial")
63 @Deprecated
64 public class RunEveryRSSImportButtonField extends CustomField<String> {
65
66 private static final Logger log = LoggerFactory.getLogger(RunEveryRSSImportButtonField.class);
67
68 private final VerticalLayout rootLayout = new VerticalLayout();
69 private final Button runButton = new Button();
70
71 private SimpleTranslator simpleTranslator;
72
73 public RunEveryRSSImportButtonField(SimpleTranslator simpleTranslator) {
74 this.simpleTranslator = simpleTranslator;
75 }
76
77 @Override
78 protected Component initContent() {
79 setImmediate(true);
80 rootLayout.setSizeFull();
81 rootLayout.setSpacing(true);
82
83 runButton.addStyleName("commit");
84 runButton.setCaption(simpleTranslator.translate("rssAggregator.manual.rss.import.all.run"));
85 runButton.addClickListener(createButtonClickListener());
86
87 rootLayout.addComponent(runButton);
88 rootLayout.setExpandRatio(runButton, 0);
89 rootLayout.setComponentAlignment(runButton, Alignment.MIDDLE_CENTER);
90
91 return rootLayout;
92 }
93
94 @Override
95 public Class<String> getType() {
96 return String.class;
97 }
98
99 private Button.ClickListener createButtonClickListener() {
100 return new Button.ClickListener() {
101 @Override
102 public void buttonClick(ClickEvent event) {
103 runImport();
104 }
105 };
106 }
107
108 private void runImport() {
109 Context ctx = MgnlContext.getInstance();
110 Collection<RSSJob> jobs = ((RSSAggregator) Components.getComponent(ModuleRegistry.class).getModuleInstance("rssaggregator")).getJobs().values();
111 for (RSSJob job : jobs) {
112 LaunchSingleRSSCommand command = new LaunchSingleRSSCommand(job);
113 try {
114 command.execute(ctx);
115 } catch (Exception e) {
116 log.debug("RSS feed import failed for job: " + job.getName() + e.getMessage(), e);
117 }
118 }
119 }
120
121 }