1 package fr.ifremer.quadrige2.ui.swing.common.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
27 import fr.ifremer.quadrige2.ui.swing.common.Application;
28 import fr.ifremer.quadrige2.ui.swing.common.content.AbstractMainUIHandler;
29 import fr.ifremer.quadrige2.ui.swing.common.model.ProgressionModel;
30
31 import static org.nuiton.i18n.I18n.t;
32
33
34
35
36
37
38 public class CloseApplicationAction extends AbstractChangeScreenAction {
39
40 protected int exitCode = Application.NORMAL_EXIT_CODE;
41
42
43
44
45
46
47 public CloseApplicationAction(AbstractMainUIHandler handler) {
48 super(handler, false, null);
49 setSkipCheckCurrentScreen(false);
50 setActionDescription(t("quadrige2.main.action.exit.tip"));
51 }
52
53
54
55
56
57
58 public void setExitCode(int exitCode) {
59 this.exitCode = exitCode;
60 }
61
62
63 @Override
64 public void doAction() throws Exception {
65 super.doAction();
66
67 ProgressionModel progressionModel = new ProgressionModel();
68 setProgressionModel(progressionModel);
69 progressionModel.setCurrent(0);
70 progressionModel.setMessage(t("quadrige2.main.action.exit.message"));
71
72 getHandler().closeUI();
73 Application.exit(exitCode);
74 }
75
76
77 @Override
78 public void releaseAction() {
79 exitCode = Application.NORMAL_EXIT_CODE;
80 super.releaseAction();
81 }
82 }