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.action;
35
36 import javax.jcr.Node;
37
38 import info.magnolia.context.MgnlContext;
39 import info.magnolia.i18nsystem.SimpleTranslator;
40 import info.magnolia.jcr.node2bean.Node2BeanProcessor;
41 import info.magnolia.module.rssaggregator.RSSJob;
42 import info.magnolia.module.rssaggregator.command.LaunchSingleRSSCommand;
43 import info.magnolia.objectfactory.Components;
44 import info.magnolia.ui.api.action.AbstractAction;
45 import info.magnolia.ui.api.action.ActionExecutionException;
46 import info.magnolia.ui.api.context.UiContext;
47 import info.magnolia.ui.vaadin.integration.jcr.AbstractJcrNodeAdapter;
48 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
49 import info.magnolia.ui.vaadin.overlay.MessageStyleTypeEnum;
50
51
52
53
54 public class RunRSSImportAction extends AbstractAction<RunRSSImportActionDefinition> {
55
56 private final AbstractJcrNodeAdapter nodeItemToEdit;
57 private UiContext uiContext;
58 private SimpleTranslator i18n;
59
60 public RunRSSImportAction(RunRSSImportActionDefinition definition, AbstractJcrNodeAdapter nodeItemToEdit, UiContext uiContext, SimpleTranslator i18n) {
61 super(definition);
62 this.nodeItemToEdit = nodeItemToEdit;
63 this.uiContext = uiContext;
64 this.i18n = i18n;
65 }
66
67 @Override
68 public void execute() throws ActionExecutionException {
69 try {
70 Node node = ((JcrNodeAdapter) nodeItemToEdit).applyChanges();
71 Node2BeanProcessor n2b = Components.getComponent(Node2BeanProcessor.class);
72 RSSJob job = (RSSJob) n2b.toBean(node, RSSJob.class);
73 LaunchSingleRSSCommand command = new LaunchSingleRSSCommand(job);
74 command.execute(MgnlContext.getInstance());
75 uiContext.openNotification(MessageStyleTypeEnum.INFO, true, i18n.translate("rssAggreagtor.actions.feed.import.success"));
76 } catch (Exception e) {
77 uiContext.openNotification(MessageStyleTypeEnum.ERROR, true, i18n.translate("rssAggreagtor.actions.feed.import.failure"));
78 throw new ActionExecutionException(e);
79 }
80 }
81
82 }