1 package fr.ifremer.tutti.ui.swing.content.home.actions;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.base.Preconditions;
26 import fr.ifremer.tutti.persistence.entities.data.Cruise;
27 import fr.ifremer.tutti.service.export.pdf.CatchesPdfExportService;
28 import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
29 import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction;
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32
33 import java.io.File;
34
35 import static org.nuiton.i18n.I18n.t;
36
37
38
39
40
41
42
43 public class SendCruiseReportAction extends AbstractMainUITuttiAction {
44
45
46 private static final Log log =
47 LogFactory.getLog(SendCruiseReportAction.class);
48
49 protected File file;
50
51 public SendCruiseReportAction(MainUIHandler handler) {
52 super(handler, true);
53 }
54
55 @Override
56 public boolean prepareAction() throws Exception {
57
58 boolean doAction = super.prepareAction();
59
60 if (doAction) {
61
62 Cruise cruise = getDataContext().getCruise();
63
64 file = saveFile(
65 "exportCruise-" + cruise.getName(),
66 "pdf",
67 t("tutti.sendCruiseReport.title.choose.exportFile"),
68 t("tutti.sendCruiseReport.action.chooseFile"),
69 "^.+\\.pdf$", t("tutti.common.file.pdf")
70 );
71 doAction = file != null;
72 }
73 return doAction;
74 }
75
76 @Override
77 public void releaseAction() {
78 file = null;
79 super.releaseAction();
80 }
81
82 @Override
83 public void doAction() throws Exception {
84 Cruise cruise = getDataContext().getCruise();
85 Preconditions.checkNotNull(cruise);
86 Preconditions.checkNotNull(file);
87
88 if (log.isInfoEnabled()) {
89 log.info("Will export cruise " + cruise.getId() +
90 " to file: " + file);
91 }
92
93
94 CatchesPdfExportService service =
95 getContext().getGeneratePDFService();
96 service.generateCruisePDFFile(file, cruise.getIdAsInt(), getConfig().getI18nLocale());
97
98 }
99
100 @Override
101 public void postSuccessAction() {
102 super.postSuccessAction();
103 sendMessage(t("tutti.sendCruiseReport.action.success", file));
104 }
105 }