1 package fr.ifremer.tutti.ui.swing.update;
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.collect.ImmutableMap;
26 import fr.ifremer.tutti.persistence.ProgressionModel;
27 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
28 import fr.ifremer.tutti.ui.swing.update.module.DbModuleUpdater;
29 import fr.ifremer.tutti.ui.swing.update.module.ModuleUpdaterSupport;
30 import fr.ifremer.tutti.ui.swing.updater.UpdateModule;
31 import org.nuiton.updater.ApplicationInfo;
32
33 import static org.nuiton.i18n.I18n.t;
34
35
36
37
38
39
40
41 public class TuttiDbUpdaterCallBack extends TuttiUpdaterCallBackSupport {
42
43 public TuttiDbUpdaterCallBack(String url, LongActionSupport action, ProgressionModel progressionModel) {
44 super(url,
45 ImmutableMap.<UpdateModule, ModuleUpdaterSupport>of(UpdateModule.db, new DbModuleUpdater()),
46 action,
47 progressionModel);
48 super.setModulesToUpdate(UpdateModule.db);
49 }
50
51 @Override
52 public void setModulesToUpdate(UpdateModule... modulesToUpdate) {
53 throw new IllegalStateException("You are not allowed to use this method on " + this);
54 }
55
56 public boolean isDbUpdated() {
57 DbModuleUpdater moduleUpdater = (DbModuleUpdater) getModuleUpdater(UpdateModule.db);
58 return moduleUpdater.isDbUpdated();
59 }
60
61 public boolean isDbInstalled() {
62 DbModuleUpdater moduleUpdater = (DbModuleUpdater) getModuleUpdater(UpdateModule.db);
63 return moduleUpdater.isDbInstalled();
64 }
65
66 @Override
67 public void startUpdate(ApplicationInfo info) {
68
69 if (isDbInstalled()) {
70 progressionModel.setMessage(t("tutti.applicationUpdater.startUpdate.db.installation", info.newVersion));
71 } else if (isDbUpdated()) {
72 progressionModel.setMessage(t("tutti.applicationUpdater.startUpdate.db.update", info.newVersion));
73 }
74 }
75
76 }