1 package fr.ifremer.reefdb.ui.swing.content.manage.program.pmfms.edit;
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.reefdb.dto.configuration.programStrategy.PmfmStrategyDTO;
27 import fr.ifremer.reefdb.service.StatusFilter;
28 import fr.ifremer.reefdb.ui.swing.util.AbstractReefDbUIHandler;
29 import org.nuiton.jaxx.application.swing.util.Cancelable;
30
31 import static org.nuiton.i18n.I18n.t;
32
33
34
35
36
37 public class EditPmfmDialogUIHandler extends AbstractReefDbUIHandler<EditPmfmDialogUIModel, EditPmfmDialogUI> implements Cancelable {
38
39
40 @Override
41 public void beforeInit(EditPmfmDialogUI ui) {
42 super.beforeInit(ui);
43
44 EditPmfmDialogUIModel model = new EditPmfmDialogUIModel();
45 ui.setContextValue(model);
46 }
47
48
49 @Override
50 public void afterInit(EditPmfmDialogUI editPmfmDialogUI) {
51 initUI(ui);
52
53 initBeanFilterableComboBox(
54 getUI().getAnalysteCombo(),
55 getContext().getReferentialService().getDepartments(),
56 null);
57
58 getModel().addPropertyChangeListener(EditPmfmDialogUIModel.PROPERTY_TABLE_MODEL, evt -> {
59
60
61 PmfmStrategyDTO pmfmStrategy = getModel().getTableModel().getSingleSelectedRow() != null ? getModel().getTableModel().getSingleSelectedRow().toBean() : null;
62 getModel().fromBean(pmfmStrategy);
63 });
64 }
65
66
67
68
69
70 public void valid() {
71
72
73 if (getModel().getAnalysisDepartment() == null) {
74 getContext().getDialogHelper().showErrorDialog(
75 getUI(),
76 t("reefdb.program.pmfm.edit.error.analyst.message"),
77 t("reefdb.program.pmfm.edit.error.titre"));
78
79 return;
80 }
81
82
83 for (final PmfmStrategyDTO psfmProgStra : getModel().getTableModel().getSelectedRows()) {
84 psfmProgStra.setAnalysisDepartment(getModel().getAnalysisDepartment());
85 psfmProgStra.setSurvey(getModel().isSurvey());
86 psfmProgStra.setSampling(getModel().isSampling());
87 psfmProgStra.setGrouping(getModel().isGrouping());
88 psfmProgStra.setUnique(getModel().isUnique());
89 }
90
91
92 closeDialog();
93 }
94
95
96
97
98
99
100 public void forceIsLocal(Boolean local) {
101 StatusFilter statusFilter = StatusFilter.toActiveLocalOrNational(local);
102 getUI().getAnalysteCombo().setData(getContext().getReferentialService().getDepartments(statusFilter));
103 }
104
105
106 @Override
107 public void cancel() {
108 closeDialog();
109 }
110 }