1 package fr.ifremer.dali.ui.swing.content.extraction.list;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import fr.ifremer.dali.dto.system.extraction.ExtractionDTO;
25 import fr.ifremer.dali.ui.swing.action.AbstractDaliAction;
26
27 import java.io.File;
28
29 import static org.nuiton.i18n.I18n.t;
30
31
32
33
34 public class ImportExtractionAction extends AbstractDaliAction<ExtractionsTableUIModel, ExtractionsTableUI, ExtractionsTableUIHandler> {
35
36 private File importFile;
37 private ExtractionDTO extraction;
38
39
40
41
42
43
44 public ImportExtractionAction(ExtractionsTableUIHandler handler) {
45 super(handler, false);
46 }
47
48 @Override
49 public boolean prepareAction() throws Exception {
50 if (!super.prepareAction()) return false;
51
52 String fileExtension = getConfig().getExtractionFileExtension();
53 importFile = chooseFile(
54 t("dali.extraction.list.import.tip"),
55 t("dali.common.import"),
56 "^.*\\." + fileExtension,
57 t("dali.common.file." + fileExtension)
58 );
59
60 return importFile != null;
61 }
62
63 @Override
64 public void doAction() throws Exception {
65
66 extraction = getContext().getExtractionService().importExtraction(importFile);
67
68 }
69
70 @Override
71 public void postSuccessAction() {
72
73 if (extraction != null) {
74 getModel().addBean(extraction);
75 getModel().setModify(true);
76 }
77
78 super.postSuccessAction();
79 }
80
81 @Override
82 protected void releaseAction() {
83 super.releaseAction();
84
85 importFile = null;
86 extraction = null;
87 }
88 }