1 package fr.ifremer.quadrige3.ui.swing.synchro.action;
2
3 /*-
4 * #%L
5 * Quadrige3 Core :: Quadrige3 UI Common
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2017 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Affero General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU Affero General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 * #L%
24 */
25
26
27 import fr.ifremer.quadrige3.core.service.ClientServiceLocator;
28 import fr.ifremer.quadrige3.ui.swing.synchro.SynchroUIHandler;
29 import org.apache.commons.logging.Log;
30 import org.apache.commons.logging.LogFactory;
31 import org.nuiton.i18n.I18n;
32
33 import java.io.File;
34
35 import static org.nuiton.i18n.I18n.t;
36
37 /**
38 * <p>Abstract AbstractUploadAction class.</p>
39 *
40 * @author Ludovic Pecquot <ludovic.pecquot@e-is.pro>
41 */
42 public abstract class AbstractUploadAction extends AbstractSynchroAction {
43
44 private static final Log log = LogFactory.getLog(AbstractUploadAction.class);
45
46 private File fileToUpload;
47
48 /**
49 * <p>Getter for the field <code>fileToUpload</code>.</p>
50 *
51 * @return a {@link File} object.
52 */
53 public abstract File getFileToUpload();
54
55 /**
56 * <p>Constructor for AbstractUploadAction.</p>
57 *
58 * @param handler a {@link SynchroUIHandler} object.
59 */
60 public AbstractUploadAction(SynchroUIHandler handler) {
61 super(handler);
62 }
63
64 /** {@inheritDoc} */
65 @Override
66 public boolean initAction() {
67 super.initAction();
68
69 fileToUpload = getFileToUpload();
70
71 if (fileToUpload == null) {
72 log.error("no file to upload");
73 return false;
74 }
75
76 return true;
77 }
78
79 /** {@inheritDoc} */
80 @Override
81 public void doAction() {
82
83 if (!fileToUpload.exists()) {
84 throw new SynchroException(I18n.t("quadrige3.error.file.not.exists", fileToUpload.getAbsolutePath()));
85 }
86
87 getModel().getProgressionModel().setMessage(t("quadrige3.synchro.progress.upload"));
88
89 // Upload the file
90 ClientServiceLocator.instance().getSynchroRestClientService().uploadExportFile(
91 getContext().getAuthenticationInfo(),
92 fileToUpload,
93 getModel().getProgressionModel()
94 );
95 }
96
97 /** {@inheritDoc} */
98 @Override
99 public void doneAction() {
100 }
101
102 }