1 package fr.ifremer.tutti.ui.swing.content.protocol.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
26
27 import fr.ifremer.tutti.service.protocol.ProtocolCaracteristicsImportExportService;
28 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
29 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler;
30 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel;
31 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
32 import org.apache.commons.logging.Log;
33 import org.apache.commons.logging.LogFactory;
34
35 import java.io.File;
36 import java.util.List;
37
38 import static org.nuiton.i18n.I18n.t;
39
40
41
42
43
44 public class LoadProtocolImportColumnsAction extends LongActionSupport<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
45
46
47 private static final Log log = LogFactory.getLog(LoadProtocolImportColumnsAction.class);
48
49 protected File columnsFile;
50
51 public LoadProtocolImportColumnsAction(EditProtocolUIHandler handler) {
52 super(handler, false);
53 }
54
55 @Override
56 public boolean prepareAction() throws Exception {
57 boolean result = super.prepareAction();
58
59 if (result) {
60 columnsFile = chooseFile(t("tutti.editProtocol.action.title.choose.importColumnsFile"),
61 t("tutti.editProtocol.action.chooseColumnsFile.import"),
62 "^.*\\.csv", t("tutti.common.file.csv"));
63
64 result = columnsFile != null;
65 }
66
67 return result;
68 }
69
70 @Override
71 public void doAction() throws Exception {
72
73 ProtocolCaracteristicsImportExportService service = getContext().getProtocolCaracteristicsImportExportService();
74 List<String> columns = service.loadProtocolCaracteristicsImportColumns(columnsFile);
75 if (log.isInfoEnabled()) {
76 log.info("Detected columns: "+columns);
77 }
78 getModel().setImportColumns(columns);
79
80 }
81
82 @Override
83 public void postSuccessAction() {
84 super.postSuccessAction();
85 sendMessage(t("tutti.editProtocol.action.loadImportColumns.success", getModel().sizeImportColumns()));
86 }
87 }