1 package fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling;
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
27 import fr.ifremer.tutti.persistence.entities.protocol.CalcifiedPiecesSamplingDefinition;
28 import fr.ifremer.tutti.persistence.entities.protocol.CalcifiedPiecesSamplingDefinitions;
29 import fr.ifremer.tutti.persistence.entities.referential.Species;
30 import fr.ifremer.tutti.service.DecoratorService;
31 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel;
32 import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
33 import org.nuiton.util.beans.Binder;
34 import org.nuiton.util.beans.BinderFactory;
35
36 import java.util.Comparator;
37
38
39
40
41
42 public class CalcifiedPiecesSamplingEditorRowModel extends AbstractTuttiBeanUIModel<CalcifiedPiecesSamplingDefinition,
43 CalcifiedPiecesSamplingEditorRowModel>
44 implements CalcifiedPiecesSamplingDefinition {
45
46 public static final String PROPERTY_PROTOCOL_SPECIES = "protocolSpecies";
47
48 public static final Comparator<CalcifiedPiecesSamplingEditorRowModel> COMPARATOR =
49 new Comparator<CalcifiedPiecesSamplingEditorRowModel>() {
50
51 private final DecoratorService.SpeciesDecoratorWithSurveyCode speciesDecorator =
52 new DecoratorService.SpeciesDecoratorWithSurveyCode();
53
54 @Override
55 public int compare(CalcifiedPiecesSamplingEditorRowModel o1, CalcifiedPiecesSamplingEditorRowModel o2) {
56
57 boolean o1null = o1 == null || o1.getProtocolSpecies() == null;
58 boolean o2null = o2 == null || o2.getProtocolSpecies() == null;
59
60 if (o1null) {
61 return o2null ? 0 : -1;
62 }
63 if (o2null) {
64 return 1;
65 }
66
67 Species species1 = o1.getProtocolSpecies().getSpecies();
68 Species species2 = o2.getProtocolSpecies().getSpecies();
69 if (!(species1.equals(species2))) {
70 return speciesDecorator.toString(species1).compareTo(speciesDecorator.toString(species2));
71 }
72
73 boolean withMaturity = o1.getMaturity() != null;
74
75 if (withMaturity && !o1.getMaturity().equals(o2.getMaturity())) {
76 return o1.getMaturity() ? 1 : -1;
77 }
78
79 return o1.getMinSize() - o2.getMinSize();
80 }
81 };
82
83
84
85
86
87
88 protected final CalcifiedPiecesSamplingDefinition editObject =
89 CalcifiedPiecesSamplingDefinitions.newCalcifiedPiecesSamplingDefinition();
90
91 protected EditProtocolSpeciesRowModel protocolSpecies;
92
93 protected static final Binder<CalcifiedPiecesSamplingDefinition, CalcifiedPiecesSamplingEditorRowModel> fromBeanBinder =
94 BinderFactory.newBinder(CalcifiedPiecesSamplingDefinition.class,
95 CalcifiedPiecesSamplingEditorRowModel.class);
96
97 protected static final Binder<CalcifiedPiecesSamplingEditorRowModel, CalcifiedPiecesSamplingDefinition> toBeanBinder =
98 BinderFactory.newBinder(CalcifiedPiecesSamplingEditorRowModel.class,
99 CalcifiedPiecesSamplingDefinition.class);
100
101 public CalcifiedPiecesSamplingEditorRowModel() {
102 super(fromBeanBinder, toBeanBinder);
103 }
104
105 @Override
106 public Integer getMaxSize() {
107 return editObject.getMaxSize();
108 }
109
110 @Override
111 public void setMaxSize(Integer maxSize) {
112 Object oldValue = getMaxSize();
113 editObject.setMaxSize(maxSize);
114 firePropertyChange(PROPERTY_MAX_SIZE, oldValue, maxSize);
115 }
116
117 @Override
118 public int getMinSize() {
119 return editObject.getMinSize();
120 }
121
122 @Override
123 public void setMinSize(int minSize) {
124 Object oldValue = getMinSize();
125 editObject.setMinSize(minSize);
126 firePropertyChange(PROPERTY_MIN_SIZE, oldValue, minSize);
127 }
128
129 public void setMinSize(Integer minSize) {
130 if (minSize != null) {
131 setMinSize(minSize.intValue());
132 } else {
133 firePropertyChange(PROPERTY_MIN_SIZE, getMinSize(), null);
134 }
135 }
136
137 public EditProtocolSpeciesRowModel getProtocolSpecies() {
138 return protocolSpecies;
139 }
140
141 public void setProtocolSpecies(EditProtocolSpeciesRowModel protocolSpecies) {
142 Object oldValue = getProtocolSpecies();
143 this.protocolSpecies = protocolSpecies;
144 firePropertyChange(PROPERTY_PROTOCOL_SPECIES, oldValue, protocolSpecies);
145 }
146
147 @Override
148 public Boolean getMaturity() {
149 return editObject.getMaturity();
150 }
151
152 @Override
153 public void setMaturity(Boolean maturity) {
154 Object oldValue = getMaturity();
155 editObject.setMaturity(maturity);
156 firePropertyChange(PROPERTY_MATURITY, oldValue, maturity);
157 }
158
159 @Override
160 public Integer getOperationLimitation() {
161 return editObject.getOperationLimitation();
162 }
163
164 @Override
165 public void setOperationLimitation(Integer operationLimitation) {
166 Object oldValue = getOperationLimitation();
167 editObject.setOperationLimitation(operationLimitation);
168 firePropertyChange(PROPERTY_OPERATION_LIMITATION, oldValue, operationLimitation);
169 }
170
171 @Override
172 public Integer getMaxByLenghtStep() {
173 return editObject.getMaxByLenghtStep();
174 }
175
176 @Override
177 public void setMaxByLenghtStep(Integer maxByLenghtStep) {
178 Object oldValue = getMaxByLenghtStep();
179 editObject.setMaxByLenghtStep(maxByLenghtStep);
180 firePropertyChange(PROPERTY_MAX_BY_LENGHT_STEP, oldValue, maxByLenghtStep);
181 }
182
183 @Override
184 public int getSamplingInterval() {
185 return editObject.getSamplingInterval();
186 }
187
188 @Override
189 public void setSamplingInterval(int samplingInterval) {
190 Object oldValue = getSamplingInterval();
191 editObject.setSamplingInterval(samplingInterval);
192 firePropertyChange(PROPERTY_SAMPLING_INTERVAL, oldValue, samplingInterval);
193 }
194
195 public void setSamplingInterval(Integer samplingInterval) {
196 if (samplingInterval != null) {
197 setMinSize(samplingInterval.intValue());
198 } else {
199 firePropertyChange(PROPERTY_SAMPLING_INTERVAL, getSamplingInterval(), null);
200 }
201 }
202
203 @Override
204 public boolean isSex() {
205 return editObject.isSex();
206 }
207
208 @Override
209 public void setSex(boolean sex) {
210 Object oldValue = isSex();
211 editObject.setSex(sex);
212 firePropertyChange(PROPERTY_SEX, oldValue, sex);
213 }
214
215 @Override
216 public Integer getZoneLimitation() {
217 return editObject.getZoneLimitation();
218 }
219
220 @Override
221 public void setZoneLimitation(Integer zoneLimitation) {
222 Object oldValue = getZoneLimitation();
223 editObject.setZoneLimitation(zoneLimitation);
224 firePropertyChange(PROPERTY_ZONE_LIMITATION, oldValue, zoneLimitation);
225 }
226
227 @Override
228 protected CalcifiedPiecesSamplingDefinition newEntity() {
229 return CalcifiedPiecesSamplingDefinitions.newCalcifiedPiecesSamplingDefinition();
230 }
231 }