1 package fr.ifremer.tutti.ui.swing.content.referential.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.service.referential.ReferentialTemporaryPersonService;
27 import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
28 import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUIHandler;
29 import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUIModel;
30 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33
34 import java.io.File;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41
42
43
44 public class ExportExistingTemporaryPersonAction extends LongActionSupport<ManageTemporaryReferentialUIModel, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
45
46
47
48 private static final Log log =
49 LogFactory.getLog(ExportExistingTemporaryPersonAction.class);
50
51 private File file;
52
53 public ExportExistingTemporaryPersonAction(ManageTemporaryReferentialUIHandler handler) {
54 super(handler, true);
55 }
56
57 @Override
58 public boolean prepareAction() throws Exception {
59
60 boolean doAction = super.prepareAction() && getUI().getExportExistingPersonButton().isEnabled();
61
62 if (doAction) {
63
64
65 file = saveFile(
66 "exportTemporaryPerson",
67 "csv",
68 t("tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile"),
69 t("tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export"),
70 "^.*\\.csv", t("tutti.common.file.csv")
71 );
72 doAction = file != null;
73 }
74 return doAction;
75 }
76
77 @Override
78 public void releaseAction() {
79 file = null;
80 super.releaseAction();
81 }
82
83 @Override
84 public void doAction() throws Exception {
85 Preconditions.checkNotNull(file);
86 if (log.isInfoEnabled()) {
87 log.info("Will export existing persons temporary " +
88 "referential to file: " + file);
89 }
90
91 ReferentialTemporaryPersonService service = getContext().getReferentialTemporaryPersonService();
92 service.exportExistingTemporaryPerson(file);
93
94 }
95
96 @Override
97 public void postSuccessAction() {
98
99 getHandler().resetComboBoxAction(getUI().getPersonActionComboBox());
100 super.postSuccessAction();
101 sendMessage(t("tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success", file));
102
103 }
104 }