1 package fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped;
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 com.google.common.collect.Lists;
27 import fr.ifremer.dali.dto.DaliBeans;
28 import fr.ifremer.dali.dto.ErrorAware;
29 import fr.ifremer.dali.dto.ErrorDTO;
30 import fr.ifremer.dali.dto.data.measurement.MeasurementAware;
31 import fr.ifremer.dali.dto.data.measurement.MeasurementDTO;
32 import fr.ifremer.dali.dto.data.sampling.SamplingOperationAware;
33 import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
34 import fr.ifremer.dali.dto.referential.DepartmentDTO;
35 import fr.ifremer.dali.dto.referential.TaxonDTO;
36 import fr.ifremer.dali.dto.referential.TaxonGroupDTO;
37 import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
38 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliRowUIModel;
39 import fr.ifremer.quadrige3.core.dao.technical.factorization.pmfm.AllowedQualitativeValuesMap;
40 import fr.ifremer.quadrige3.ui.core.dto.CommentAware;
41 import fr.ifremer.quadrige3.ui.core.dto.QuadrigeBean;
42 import fr.ifremer.quadrige3.ui.swing.table.ColumnIdentifier;
43
44 import java.util.ArrayList;
45 import java.util.Collection;
46 import java.util.List;
47
48
49
50
51 public class OperationMeasurementsGroupedRowModel extends AbstractDaliRowUIModel<QuadrigeBean, OperationMeasurementsGroupedRowModel>
52 implements MeasurementAware, CommentAware, ErrorAware, SamplingOperationAware {
53
54 public static final String PROPERTY_INDIVIDUAL_ID = "individualId";
55 public static final String PROPERTY_TAXON = "taxon";
56 public static final String PROPERTY_INPUT_TAXON_ID = "inputTaxonId";
57 public static final String PROPERTY_INPUT_TAXON_NAME = "inputTaxonName";
58 public static final String PROPERTY_TAXON_GROUP = "taxonGroup";
59 public static final String PROPERTY_SAMPLING_OPERATION = "samplingOperation";
60 public static final String PROPERTY_COMMENT = "comment";
61 public static final String PROPERTY_ANALYST = "analyst";
62 public static final String PROPERTY_INDIVIDUAL_PMFMS = "individualPmfms";
63 public static final String PROPERTY_INDIVIDUAL_MEASUREMENTS = "individualMeasurements";
64
65 private Integer individualId;
66 private TaxonDTO taxon;
67 private Integer inputTaxonId;
68 private String inputTaxonName;
69 private TaxonGroupDTO taxonGroup;
70 private SamplingOperationDTO samplingOperation;
71 private String comment;
72 private DepartmentDTO analyst;
73 private List<PmfmDTO> individualPmfms;
74 private List<MeasurementDTO> individualMeasurements;
75 private final List<ErrorDTO> errors;
76 private final boolean readOnly;
77
78
79 private boolean initialized;
80
81
82 private final AllowedQualitativeValuesMap allowedQualitativeValuesMap;
83
84
85 private final List<ColumnIdentifier<OperationMeasurementsGroupedRowModel>> multipleValuesOnIdentifier;
86 private final List<Integer> multipleValuesOnPmfmIds;
87
88
89
90
91
92
93 public OperationMeasurementsGroupedRowModel(boolean readOnly) {
94 super(null, null);
95 this.individualMeasurements = Lists.newArrayList();
96 this.errors = Lists.newArrayList();
97 this.allowedQualitativeValuesMap = new AllowedQualitativeValuesMap();
98 this.multipleValuesOnIdentifier = new ArrayList<>();
99 this.multipleValuesOnPmfmIds = new ArrayList<>();
100 this.readOnly = readOnly;
101 }
102
103
104
105
106 @Override
107 public boolean isEditable() {
108 return !readOnly && super.isEditable();
109 }
110
111
112
113
114 @Override
115 protected QuadrigeBean newBean() {
116 return null;
117 }
118
119
120
121
122
123
124 public Integer getIndividualId() {
125 return individualId;
126 }
127
128
129
130
131
132
133 public void setIndividualId(Integer individualId) {
134 this.individualId = individualId;
135 }
136
137
138
139
140
141
142 public TaxonGroupDTO getTaxonGroup() {
143 return taxonGroup;
144 }
145
146
147
148
149
150
151 public void setTaxonGroup(TaxonGroupDTO taxonGroup) {
152 TaxonGroupDTO oldValue = this.taxonGroup;
153 this.taxonGroup = taxonGroup;
154 firePropertyChange(PROPERTY_TAXON_GROUP, oldValue, taxonGroup);
155 }
156
157
158
159
160
161
162 public TaxonDTO getTaxon() {
163 return taxon;
164 }
165
166
167
168
169
170
171 public void setTaxon(TaxonDTO taxon) {
172 TaxonDTO oldValue = this.taxon;
173 this.taxon = taxon;
174 firePropertyChange(PROPERTY_TAXON, oldValue, taxon);
175 }
176
177 public Integer getInputTaxonId() {
178 return inputTaxonId;
179 }
180
181 public void setInputTaxonId(Integer inputTaxonId) {
182 Integer oldValue = this.inputTaxonId;
183 this.inputTaxonId = inputTaxonId;
184 firePropertyChange(PROPERTY_INPUT_TAXON_ID, oldValue, inputTaxonId);
185 }
186
187 public String getInputTaxonName() {
188 return inputTaxonName;
189 }
190
191 public void setInputTaxonName(String inputTaxonName) {
192 String oldValue = this.inputTaxonName;
193 this.inputTaxonName = inputTaxonName;
194 firePropertyChange(PROPERTY_INPUT_TAXON_NAME, oldValue, inputTaxonName);
195 }
196
197
198
199
200 @Override
201 public SamplingOperationDTO getSamplingOperation() {
202 return samplingOperation;
203 }
204
205
206
207
208
209
210 public void setSamplingOperation(SamplingOperationDTO samplingOperation) {
211 SamplingOperationDTO oldValue = this.samplingOperation;
212 this.samplingOperation = samplingOperation;
213 firePropertyChange(PROPERTY_SAMPLING_OPERATION, oldValue, samplingOperation);
214 }
215
216
217
218
219 @Override
220 public String getComment() {
221 return comment;
222 }
223
224
225
226
227 @Override
228 public void setComment(String comment) {
229 String oldValue = this.comment;
230 this.comment = comment;
231 firePropertyChange(PROPERTY_COMMENT, oldValue, comment);
232 }
233
234
235
236
237
238
239 public DepartmentDTO getAnalyst() {
240 return analyst;
241 }
242
243
244
245
246
247
248 public void setAnalyst(DepartmentDTO analyst) {
249 DepartmentDTO oldValue = this.analyst;
250 this.analyst = analyst;
251 firePropertyChange(PROPERTY_ANALYST, oldValue, analyst);
252 }
253
254
255
256
257 @Override
258 public List<PmfmDTO> getPmfms() {
259 return getIndividualPmfms();
260 }
261
262
263
264
265 @Override
266 public List<MeasurementDTO> getMeasurements() {
267 return getIndividualMeasurements();
268 }
269
270
271
272
273 @Override
274 public List<PmfmDTO> getIndividualPmfms() {
275 return individualPmfms;
276 }
277
278
279
280
281
282
283 public void setIndividualPmfms(List<PmfmDTO> individualPmfms) {
284 List<PmfmDTO> oldValue = this.individualPmfms;
285 this.individualPmfms = individualPmfms;
286 firePropertyChange(PROPERTY_INDIVIDUAL_PMFMS, oldValue, individualPmfms);
287 }
288
289
290
291
292 @Override
293 public List<MeasurementDTO> getIndividualMeasurements() {
294 return individualMeasurements;
295 }
296
297 public boolean isInitialized() {
298 return initialized;
299 }
300
301 public void setInitialized(boolean initialized) {
302 this.initialized = initialized;
303 }
304
305
306
307
308
309
310 public void setIndividualMeasurements(List<MeasurementDTO> individualMeasurements) {
311 List<MeasurementDTO> oldValue = this.individualMeasurements;
312 this.individualMeasurements = individualMeasurements;
313 firePropertyChange(PROPERTY_INDIVIDUAL_MEASUREMENTS, oldValue, individualMeasurements);
314 }
315
316 public AllowedQualitativeValuesMap getAllowedQualitativeValuesMap() {
317 return allowedQualitativeValuesMap;
318 }
319
320
321
322
323 @Override
324 public Collection<ErrorDTO> getErrors() {
325 return errors;
326 }
327
328 public boolean hasTaxonInformation() {
329 return getTaxonGroup() != null || getTaxon() != null;
330 }
331
332 public boolean hasNonEmptyMeasurements() {
333 return getIndividualMeasurements().stream().anyMatch(measurement -> !DaliBeans.isMeasurementEmpty(measurement));
334 }
335
336
337 public List<ColumnIdentifier<OperationMeasurementsGroupedRowModel>> getMultipleValuesOnIdentifier() {
338 return multipleValuesOnIdentifier;
339 }
340
341 public void addMultipleValuesOnIdentifier(ColumnIdentifier<OperationMeasurementsGroupedRowModel> identifier) {
342 multipleValuesOnIdentifier.add(identifier);
343 }
344
345 public List<Integer> getMultipleValuesOnPmfmIds() {
346 return multipleValuesOnPmfmIds;
347 }
348
349 public void addMultipleValuesOnPmfmId(Integer pmfmId) {
350 multipleValuesOnPmfmIds.add(pmfmId);
351 }
352
353
354 }