1 package fr.ifremer.quadrige3.ui.swing.synchro.action;
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 import fr.ifremer.quadrige3.core.dao.technical.Assert;
27 import fr.ifremer.quadrige3.core.exception.QuadrigeTechnicalException;
28 import fr.ifremer.quadrige3.core.security.AuthenticationInfo;
29 import fr.ifremer.quadrige3.core.service.ClientServiceLocator;
30 import fr.ifremer.quadrige3.synchro.service.client.SynchroRestClientService;
31 import fr.ifremer.quadrige3.synchro.vo.SynchroProgressionStatus;
32 import fr.ifremer.quadrige3.synchro.vo.SynchroProgressionVO;
33 import fr.ifremer.quadrige3.ui.swing.synchro.SynchroUIHandler;
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36 import org.nuiton.i18n.I18n;
37
38
39
40
41
42
43 public class ExportSynchroGetStatusAction extends AbstractSynchroAction {
44
45 private static final Log log = LogFactory.getLog(ExportSynchroGetStatusAction.class);
46
47
48
49
50
51
52 public ExportSynchroGetStatusAction(SynchroUIHandler handler) {
53 super(handler);
54 }
55
56
57 @Override
58 public boolean initAction() {
59 super.initAction();
60
61 getHandler().showProgressCard();
62
63 return true;
64 }
65
66
67 @Override
68 public void doAction() throws Exception {
69
70 Assert.notNull(getModel().getSynchroExportContext());
71 Assert.notBlank(getModel().getSynchroExportContext().getJobId());
72
73 if (log.isDebugEnabled()) {
74 log.debug(String.format("Try to retrieve export status from synchronization site : %s", getBaseUri()));
75 }
76
77
78 AuthenticationInfo authenticationInfo = !getContext().isAuthenticated() || getContext().isAuthenticatedAsLocalUser()
79 ? null
80 : getContext().getAuthenticationInfo();
81
82 SynchroRestClientService service = ClientServiceLocator.instance().getSynchroRestClientService();
83
84 SynchroProgressionStatus serverExportStatus;
85 SynchroProgressionVO serverExportResult = service.getExportLastStatus(
86 authenticationInfo,
87 getModel().getSynchroExportContext().getJobId(),
88 getModel().getProgressionModel());
89 serverExportStatus = SynchroProgressionStatus.valueOf(serverExportResult.getStatus());
90
91
92 if (serverExportStatus == SynchroProgressionStatus.FAILED) {
93 throw new SynchroException(I18n.t("quadrige3.error.synchro.status", getModel().getProgressionModel().getMessage()));
94 }
95
96
97 else if (getModel().getStatus() == SynchroProgressionStatus.RUNNING) {
98 getModel().setStatus(serverExportStatus);
99 }
100
101
102 else {
103 getModel().setStatus(serverExportStatus);
104 }
105 }
106
107
108 @Override
109 public void doneAction() {
110
111 getModel().saveExportContext();
112
113 }
114
115
116 @Override
117 public void failedAction(Throwable ex) {
118
119 throw new QuadrigeTechnicalException(I18n.t("quadrige3.error.execute.action"), ex);
120
121 }
122
123 }