View Javadoc
1   package fr.ifremer.dali.ui.swing.content.home.operation;
2   
3   /*
4    * #%L
5    * Dali :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   *
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   *
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  import fr.ifremer.dali.dto.DaliBeanFactory;
27  import fr.ifremer.dali.dto.data.Coordinate1DAware;
28  import fr.ifremer.dali.dto.data.PositioningPrecisionAware;
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.*;
32  import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
33  import fr.ifremer.dali.dto.CoordinateDTO;
34  import fr.ifremer.dali.dto.ErrorDTO;
35  import fr.ifremer.dali.ui.swing.util.table.AbstractDaliRowUIModel;
36  import org.nuiton.util.beans.Binder;
37  import org.nuiton.util.beans.BinderFactory;
38  
39  import java.util.Collection;
40  import java.util.Date;
41  import java.util.List;
42  
43  /**
44   * Modele pour le tableau de prélevements pour la zone des prelevements de l'ecran d'accueil.
45   */
46  public class OperationsTableRowModel extends AbstractDaliRowUIModel<SamplingOperationDTO, OperationsTableRowModel> implements SamplingOperationDTO, PositioningPrecisionAware, Coordinate1DAware {
47  
48      /**
49       * Binder from.
50       */
51      private static final Binder<SamplingOperationDTO, OperationsTableRowModel> FROM_BEAN_BINDER =
52              BinderFactory.newBinder(SamplingOperationDTO.class, OperationsTableRowModel.class);
53  
54      /**
55       * Binder to.
56       */
57      private static final Binder<OperationsTableRowModel, SamplingOperationDTO> TO_BEAN_BINDER =
58              BinderFactory.newBinder(OperationsTableRowModel.class, SamplingOperationDTO.class);
59  
60      private final boolean readOnly;
61  
62      private DepartmentDTO analyst;
63      public static final String PROPERTY_ANALYST = "analyst";
64  
65      /**
66       * Constructor.
67       *
68       * @param readOnly a boolean.
69       */
70      public OperationsTableRowModel(boolean readOnly) {
71          super(FROM_BEAN_BINDER, TO_BEAN_BINDER);
72          this.readOnly = readOnly;
73      }
74  
75      /**
76       * {@inheritDoc}
77       */
78      @Override
79      public boolean isEditable() {
80          return !readOnly && super.isEditable();
81      }
82  
83      /**
84       * {@inheritDoc}
85       */
86      @Override
87      protected SamplingOperationDTO newBean() {
88          return DaliBeanFactory.newSamplingOperationDTO();
89      }
90  
91      public DepartmentDTO getAnalyst() {
92          return analyst;
93      }
94  
95      public void setAnalyst(DepartmentDTO analyst) {
96          DepartmentDTO oldValue = getAnalyst();
97          this.analyst = analyst;
98          firePropertyChange(PROPERTY_ANALYST, oldValue, analyst);
99      }
100 
101     /**
102      * {@inheritDoc}
103      */
104     @Override
105     public void addMeasurements(MeasurementDTO measurements) {
106         delegateObject.addMeasurements(measurements);
107     }
108 
109     /**
110      * {@inheritDoc}
111      */
112     @Override
113     public String getName() {
114            return delegateObject.getName();
115     }
116 
117     /**
118      * {@inheritDoc}
119      */
120     @Override
121     public void setName(String name) {
122         // Trim whitespaces (Mantis #52526)
123         delegateObject.setName(name != null ? name.trim() : null);
124     }
125 
126     /**
127      * {@inheritDoc}
128      */
129     @Override
130     public String getComment() {
131         return delegateObject.getComment();
132     }
133 
134     /**
135      * {@inheritDoc}
136      */
137     @Override
138     public void setComment(String comment) {
139         delegateObject.setComment(comment);
140     }
141 
142     /**
143      * {@inheritDoc}
144      */
145     @Override
146     public Double getSize() {
147         return delegateObject.getSize();
148     }
149 
150     /**
151      * {@inheritDoc}
152      */
153     @Override
154     public void setSize(Double size) {
155         delegateObject.setSize(size);
156     }
157 
158     /**
159      * {@inheritDoc}
160      */
161     @Override
162     public UnitDTO getSizeUnit() {
163         return delegateObject.getSizeUnit();
164     }
165 
166     /**
167      * {@inheritDoc}
168      */
169     @Override
170     public void setSizeUnit(UnitDTO sizeUnit) {
171         delegateObject.setSizeUnit(sizeUnit);
172     }
173 
174     /**
175      * {@inheritDoc}
176      */
177     @Override
178     public Double getDepth() {
179         return delegateObject.getDepth();
180     }
181 
182     /**
183      * {@inheritDoc}
184      */
185     @Override
186     public void setDepth(Double depth) {
187         delegateObject.setDepth(depth);
188     }
189 
190     /**
191      * {@inheritDoc}
192      */
193     @Override
194     public Double getMinDepth() {
195         return delegateObject.getMinDepth();
196     }
197 
198     /**
199      * {@inheritDoc}
200      */
201     @Override
202     public void setMinDepth(Double minDepth) {
203         delegateObject.setMinDepth(minDepth);
204     }
205 
206     /**
207      * {@inheritDoc}
208      */
209     @Override
210     public Double getMaxDepth() {
211         return delegateObject.getMaxDepth();
212     }
213 
214     /**
215      * {@inheritDoc}
216      */
217     @Override
218     public void setMaxDepth(Double maxDepth) {
219         delegateObject.setMaxDepth(maxDepth);
220     }
221 
222     /**
223      * {@inheritDoc}
224      */
225     @Override
226     public Integer getTime() {
227         return delegateObject.getTime();
228     }
229 
230     /**
231      * {@inheritDoc}
232      */
233     @Override
234     public void setTime(Integer time) {
235         delegateObject.setTime(time);
236     }
237 
238     /**
239      * {@inheritDoc}
240      */
241     @Override
242     public Integer getIndividualCount() {
243         return delegateObject.getIndividualCount();
244     }
245 
246     /**
247      * {@inheritDoc}
248      */
249     @Override
250     public void setIndividualCount(Integer individualCount) {
251         delegateObject.setIndividualCount(individualCount);
252     }
253 
254     /**
255      * {@inheritDoc}
256      */
257     @Override
258     public SamplingEquipmentDTO getSamplingEquipment() {
259         return delegateObject.getSamplingEquipment();
260     }
261 
262     /**
263      * {@inheritDoc}
264      */
265     @Override
266     public void setSamplingEquipment(SamplingEquipmentDTO samplingEquipment) {
267         delegateObject.setSamplingEquipment(samplingEquipment);
268     }
269 
270     /**
271      * {@inheritDoc}
272      */
273     @Override
274     public PositioningSystemDTO getPositioning() {
275         return delegateObject.getPositioning();
276     }
277 
278     /**
279      * {@inheritDoc}
280      */
281     @Override
282     public void setPositioning(PositioningSystemDTO positioning) {
283         delegateObject.setPositioning(positioning);
284     }
285 
286     /**
287      * {@inheritDoc}
288      */
289     @Override
290     public CoordinateDTO getCoordinate() {
291         return delegateObject.getCoordinate();
292     }
293 
294     /**
295      * {@inheritDoc}
296      */
297     @Override
298     public void setCoordinate(CoordinateDTO coordinate) {
299         delegateObject.setCoordinate(coordinate);
300     }
301 
302     /**
303      * {@inheritDoc}
304      */
305     @Override
306     public LevelDTO getDepthLevel() {
307         return delegateObject.getDepthLevel();
308     }
309 
310     /**
311      * {@inheritDoc}
312      */
313     @Override
314     public void setDepthLevel(LevelDTO depthLevel) {
315         delegateObject.setDepthLevel(depthLevel);
316     }
317 
318     /**
319      * {@inheritDoc}
320      */
321     @Override
322     public DepartmentDTO getSamplingDepartment() {
323         return delegateObject.getSamplingDepartment();
324     }
325 
326     /**
327      * {@inheritDoc}
328      */
329     @Override
330     public void setSamplingDepartment(DepartmentDTO samplingDepartment) {
331         delegateObject.setSamplingDepartment(samplingDepartment);
332     }
333 
334     /**
335      * {@inheritDoc}
336      */
337     @Override
338     public PmfmDTO getPmfms(int index) {
339         return delegateObject.getPmfms(index);
340     }
341 
342     /**
343      * {@inheritDoc}
344      */
345     @Override
346     public boolean isPmfmsEmpty() {
347         return delegateObject.isPmfmsEmpty();
348     }
349 
350     /**
351      * {@inheritDoc}
352      */
353     @Override
354     public int sizePmfms() {
355         return delegateObject.sizePmfms();
356     }
357 
358     /**
359      * {@inheritDoc}
360      */
361     @Override
362     public void addPmfms(PmfmDTO pmfms) {
363         delegateObject.addPmfms(pmfms);
364     }
365 
366     /**
367      * {@inheritDoc}
368      */
369     @Override
370     public void addAllPmfms(Collection<PmfmDTO> pmfms) {
371         delegateObject.addAllPmfms(pmfms);
372     }
373 
374     /**
375      * {@inheritDoc}
376      */
377     @Override
378     public boolean removePmfms(PmfmDTO pmfms) {
379         return delegateObject.removePmfms(pmfms);
380     }
381 
382     /**
383      * {@inheritDoc}
384      */
385     @Override
386     public boolean removeAllPmfms(Collection<PmfmDTO> pmfms) {
387         return delegateObject.removeAllPmfms(pmfms);
388     }
389 
390     /**
391      * {@inheritDoc}
392      */
393     @Override
394     public boolean containsPmfms(PmfmDTO pmfms) {
395         return delegateObject.containsPmfms(pmfms);
396     }
397 
398     /**
399      * {@inheritDoc}
400      */
401     @Override
402     public boolean containsAllPmfms(Collection<PmfmDTO> pmfms) {
403         return delegateObject.containsAllPmfms(pmfms);
404     }
405 
406     /**
407      * {@inheritDoc}
408      */
409     @Override
410     public List<PmfmDTO> getPmfms() {
411         return delegateObject.getPmfms();
412     }
413 
414     /**
415      * {@inheritDoc}
416      */
417     @Override
418     public void setPmfms(List<PmfmDTO> pmfms) {
419         delegateObject.setPmfms(pmfms);
420     }
421 
422     /**
423      * {@inheritDoc}
424      */
425     @Override
426     public PmfmDTO getIndividualPmfms(int index) {
427         return delegateObject.getIndividualPmfms(index);
428     }
429 
430     /**
431      * {@inheritDoc}
432      */
433     @Override
434     public boolean isIndividualPmfmsEmpty() {
435         return delegateObject.isIndividualPmfmsEmpty();
436     }
437 
438     /**
439      * {@inheritDoc}
440      */
441     @Override
442     public int sizeIndividualPmfms() {
443         return delegateObject.sizeIndividualPmfms();
444     }
445 
446     /**
447      * {@inheritDoc}
448      */
449     @Override
450     public void addIndividualPmfms(PmfmDTO individualPmfms) {
451         delegateObject.addIndividualPmfms(individualPmfms);
452     }
453 
454     /**
455      * {@inheritDoc}
456      */
457     @Override
458     public void addAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
459         delegateObject.addAllIndividualPmfms(individualPmfms);
460     }
461 
462     /**
463      * {@inheritDoc}
464      */
465     @Override
466     public boolean removeIndividualPmfms(PmfmDTO individualPmfms) {
467         return delegateObject.removeIndividualPmfms(individualPmfms);
468     }
469 
470     /**
471      * {@inheritDoc}
472      */
473     @Override
474     public boolean removeAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
475         return delegateObject.removeAllIndividualPmfms(individualPmfms);
476     }
477 
478     /**
479      * {@inheritDoc}
480      */
481     @Override
482     public boolean containsIndividualPmfms(PmfmDTO individualPmfms) {
483         return delegateObject.containsIndividualPmfms(individualPmfms);
484     }
485 
486     /**
487      * {@inheritDoc}
488      */
489     @Override
490     public boolean containsAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
491         return delegateObject.containsAllIndividualPmfms(individualPmfms);
492     }
493 
494     /**
495      * {@inheritDoc}
496      */
497     @Override
498     public List<PmfmDTO> getIndividualPmfms() {
499         return delegateObject.getIndividualPmfms();
500     }
501 
502     /**
503      * {@inheritDoc}
504      */
505     @Override
506     public void setIndividualPmfms(List<PmfmDTO> individualPmfms) {
507         delegateObject.setIndividualPmfms(individualPmfms);
508     }
509 
510     /**
511      * {@inheritDoc}
512      */
513     @Override
514     public MeasurementDTO getMeasurements(int index) {
515         return delegateObject.getMeasurements(index);
516     }
517 
518     /**
519      * {@inheritDoc}
520      */
521     @Override
522     public boolean isMeasurementsEmpty() {
523         return delegateObject.isMeasurementsEmpty();
524     }
525 
526     /**
527      * {@inheritDoc}
528      */
529     @Override
530     public int sizeMeasurements() {
531         return delegateObject.sizeMeasurements();
532     }
533 
534     /**
535      * {@inheritDoc}
536      */
537     @Override
538     public void addAllMeasurements(Collection<MeasurementDTO> measurements) {
539         delegateObject.addAllMeasurements(measurements);
540     }
541 
542     /**
543      * {@inheritDoc}
544      */
545     @Override
546     public boolean removeMeasurements(MeasurementDTO measurements) {
547         return delegateObject.removeMeasurements(measurements);
548     }
549 
550     /**
551      * {@inheritDoc}
552      */
553     @Override
554     public boolean removeAllMeasurements(Collection<MeasurementDTO> measurements) {
555         return delegateObject.removeAllMeasurements(measurements);
556     }
557 
558     /**
559      * {@inheritDoc}
560      */
561     @Override
562     public boolean containsMeasurements(MeasurementDTO measurements) {
563         return delegateObject.containsMeasurements(measurements);
564     }
565 
566     /**
567      * {@inheritDoc}
568      */
569     @Override
570     public boolean containsAllMeasurements(Collection<MeasurementDTO> measurements) {
571         return delegateObject.containsAllMeasurements(measurements);
572     }
573 
574     /**
575      * {@inheritDoc}
576      */
577     @Override
578     public List<MeasurementDTO> getMeasurements() {
579         return delegateObject.getMeasurements();
580     }
581 
582     /**
583      * {@inheritDoc}
584      */
585     @Override
586     public void setMeasurements(List<MeasurementDTO> measurements) {
587         delegateObject.setMeasurements(measurements);
588     }
589 
590     /**
591      * {@inheritDoc}
592      */
593     @Override
594     public MeasurementDTO getIndividualMeasurements(int index) {
595         return delegateObject.getIndividualMeasurements(index);
596     }
597 
598     /**
599      * {@inheritDoc}
600      */
601     @Override
602     public boolean isIndividualMeasurementsEmpty() {
603         return delegateObject.isIndividualMeasurementsEmpty();
604     }
605 
606     /**
607      * {@inheritDoc}
608      */
609     @Override
610     public int sizeIndividualMeasurements() {
611         return delegateObject.sizeIndividualMeasurements();
612     }
613 
614     /**
615      * {@inheritDoc}
616      */
617     @Override
618     public void addIndividualMeasurements(MeasurementDTO individualMeasurements) {
619         delegateObject.addIndividualMeasurements(individualMeasurements);
620     }
621 
622     /**
623      * {@inheritDoc}
624      */
625     @Override
626     public void addAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
627         delegateObject.addAllIndividualMeasurements(individualMeasurements);
628     }
629 
630     /**
631      * {@inheritDoc}
632      */
633     @Override
634     public boolean removeIndividualMeasurements(MeasurementDTO individualMeasurements) {
635         return delegateObject.removeIndividualMeasurements(individualMeasurements);
636     }
637 
638     /**
639      * {@inheritDoc}
640      */
641     @Override
642     public boolean removeAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
643         return delegateObject.removeAllIndividualMeasurements(individualMeasurements);
644     }
645 
646     /**
647      * {@inheritDoc}
648      */
649     @Override
650     public boolean containsIndividualMeasurements(MeasurementDTO individualMeasurements) {
651         return delegateObject.containsIndividualMeasurements(individualMeasurements);
652     }
653 
654     /**
655      * {@inheritDoc}
656      */
657     @Override
658     public boolean containsAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
659         return delegateObject.containsAllIndividualMeasurements(individualMeasurements);
660     }
661 
662     /**
663      * {@inheritDoc}
664      */
665     @Override
666     public List<MeasurementDTO> getIndividualMeasurements() {
667         return delegateObject.getIndividualMeasurements();
668     }
669 
670     /**
671      * {@inheritDoc}
672      */
673     @Override
674     public void setIndividualMeasurements(List<MeasurementDTO> individualMeasurements) {
675         delegateObject.setIndividualMeasurements(individualMeasurements);
676     }
677 
678     /**
679      * {@inheritDoc}
680      */
681     @Override
682     public ErrorDTO getErrors(int index) {
683         return delegateObject.getErrors(index);
684     }
685 
686     /**
687      * {@inheritDoc}
688      */
689     @Override
690     public boolean isErrorsEmpty() {
691         return delegateObject.isErrorsEmpty();
692     }
693 
694     /**
695      * {@inheritDoc}
696      */
697     @Override
698     public int sizeErrors() {
699         return delegateObject.sizeErrors();
700     }
701 
702     /**
703      * {@inheritDoc}
704      */
705     @Override
706     public void addErrors(ErrorDTO errors) {
707         delegateObject.addErrors(errors);
708     }
709 
710     /**
711      * {@inheritDoc}
712      */
713     @Override
714     public void addAllErrors(Collection<ErrorDTO> errors) {
715         delegateObject.addAllErrors(errors);
716     }
717 
718     /**
719      * {@inheritDoc}
720      */
721     @Override
722     public boolean removeErrors(ErrorDTO errors) {
723         return delegateObject.removeErrors(errors);
724     }
725 
726     /**
727      * {@inheritDoc}
728      */
729     @Override
730     public boolean removeAllErrors(Collection<ErrorDTO> errors) {
731         return delegateObject.removeAllErrors(errors);
732     }
733 
734     /**
735      * {@inheritDoc}
736      */
737     @Override
738     public boolean containsErrors(ErrorDTO errors) {
739         return delegateObject.containsErrors(errors);
740     }
741 
742     /**
743      * {@inheritDoc}
744      */
745     @Override
746     public boolean containsAllErrors(Collection<ErrorDTO> errors) {
747         return delegateObject.containsAllErrors(errors);
748     }
749 
750     /**
751      * {@inheritDoc}
752      */
753     @Override
754     public Collection<ErrorDTO> getErrors() {
755         return delegateObject.getErrors();
756     }
757 
758     /**
759      * {@inheritDoc}
760      */
761     @Override
762     public void setErrors(Collection<ErrorDTO> errors) {
763         delegateObject.setErrors(errors);
764     }
765 
766     /**
767      * {@inheritDoc}
768      */
769     @Override
770     public Date getControlDate() {
771         return delegateObject.getControlDate();
772     }
773 
774     /**
775      * {@inheritDoc}
776      */
777     @Override
778     public void setControlDate(Date controlDate) {
779         delegateObject.setControlDate(controlDate);
780     }
781 
782     /**
783      * {@inheritDoc}
784      */
785     @Override
786     public boolean isDirty() {
787         return delegateObject.isDirty();
788     }
789 
790     /**
791      * {@inheritDoc}
792      */
793     @Override
794     public void setDirty(boolean dirty) {
795         delegateObject.setDirty(dirty);
796     }
797 
798     /**
799      * {@inheritDoc}
800      */
801     @Override
802     public boolean isMeasurementsLoaded() {
803         return delegateObject.isMeasurementsLoaded();
804     }
805 
806     /**
807      * {@inheritDoc}
808      */
809     @Override
810     public void setMeasurementsLoaded(boolean measurementsLoaded) {
811         delegateObject.setMeasurementsLoaded(measurementsLoaded);
812     }
813 
814     /**
815      * {@inheritDoc}
816      */
817     @Override
818     public boolean isIndividualMeasurementsLoaded() {
819         return delegateObject.isIndividualMeasurementsLoaded();
820     }
821 
822     /**
823      * {@inheritDoc}
824      */
825     @Override
826     public void setIndividualMeasurementsLoaded(boolean individualMeasurementsLoaded) {
827         delegateObject.setIndividualMeasurementsLoaded(individualMeasurementsLoaded);
828     }
829 
830     /**
831      * {@inheritDoc}
832      */
833     @Override
834     public String getPositioningPrecision() {
835         return getPositioning() == null ? null : getPositioning().getPrecision();
836     }
837 
838     /**
839      * {@inheritDoc}
840      */
841     @Override
842     public Double getLatitude() {
843         return getCoordinateToModify().getMinLatitude();
844     }
845 
846     /**
847      * {@inheritDoc}
848      */
849     @Override
850     public void setLatitude(Double latitude) {
851         Double oldValue = getLatitude();
852         getCoordinateToModify().setMinLatitude(latitude);
853         firePropertyChange(PROPERTY_LATITUDE, oldValue, latitude);
854     }
855 
856     /**
857      * {@inheritDoc}
858      */
859     @Override
860     public Double getLongitude() {
861         return getCoordinateToModify().getMinLongitude();
862     }
863 
864     /**
865      * {@inheritDoc}
866      */
867     @Override
868     public void setLongitude(Double longitude) {
869         Double oldValue = getLongitude();
870         getCoordinateToModify().setMinLongitude(longitude);
871         firePropertyChange(PROPERTY_LONGITUDE, oldValue, longitude);
872     }
873 
874     private CoordinateDTO getCoordinateToModify() {
875         if (getCoordinate() == null) {
876             setCoordinate(DaliBeanFactory.newCoordinateDTO());
877         }
878         return getCoordinate();
879     }
880 }