1 package fr.ifremer.tutti.ui.swing.content.validation.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 fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
26 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
27 import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUI;
28 import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUIHandler;
29 import fr.ifremer.tutti.ui.swing.content.validation.ValidateCruiseUIModel;
30
31 import java.io.File;
32
33 import static org.nuiton.i18n.I18n.t;
34
35
36
37
38
39 public class ExportCruiseValidationMessagesAction extends LongActionSupport<ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
40
41 protected File file;
42
43
44 protected ValidateCruiseOperationsService validationService = getContext().getValidateCruiseOperationsService();
45
46 public ExportCruiseValidationMessagesAction(ValidateCruiseUIHandler handler) {
47 super(handler, false);
48 setActionDescription(t("tutti.validateCruise.action.export.all.tip"));
49 }
50
51 @Override
52 public boolean prepareAction() throws Exception {
53 boolean doAction = super.prepareAction();
54
55 if (doAction) {
56
57 file = saveFile(
58 String.format("validation_%s", getDataContext().getCruise().getName()),
59 "txt",
60 t("tutti.validateCruise.action.export.all.chooseFile.title"),
61 t("tutti.validateCruise.action.export.all.chooseFile.label")
62 );
63 doAction = file != null;
64 }
65 return doAction;
66 }
67
68 @Override
69 public void doAction() throws Exception {
70 ValidateCruiseUIModel uiModel = getModel();
71 validationService.exportValidationResults(file, uiModel.getValidator());
72 }
73
74 @Override
75 public void releaseAction() {
76 super.releaseAction();
77 file = null;
78 }
79
80 @Override
81 public void postSuccessAction() {
82 super.postSuccessAction();
83 sendMessage(t("tutti.validateCruise.action.export.all.success", file));
84 }
85 }