1 package fr.ifremer.reefdb.ui.swing.content.manage.referential.taxon.taxonsDialog;
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.referential.TaxonDTO;
27 import fr.ifremer.reefdb.ui.swing.util.AbstractReefDbUIHandler;
28 import org.nuiton.jaxx.application.swing.util.Cancelable;
29
30 import java.util.ArrayList;
31 import java.util.List;
32
33
34
35
36 public class TaxonsDialogUIHandler extends AbstractReefDbUIHandler<TaxonsDialogUIModel, TaxonsDialogUI> implements Cancelable {
37
38
39 public static final String FILTER = "filter";
40
41 public static final String TABLE = "table";
42
43
44 @Override
45 public void beforeInit(TaxonsDialogUI ui) {
46 super.beforeInit(ui);
47
48 ui.setContextValue(new TaxonsDialogUIModel());
49 }
50
51
52 @Override
53 public void afterInit(TaxonsDialogUI ui) {
54 initUI(ui);
55
56 getModel().addPropertyChangeListener(evt -> {
57
58 if (TaxonsDialogUIModel.PROPERTY_TAXON_GROUP.equals(evt.getPropertyName())) {
59
60 List<TaxonDTO> taxons = getModel().getTaxonGroup() != null ? new ArrayList<>(getModel().getTaxonGroup().getTaxons()) : null;
61 getUI().getTaxonsTable().getModel().setBeans(taxons);
62 getUI().getTaxonsFilter().getHandler().loadSelectedElements(taxons);
63
64 } else if (TaxonsDialogUIModel.PROPERTY_TAXONS.equals(evt.getPropertyName())) {
65
66 getUI().getTaxonsTable().getModel().setBeans(getModel().getTaxons());
67 getUI().getTaxonsFilter().getHandler().loadSelectedElements(getModel().getTaxons());
68
69 } else if (TaxonsDialogUIModel.PROPERTY_EDITABLE.equals(evt.getPropertyName())) {
70
71 getUI().getListPanelLayout().setSelected(getModel().isEditable() ? FILTER : TABLE);
72 }
73 });
74
75
76 ui.getTaxonsTable().getTaxonsNationalMenuUI().setVisible(false);
77 }
78
79
80
81
82 public void valid() {
83
84
85 if (getModel().isEditable() && getModel().getTaxonGroup() != null) {
86 getModel().getTaxonGroup().setTaxons(new ArrayList<>(getUI().getTaxonsFilter().getModel().getElements()));
87 }
88
89
90 closeDialog();
91 }
92
93
94 @Override
95 public void cancel() {
96 closeDialog();
97 }
98 }