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.ProgressionModel;
27 import fr.ifremer.tutti.persistence.entities.data.Cruise;
28 import fr.ifremer.tutti.service.export.toconfirmreport.ToConfirmReportService;
29 import fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction;
30 import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33
34 import java.io.File;
35 import java.text.DateFormat;
36 import java.text.SimpleDateFormat;
37 import java.util.Date;
38
39 import static org.nuiton.i18n.I18n.t;
40
41
42
43
44
45
46
47 public class SpeciesToConfirmReportForCruiseAction extends AbstractMainUITuttiAction {
48
49
50 private static final Log log =
51 LogFactory.getLog(SpeciesToConfirmReportForCruiseAction.class);
52
53 public static final DateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
54
55 protected File file;
56
57 public SpeciesToConfirmReportForCruiseAction(MainUIHandler handler) {
58 super(handler, true);
59 }
60
61 @Override
62 public boolean prepareAction() throws Exception {
63
64 boolean doAction = super.prepareAction();
65
66 if (doAction) {
67
68 Cruise cruise = getDataContext().getCruise();
69
70 String now = df.format(new Date());
71 file = saveFile(
72 t("tutti.speciesToConfirmReport.fileName.default", cruise.getName(), now),
73 "pdf",
74 t("tutti.speciesToConfirmReport.title.choose.exportFile"),
75 t("tutti.speciesToConfirmReport.action.chooseFile"),
76 "^.+\\.pdf$", t("tutti.common.file.pdf")
77 );
78 doAction = file != null;
79 }
80
81 return doAction;
82 }
83
84 @Override
85 public void releaseAction() {
86 file = null;
87 super.releaseAction();
88 }
89
90 @Override
91 public void doAction() throws Exception {
92 Cruise cruise = getDataContext().getCruise();
93 Preconditions.checkNotNull(cruise);
94 Preconditions.checkNotNull(file);
95
96 if (log.isInfoEnabled()) {
97 log.info("Will export cruise " + cruise.getId() + " to file: " + file);
98 }
99
100 ToConfirmReportService toConfirmReportService = getContext().getToConfirmReportService();
101
102 int nbSteps = toConfirmReportService.getNumberOfSteps(getDataContext().getCruiseId());
103 createProgressionModelIfRequired(1);
104
105 ProgressionModel progressionModel = getProgressionModel();
106 progressionModel.adaptTotal(nbSteps);
107
108 toConfirmReportService.createToConfirmReport(file, cruise.getIdAsInt(), progressionModel);
109
110 }
111
112 @Override
113 public void postSuccessAction() {
114 super.postSuccessAction();
115 sendMessage(t("tutti.sendCruiseReport.action.success", file));
116 }
117 }