1 package fr.ifremer.dali.ui.swing.content.manage.filter.select;
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.dali.dto.DaliBeans;
27 import fr.ifremer.dali.dto.configuration.filter.FilterDTO;
28 import fr.ifremer.dali.service.StatusFilter;
29 import fr.ifremer.dali.ui.swing.content.manage.filter.campaign.element.FilterElementCampaignUI;
30 import fr.ifremer.dali.ui.swing.content.manage.filter.department.element.FilterElementDepartmentUI;
31 import fr.ifremer.dali.ui.swing.content.manage.filter.element.AbstractFilterElementUIHandler;
32 import fr.ifremer.dali.ui.swing.content.manage.filter.element.FilterElementUI;
33 import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUI;
34 import fr.ifremer.dali.ui.swing.content.manage.filter.equipment.element.FilterElementEquipmentUI;
35 import fr.ifremer.dali.ui.swing.content.manage.filter.location.element.FilterElementLocationUI;
36 import fr.ifremer.dali.ui.swing.content.manage.filter.pmfm.element.FilterElementPmfmUI;
37 import fr.ifremer.dali.ui.swing.content.manage.filter.program.element.FilterElementProgramUI;
38 import fr.ifremer.dali.ui.swing.content.manage.filter.taxon.element.FilterElementTaxonUI;
39 import fr.ifremer.dali.ui.swing.content.manage.filter.taxongroup.element.FilterElementTaxonGroupUI;
40 import fr.ifremer.dali.ui.swing.content.manage.filter.user.element.FilterElementUserUI;
41 import fr.ifremer.dali.ui.swing.util.AbstractDaliUIHandler;
42 import fr.ifremer.quadrige3.core.dao.system.filter.FilterTypeId;
43 import fr.ifremer.quadrige3.core.dao.technical.Assert;
44 import fr.ifremer.quadrige3.ui.core.dto.referential.StatusDTO;
45 import org.nuiton.jaxx.application.swing.util.Cancelable;
46
47
48
49
50 public class SelectFilterUIHandler extends AbstractDaliUIHandler<SelectFilterUIModel, SelectFilterUI> implements Cancelable {
51
52 private FilterElementUI filterElementUI = null;
53
54
55 @Override
56 public void beforeInit(SelectFilterUI ui) {
57 super.beforeInit(ui);
58
59 SelectFilterUIModel model = new SelectFilterUIModel();
60 ui.setContextValue(model);
61 }
62
63
64 @Override
65 @SuppressWarnings("unchecked")
66 public void afterInit(final SelectFilterUI ui) {
67 initUI(ui);
68
69 Assert.notNull(ui.filterTypeId);
70 FilterTypeId filterTypeId = FilterTypeId.fromValue(ui.filterTypeId);
71 Assert.notNull(filterTypeId);
72
73
74 switch (filterTypeId) {
75 case PROGRAM:
76 filterElementUI = new FilterElementProgramUI(ui);
77 break;
78 case MONITORING_LOCATION:
79 filterElementUI = new FilterElementLocationUI(ui);
80 break;
81 case TAXON_NAME:
82 filterElementUI = new FilterElementTaxonUI(ui);
83 break;
84 case TAXON_GROUP:
85 filterElementUI = new FilterElementTaxonGroupUI(ui);
86 break;
87 case DEPARTMENT:
88 filterElementUI = new FilterElementDepartmentUI(ui);
89 break;
90 case PMFM:
91 filterElementUI = new FilterElementPmfmUI(ui);
92 break;
93 case CAMPAIGN:
94 filterElementUI = new FilterElementCampaignUI(ui);
95 break;
96 case QUSER:
97 filterElementUI = new FilterElementUserUI(ui);
98 break;
99 case SAMPLING_EQUIPMENT:
100 filterElementUI = new FilterElementEquipmentUI(ui);
101 break;
102 }
103
104 Assert.notNull(filterElementUI);
105
106 ui.getFilterElementPanel().add(filterElementUI);
107 ui.get$objectMap().put("filterElementUI", filterElementUI);
108
109 AbstractFilterElementUIHandler filterElementUIHandler = ((AbstractFilterElementUIHandler) filterElementUI.getHandler());
110 filterElementUIHandler.enable();
111
112
113 setDefaultStatus(
114 getContext().getReferentialService().getStatus(StatusFilter.ACTIVE).get(0)
115 );
116
117
118 if (getContext().getSelectedContext() != null && !getContext().getSelectedContext().isFiltersEmpty()) {
119 FilterDTO filter = DaliBeans.findByProperty(getContext().getSelectedContext().getFilters(), FilterDTO.PROPERTY_FILTER_TYPE_ID, filterTypeId.getValue());
120 if (filter != null) {
121 ApplyFilterUI applyFilterUI = filterElementUIHandler.getReferentialMenuUI().getHandler().getApplyFilterUI();
122 applyFilterUI.getModel().setFilter(filter);
123 applyFilterUI.getApplyButton().doClick();
124 }
125 }
126
127 getModel().addPropertyChangeListener(SelectFilterUIModel.PROPERTY_SELECTED_ELEMENTS,
128 evt -> ((AbstractFilterElementUIHandler) filterElementUI.getHandler()).loadSelectedElements(getModel().getSelectedElements()));
129 }
130
131 public void setEnabled(boolean enabled) {
132 if (filterElementUI != null) {
133 AbstractFilterElementUIHandler filterElementUIHandler = ((AbstractFilterElementUIHandler) filterElementUI.getHandler());
134 if (enabled)
135 filterElementUIHandler.enable();
136 else
137 filterElementUIHandler.disable();
138 }
139
140 getUI().getValidateButton().setEnabled(enabled);
141 }
142
143
144 public void setDefaultStatus(StatusDTO status) {
145 AbstractFilterElementUIHandler filterElementUIHandler = ((AbstractFilterElementUIHandler) filterElementUI.getHandler());
146 filterElementUIHandler.getReferentialMenuUI().getModel().setStatus(status);
147 }
148
149
150
151
152 @SuppressWarnings("unchecked")
153 public void valid() {
154
155 getModel().setSelectedElements(filterElementUI.getModel().getElements());
156 getModel().setValid(true);
157
158 closeDialog();
159 }
160
161
162 @Override
163 public void cancel() {
164
165 getModel().setValid(false);
166
167 closeDialog();
168 }
169 }