1 package fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.shared;
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.ArrayListMultimap;
27 import com.google.common.collect.Multimap;
28 import fr.ifremer.dali.dto.configuration.control.PreconditionRuleDTO;
29 import fr.ifremer.dali.dto.data.measurement.MeasurementDTO;
30 import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
31 import fr.ifremer.dali.dto.referential.TaxonDTO;
32 import fr.ifremer.dali.dto.referential.TaxonGroupDTO;
33 import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
34 import fr.ifremer.dali.ui.swing.content.observation.ObservationUIHandler;
35 import fr.ifremer.dali.ui.swing.content.observation.ObservationUIModel;
36 import fr.ifremer.dali.ui.swing.content.observation.operation.measurement.OperationMeasurementsTabUIModel;
37 import fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.OperationMeasurementsFilter;
38 import fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.OperationMeasurementsGroupedRowModel;
39 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIModel;
40
41 import java.util.Collection;
42 import java.util.List;
43
44
45
46
47 public abstract class AbstractOperationMeasurementsGroupedTableUIModel<
48 B extends MeasurementDTO,
49 R extends OperationMeasurementsGroupedRowModel,
50 M extends AbstractOperationMeasurementsGroupedTableUIModel<B, R, M>
51 >
52 extends AbstractDaliTableUIModel<B, R, M> {
53
54 public static final String PROPERTY_SURVEY = "survey";
55 public static final String PROPERTY_MEASUREMENT_FILTER = "measurementFilter";
56
57 public static final String PROPERTY_SAMPLING_OPERATION = "samplingOperation";
58 public static final String PROPERTY_ADJUSTING = "adjusting";
59 public static final String PROPERTY_MEASUREMENTS_LOADED = "measurementsLoaded";
60
61 private OperationMeasurementsTabUIModel parentModel;
62 private ObservationUIModel survey;
63 private ObservationUIHandler observationHandler;
64 private OperationMeasurementsFilter measurementFilter;
65 private boolean measurementsLoaded;
66
67 private List<PmfmDTO> uniquePmfms;
68
69 private Multimap<Integer, PreconditionRuleDTO> preconditionRulesByPmfmIdMap;
70 private boolean adjusting;
71
72
73
74
75 public AbstractOperationMeasurementsGroupedTableUIModel() {
76 super();
77 }
78
79 public OperationMeasurementsTabUIModel getParentModel() {
80 return parentModel;
81 }
82
83 public void setParentModel(OperationMeasurementsTabUIModel parentModel) {
84 this.parentModel = parentModel;
85 }
86
87
88
89
90
91
92 public ObservationUIModel getSurvey() {
93 return survey;
94 }
95
96
97
98
99
100
101 public void setSurvey(ObservationUIModel survey) {
102 this.survey = survey;
103 firePropertyChange(PROPERTY_SURVEY, null, survey);
104 }
105
106 public ObservationUIHandler getObservationUIHandler() {
107 return observationHandler;
108 }
109
110 public void setObservationHandler(ObservationUIHandler observationHandler) {
111 this.observationHandler = observationHandler;
112 }
113
114
115
116
117
118
119 public List<SamplingOperationDTO> getSamplingOperations() {
120 return survey == null ? null : (List<SamplingOperationDTO>) survey.getSamplingOperations();
121 }
122
123
124
125
126
127
128 public void setMeasurementFilter(OperationMeasurementsFilter measurementFilter) {
129 this.measurementFilter = measurementFilter;
130 firePropertyChange(PROPERTY_MEASUREMENT_FILTER, null, measurementFilter);
131 }
132
133
134
135
136
137
138 public TaxonGroupDTO getTaxonGroupFilter() {
139 return measurementFilter == null ? null : measurementFilter.getTaxonGroup();
140 }
141
142
143
144
145
146
147 public TaxonDTO getTaxonFilter() {
148 return measurementFilter == null ? null : measurementFilter.getTaxon();
149 }
150
151
152
153
154
155
156 public SamplingOperationDTO getSamplingFilter() {
157 return measurementFilter == null ? null : measurementFilter.getSamplingOperation();
158 }
159
160
161
162
163
164
165 public List<PmfmDTO> getUniquePmfms() {
166 return uniquePmfms;
167 }
168
169
170
171
172
173
174 public void setUniquePmfms(List<PmfmDTO> uniquePmfms) {
175 this.uniquePmfms = uniquePmfms;
176 }
177
178 public Multimap<Integer, PreconditionRuleDTO> getPreconditionRulesByPmfmIdMap() {
179 if (preconditionRulesByPmfmIdMap == null) preconditionRulesByPmfmIdMap = ArrayListMultimap.create();
180 return preconditionRulesByPmfmIdMap;
181 }
182
183 public void addPreconditionRuleByPmfmId(Integer pmfmId, PreconditionRuleDTO precondition) {
184 getPreconditionRulesByPmfmIdMap().put(pmfmId, precondition);
185 }
186
187 public boolean isPmfmIdHasPreconditions(int pmfmId) {
188 return getPreconditionRulesByPmfmIdMap().containsKey(pmfmId);
189 }
190
191 public Collection<PreconditionRuleDTO> getPreconditionRulesByPmfmId(int pmfmId) {
192 return getPreconditionRulesByPmfmIdMap().get(pmfmId);
193 }
194
195 public boolean isAdjusting() {
196 return adjusting;
197 }
198
199 public void setAdjusting(boolean adjusting) {
200 this.adjusting = adjusting;
201 }
202
203 public boolean isMeasurementsLoaded() {
204 return measurementsLoaded;
205 }
206
207 public void setMeasurementsLoaded(boolean measurementsLoaded) {
208 this.measurementsLoaded = measurementsLoaded;
209 firePropertyChange(PROPERTY_MEASUREMENTS_LOADED, null, measurementsLoaded);
210 }
211
212 }