View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.operation.catches.accidental;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * %%
7    * Copyright (C) 2012 - 2014 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the 
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public 
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import com.google.common.collect.Lists;
26  import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode;
27  import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
28  import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
29  import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs;
30  import fr.ifremer.tutti.persistence.entities.data.Attachment;
31  import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
32  import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
33  import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
34  import fr.ifremer.tutti.persistence.entities.referential.Species;
35  import fr.ifremer.tutti.type.WeightUnit;
36  import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
37  import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
38  import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
39  import org.nuiton.util.beans.Binder;
40  import org.nuiton.util.beans.BinderFactory;
41  
42  import java.util.Collection;
43  import java.util.List;
44  
45  /**
46   * Define a benthos batch row.
47   *
48   * @author Tony Chemit - chemit@codelutin.com
49   * @since 0.2
50   */
51  public class AccidentalBatchRowModel extends AbstractTuttiBeanUIModel<AccidentalBatch, AccidentalBatchRowModel>
52          implements AttachmentModelAware, AccidentalBatch, CaracteristicMapColumnRowModel {
53  
54      private static final long serialVersionUID = 1L;
55  
56      /**
57       * Delegate edit object.
58       *
59       * @since 1.3
60       */
61      protected final AccidentalBatch editObject =
62              AccidentalBatchs.newAccidentalBatch();
63  
64      /**
65       * Attachments (should never be null).
66       *
67       * @since 0.2
68       */
69      protected final List<Attachment> attachment = Lists.newArrayList();
70  
71      /**
72       * Weight unit.
73       *
74       * @since 2.5
75       */
76      protected final WeightUnit weightUnit;
77  
78      protected static final Binder<AccidentalBatch, AccidentalBatchRowModel> fromBeanBinder =
79              BinderFactory.newBinder(AccidentalBatch.class,
80                                      AccidentalBatchRowModel.class);
81  
82      protected static final Binder<AccidentalBatchRowModel, AccidentalBatch> toBeanBinder =
83              BinderFactory.newBinder(AccidentalBatchRowModel.class,
84                                      AccidentalBatch.class);
85  
86      public AccidentalBatchRowModel(WeightUnit weightUnit) {
87          super(fromBeanBinder, toBeanBinder);
88          this.weightUnit = weightUnit;
89      }
90  
91      public AccidentalBatchRowModel(WeightUnit weightUnit,
92                                     AccidentalBatch entity) {
93          this(weightUnit);
94          fromEntity(entity);
95      }
96  
97      //------------------------------------------------------------------------//
98      //-- AbstractTuttiBeanUIModel                                           --//
99      //------------------------------------------------------------------------//
100 
101     @Override
102     protected AccidentalBatch newEntity() {
103         return AccidentalBatchs.newAccidentalBatch();
104     }
105 
106     @Override
107     public void fromEntity(AccidentalBatch entity) {
108         super.fromEntity(entity);
109 
110         // convert weight
111         setWeight(weightUnit.fromEntity(getWeight()));
112     }
113 
114     @Override
115     public AccidentalBatch toEntity() {
116         AccidentalBatch result = super.toEntity();
117 
118         // convert weight
119         result.setWeight(weightUnit.toEntity(getWeight()));
120         return result;
121     }
122 
123     //------------------------------------------------------------------------//
124     //-- AccidentalBatch                                                    --//
125     //------------------------------------------------------------------------//
126 
127     @Override
128     public FishingOperation getFishingOperation() {
129         return editObject.getFishingOperation();
130     }
131 
132     @Override
133     public void setFishingOperation(FishingOperation fishingOperation) {
134         editObject.setFishingOperation(fishingOperation);
135     }
136 
137     @Override
138     public Float getWeight() {
139         return editObject.getWeight();
140     }
141 
142     @Override
143     public void setWeight(Float weight) {
144         Object oldValue = getWeight();
145         editObject.setWeight(weight);
146         firePropertyChange(PROPERTY_WEIGHT, oldValue, weight);
147     }
148 
149     @Override
150     public Species getSpecies() {
151         return editObject.getSpecies();
152     }
153 
154     @Override
155     public void setSpecies(Species species) {
156         Object oldValue = getSpecies();
157         editObject.setSpecies(species);
158         firePropertyChange(PROPERTY_SPECIES, oldValue, species);
159     }
160 
161     @Override
162     public Float getSize() {
163         return editObject.getSize();
164     }
165 
166     @Override
167     public void setSize(Float size) {
168         Object oldValue = getSize();
169         editObject.setSize(size);
170         firePropertyChange(PROPERTY_SIZE, oldValue, size);
171     }
172 
173     @Override
174     public Caracteristic getLengthStepCaracteristic() {
175         return editObject.getLengthStepCaracteristic();
176     }
177 
178     @Override
179     public void setLengthStepCaracteristic(Caracteristic lengthStepCaracteristic) {
180         Object oldValue = getLengthStepCaracteristic();
181         editObject.setLengthStepCaracteristic(lengthStepCaracteristic);
182         firePropertyChange(PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, lengthStepCaracteristic);
183     }
184 
185     @Override
186     public CaracteristicQualitativeValue getGender() {
187         return editObject.getGender();
188     }
189 
190     @Override
191     public void setGender(CaracteristicQualitativeValue gender) {
192         Object oldValue = getLengthStepCaracteristic();
193         editObject.setGender(gender);
194         firePropertyChange(PROPERTY_GENDER, oldValue, gender);
195     }
196 
197     @Override
198     public CaracteristicQualitativeValue getDeadOrAlive() {
199         return editObject.getDeadOrAlive();
200     }
201 
202     @Override
203     public void setDeadOrAlive(CaracteristicQualitativeValue deadOrAlive) {
204         Object oldValue = getLengthStepCaracteristic();
205         editObject.setDeadOrAlive(deadOrAlive);
206         firePropertyChange(PROPERTY_DEAD_OR_ALIVE, oldValue, deadOrAlive);
207     }
208 
209     @Override
210     public CaracteristicMap getCaracteristics() {
211         return editObject.getCaracteristics();
212     }
213 
214     @Override
215     public void setCaracteristics(CaracteristicMap caracteristics) {
216         Object oldValue = getCaracteristics();
217         editObject.setCaracteristics(caracteristics);
218         firePropertyChange(PROPERTY_CARACTERISTICS, oldValue, caracteristics);
219     }
220 
221     @Override
222     public String getComment() {
223         return editObject.getComment();
224     }
225 
226     @Override
227     public void setComment(String comment) {
228         Object oldValue = getComment();
229         editObject.setComment(comment);
230         firePropertyChange(PROPERTY_COMMENT, oldValue, comment);
231     }
232 
233     @Override
234     public void setRankOrder(Integer rankOrder) {
235         editObject.setRankOrder(rankOrder);
236     }
237 
238     @Override
239     public Integer getRankOrder() {
240         return editObject.getRankOrder();
241     }
242 
243     @Override
244     public String getSynchronizationStatus() {
245         return editObject.getSynchronizationStatus();
246     }
247 
248     @Override
249     public void setSynchronizationStatus(String synchronizationStatus) {
250         String oldValue = getSynchronizationStatus();
251         editObject.setSynchronizationStatus(synchronizationStatus);
252         firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
253     }
254 
255     //------------------------------------------------------------------------//
256     //-- AttachmentModelAware                                               --//
257     //------------------------------------------------------------------------//
258 
259     @Override
260     public ObjectTypeCode getObjectType() {
261         return ObjectTypeCode.SAMPLE;
262     }
263 
264     @Override
265     public Integer getObjectId() {
266         return getIdAsInt();
267     }
268 
269     @Override
270     public List<Attachment> getAttachment() {
271         return attachment;
272     }
273 
274     @Override
275     public void addAllAttachment(Collection<Attachment> attachments) {
276         this.attachment.addAll(attachments);
277         firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
278     }
279 
280     @Override
281     public void addAttachment(Attachment attachment) {
282         this.attachment.add(attachment);
283         firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
284     }
285 
286     @Override
287     public void removeAllAttachment(Collection<Attachment> attachments) {
288         this.attachment.removeAll(attachments);
289         firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
290     }
291 
292     @Override
293     public void removeAttachment(Attachment attachment) {
294         this.attachment.remove(attachment);
295         firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
296     }
297 }