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