1 package fr.ifremer.quadrige2.ui.swing.common.synchro.log;
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.quadrige2.core.dao.technical.os.ExternalEditors;
28 import fr.ifremer.quadrige2.core.exception.Quadrige2TechnicalException;
29 import fr.ifremer.quadrige2.core.security.SecurityContextHelper;
30 import fr.ifremer.quadrige2.core.service.ClientServiceLocator;
31 import fr.ifremer.quadrige2.ui.swing.common.AbstractUIHandler;
32 import fr.ifremer.quadrige2.ui.swing.common.component.wrapeditor.WrapEditorKit;
33 import jaxx.runtime.SwingUtil;
34 import org.apache.commons.io.FileUtils;
35 import org.apache.commons.lang3.StringUtils;
36 import org.nuiton.i18n.I18n;
37
38 import javax.swing.JComponent;
39 import javax.swing.text.EditorKit;
40 import java.io.File;
41 import java.io.IOException;
42
43
44
45
46
47
48 public class SynchroLogUIHandler extends AbstractUIHandler<SynchroLogUIModel, SynchroLogUI> {
49
50
51 @Override
52 public void beforeInit(SynchroLogUI ui) {
53 super.beforeInit(ui);
54
55 SynchroLogUIModel model = new SynchroLogUIModel();
56 ui.setContextValue(model);
57
58 ui.setContextValue(SwingUtil.createActionIcon("synchro-log"));
59
60 }
61
62
63 @Override
64 public void afterInit(SynchroLogUI ui) {
65 initUI(ui);
66
67 if (getContext().isAuthenticated()) {
68
69
70 File logFile = ClientServiceLocator.instance().getSynchroHistoryService().getHistoryFileByUserId(SecurityContextHelper.getQuadrige2UserId());
71 getModel().setLogFile(logFile);
72
73
74 String historyContent = null;
75 if (logFile.exists()) {
76 try {
77 historyContent = FileUtils.readFileToString(logFile);
78 } catch (IOException e) {
79 throw new Quadrige2TechnicalException(I18n.t("quadrige2.service.synchroHistory.readContent.failed"), e);
80 }
81 }
82 if (StringUtils.isBlank(historyContent)) {
83 historyContent = I18n.t("quadrige2.main.action.synchro.log.empty");
84 }
85 getModel().setMessage(historyContent);
86 }
87
88
89 else {
90 getModel().setMessage(I18n.t("quadrige2.login.infoMessage", I18n.t("quadrige2.main.menu.synchro.log")));
91 }
92 }
93
94
95 @Override
96 protected JComponent getComponentToFocus() {
97 return getUI().getSynchroLogPanel();
98 }
99
100
101
102
103
104
105 public EditorKit getNewWrapEditorKit() {
106 return new WrapEditorKit();
107 }
108
109
110
111
112
113 public void openExternalEditor() {
114 File synchroLogFile = getModel().getLogFile();
115 if (synchroLogFile.exists()) {
116 ExternalEditors.openInExternalEditor(synchroLogFile);
117 }
118 }
119 }