1 package fr.ifremer.tutti.ui.swing.content.db.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 fr.ifremer.tutti.ui.swing.content.actions.AbstractMainUITuttiAction;
26 import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
27
28 import static org.nuiton.i18n.I18n.t;
29
30
31
32
33
34
35
36 public class CloseDbAction extends AbstractMainUITuttiAction {
37
38 protected String jdbcUrl;
39
40 public CloseDbAction(MainUIHandler handler) {
41 super(handler, true);
42 }
43
44 @Override
45 public boolean prepareAction() throws Exception {
46
47 boolean canContinue = super.prepareAction();
48 if (canContinue) {
49 jdbcUrl = getConfig().getJdbcUrl();
50 }
51 return canContinue;
52 }
53
54 @Override
55 public void doAction() {
56
57
58 getContext().getPersistenceService().clearAllCaches();
59
60
61 getContext().closePersistenceService();
62
63
64 getContext().clearDbContext();
65 }
66
67 @Override
68 public void postSuccessAction() {
69 super.postSuccessAction();
70
71 sendMessage(t("tutti.flash.info.db.closed", jdbcUrl));
72
73
74 handler.reloadDbManagerText();
75 handler.changeTitle();
76 }
77
78 @Override
79 public void postFailedAction(Throwable error) {
80 handler.reloadDbManagerText();
81 super.postFailedAction(error);
82 }
83 }