View Javadoc
1   package fr.ifremer.dali.ui.swing.content.home.survey;
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.*;
27  import fr.ifremer.dali.dto.configuration.programStrategy.PmfmStrategyDTO;
28  import fr.ifremer.dali.dto.configuration.programStrategy.ProgramDTO;
29  import fr.ifremer.dali.dto.data.Coordinate2DAware;
30  import fr.ifremer.dali.dto.data.PositioningPrecisionAware;
31  import fr.ifremer.dali.dto.data.measurement.MeasurementDTO;
32  import fr.ifremer.dali.dto.data.photo.PhotoDTO;
33  import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
34  import fr.ifremer.dali.dto.data.survey.CampaignDTO;
35  import fr.ifremer.dali.dto.data.survey.OccasionDTO;
36  import fr.ifremer.dali.dto.data.survey.SurveyDTO;
37  import fr.ifremer.dali.dto.enums.StateValues;
38  import fr.ifremer.dali.dto.referential.*;
39  import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
40  import fr.ifremer.dali.ui.swing.util.table.AbstractDaliRowUIModel;
41  import org.nuiton.util.beans.Binder;
42  import org.nuiton.util.beans.BinderFactory;
43  
44  import java.time.LocalDate;
45  import java.util.Collection;
46  import java.util.Date;
47  import java.util.List;
48  
49  /**
50   * Modele pour le tableau des obervations du tableau d accueil.
51   */
52  public class SurveysTableRowModel extends AbstractDaliRowUIModel<SurveyDTO, SurveysTableRowModel> implements SurveyDTO, PositioningPrecisionAware, Coordinate2DAware {
53  
54      private static final Binder<SurveyDTO, SurveysTableRowModel> FROM_BEAN_BINDER =
55              BinderFactory.newBinder(SurveyDTO.class, SurveysTableRowModel.class);
56  
57      private static final Binder<SurveysTableRowModel, SurveyDTO> TO_BEAN_BINDER =
58              BinderFactory.newBinder(SurveysTableRowModel.class, SurveyDTO.class);
59  
60      /** Constant <code>PROPERTY_STATE="state"</code> */
61      public static final String PROPERTY_STATE = "state";
62  
63      private boolean operationsValid;
64      private boolean forceNoCampaignFilter;
65      private boolean forceNoLocationFilter;
66      private boolean forceNoProgramFilter;
67  
68      /**
69       * <p>Constructor for SurveysTableRowModel.</p>
70       */
71      public SurveysTableRowModel() {
72          super(FROM_BEAN_BINDER, TO_BEAN_BINDER);
73      }
74  
75      /** {@inheritDoc} */
76      @Override
77      protected SurveyDTO newBean() {
78          return DaliBeanFactory.newSurveyDTO();
79      }
80  
81      /**
82       * <p>getState.</p>
83       *
84       * @return the state
85       */
86      public StateDTO getState() {
87  
88          if (getControlDate() != null) {
89              if (getValidationDate() != null) {
90                  if (getQualificationDate() != null) {
91                      return StateValues.QUALIFIED.toStateDTO();
92                  }
93                  return StateValues.VALIDATED.toStateDTO();
94              }
95              return StateValues.CONTROLLED.toStateDTO();
96          }
97          return null;
98      }
99  
100     /**
101      * <p>isOperationsValid.</p>
102      *
103      * @return a boolean.
104      */
105     public boolean isOperationsValid() {
106         return operationsValid || isSamplingOperationsEmpty();
107     }
108 
109     /**
110      * <p>Setter for the field <code>operationsValid</code>.</p>
111      *
112      * @param operationsValid a boolean.
113      */
114     public void setOperationsValid(boolean operationsValid) {
115         this.operationsValid = operationsValid;
116     }
117 
118     public boolean isForceNoCampaignFilter() {
119         return forceNoCampaignFilter;
120     }
121 
122     public void setForceNoCampaignFilter(boolean forceNoCampaignFilter) {
123         this.forceNoCampaignFilter = forceNoCampaignFilter;
124     }
125 
126     public boolean isForceNoLocationFilter() {
127         return forceNoLocationFilter;
128     }
129 
130     public void setForceNoLocationFilter(boolean forceNoLocationFilter) {
131         this.forceNoLocationFilter = forceNoLocationFilter;
132     }
133 
134     public boolean isForceNoProgramFilter() {
135         return forceNoProgramFilter;
136     }
137 
138     public void setForceNoProgramFilter(boolean forceNoProgramFilter) {
139         this.forceNoProgramFilter = forceNoProgramFilter;
140     }
141 
142     /** {@inheritDoc} */
143     @Override
144     public boolean isEditable() {
145         // the row is no more editable when the survey is validated or if its synchronization status is not DIRTY
146         return !DaliBeans.isSurveyValidated(this) && super.isEditable();
147     }
148 
149     /* DELEGATE METHODS */
150 
151     /** {@inheritDoc} */
152     @Override
153     public String getName() {
154         return delegateObject.getName();
155     }
156 
157     /** {@inheritDoc} */
158     @Override
159     public void setName(String name) {
160         // Trim whitespaces (Mantis #52677)
161         delegateObject.setName(name != null ? name.trim() : null);
162     }
163 
164     /** {@inheritDoc} */
165     @Override
166     public LocalDate getDate() {
167         return delegateObject.getDate();
168     }
169 
170     /** {@inheritDoc} */
171     @Override
172     public void setDate(LocalDate date) {
173         delegateObject.setDate(date);
174     }
175 
176     /** {@inheritDoc} */
177     @Override
178     public Integer getTime() {
179         return delegateObject.getTime();
180     }
181 
182     /** {@inheritDoc} */
183     @Override
184     public void setTime(Integer time) {
185         delegateObject.setTime(time);
186     }
187 
188     /** {@inheritDoc} */
189     @Override
190     public Double getBottomDepth() {
191         return delegateObject.getBottomDepth();
192     }
193 
194     /** {@inheritDoc} */
195     @Override
196     public void setBottomDepth(Double bottomDepth) {
197         delegateObject.setBottomDepth(bottomDepth);
198     }
199 
200     /** {@inheritDoc} */
201     @Override
202     public String getComment() {
203         return delegateObject.getComment();
204     }
205 
206     /** {@inheritDoc} */
207     @Override
208     public void setComment(String comment) {
209         delegateObject.setComment(comment);
210     }
211 
212     /** {@inheritDoc} */
213     @Override
214     public String getPositioningComment() {
215         return delegateObject.getPositioningComment();
216     }
217 
218     /** {@inheritDoc} */
219     @Override
220     public void setPositioningComment(String positioningComment) {
221         delegateObject.setPositioningComment(positioningComment);
222     }
223 
224     /** {@inheritDoc} */
225     @Override
226     public String getQualificationComment() {
227         return delegateObject.getQualificationComment();
228     }
229 
230     /** {@inheritDoc} */
231     @Override
232     public void setQualificationComment(String qualificationComment) {
233         delegateObject.setQualificationComment(qualificationComment);
234     }
235 
236     /** {@inheritDoc} */
237     @Override
238     public Date getUpdateDate() {
239         return delegateObject.getUpdateDate();
240     }
241 
242     /** {@inheritDoc} */
243     @Override
244     public void setUpdateDate(Date updateDate) {
245         delegateObject.setUpdateDate(updateDate);
246     }
247 
248     /** {@inheritDoc} */
249     @Override
250     public Date getControlDate() {
251         return delegateObject.getControlDate();
252     }
253 
254     /** {@inheritDoc} */
255     @Override
256     public void setControlDate(Date controlDate) {
257         delegateObject.setControlDate(controlDate);
258     }
259 
260     /** {@inheritDoc} */
261     @Override
262     public Date getValidationDate() {
263         return delegateObject.getValidationDate();
264     }
265 
266     /** {@inheritDoc} */
267     @Override
268     public void setQualificationDate(Date validationDate) {
269         delegateObject.setQualificationDate(validationDate);
270     }
271 
272     /** {@inheritDoc} */
273     @Override
274     public Date getQualificationDate() {
275         return delegateObject.getQualificationDate();
276     }
277 
278     /** {@inheritDoc} */
279     @Override
280     public void setValidationDate(Date validationDate) {
281         delegateObject.setValidationDate(validationDate);
282     }
283 
284     @Override
285     public String getValidationComment() {
286         return delegateObject.getValidationComment();
287     }
288 
289     @Override
290     public void setValidationComment(String validationComment) {
291         delegateObject.setValidationComment(validationComment);
292     }
293 
294     /** {@inheritDoc} */
295     @Override
296     public boolean isSamplingOperationsLoaded() {
297         return delegateObject.isSamplingOperationsLoaded();
298     }
299 
300     /** {@inheritDoc} */
301     @Override
302     public void setSamplingOperationsLoaded(boolean samplingOperationsLoaded) {
303         delegateObject.setSamplingOperationsLoaded(samplingOperationsLoaded);
304     }
305 
306     /** {@inheritDoc} */
307     @Override
308     public boolean isObserversLoaded() {
309         return delegateObject.isObserversLoaded();
310     }
311 
312     /** {@inheritDoc} */
313     @Override
314     public void setObserversLoaded(boolean observersLoaded) {
315         delegateObject.setObserversLoaded(observersLoaded);
316     }
317 
318     /** {@inheritDoc} */
319     @Override
320     public boolean isMeasurementsLoaded() {
321         return delegateObject.isMeasurementsLoaded();
322     }
323 
324     /** {@inheritDoc} */
325     @Override
326     public void setMeasurementsLoaded(boolean measurementsLoaded) {
327         delegateObject.setMeasurementsLoaded(measurementsLoaded);
328     }
329 
330     /** {@inheritDoc} */
331     @Override
332     public boolean isPhotosLoaded() {
333         return delegateObject.isPhotosLoaded();
334     }
335 
336     /** {@inheritDoc} */
337     @Override
338     public void setPhotosLoaded(boolean photosLoaded) {
339         delegateObject.setPhotosLoaded(photosLoaded);
340     }
341 
342     /** {@inheritDoc} */
343     @Override
344     public boolean isDirty() {
345         return delegateObject.isDirty();
346     }
347 
348     /** {@inheritDoc} */
349     @Override
350     public void setDirty(boolean dirty) {
351         delegateObject.setDirty(dirty);
352     }
353 
354     /** {@inheritDoc} */
355     @Override
356     public DepartmentDTO getDepartment() {
357         return delegateObject.getDepartment();
358     }
359 
360     /** {@inheritDoc} */
361     @Override
362     public void setDepartment(DepartmentDTO department) {
363         delegateObject.setDepartment(department);
364     }
365 
366     /** {@inheritDoc} */
367     @Override
368     public CoordinateDTO getCoordinate() {
369         return delegateObject.getCoordinate();
370     }
371 
372     /** {@inheritDoc} */
373     @Override
374     public void setCoordinate(CoordinateDTO coordinate) {
375         delegateObject.setCoordinate(coordinate);
376     }
377 
378     /** {@inheritDoc} */
379     @Override
380     public PositioningSystemDTO getPositioning() {
381         return delegateObject.getPositioning();
382     }
383 
384     /** {@inheritDoc} */
385     @Override
386     public void setPositioning(PositioningSystemDTO positioning) {
387         delegateObject.setPositioning(positioning);
388     }
389 
390     /** {@inheritDoc} */
391     @Override
392     public CampaignDTO getCampaign() {
393         return delegateObject.getCampaign();
394     }
395 
396     /** {@inheritDoc} */
397     @Override
398     public void setCampaign(CampaignDTO campaign) {
399         delegateObject.setCampaign(campaign);
400     }
401 
402     /** {@inheritDoc} */
403     @Override
404     public OccasionDTO getOccasion() {
405         return delegateObject.getOccasion();
406     }
407 
408     /** {@inheritDoc} */
409     @Override
410     public void setOccasion(OccasionDTO occasion) {
411         delegateObject.setOccasion(occasion);
412     }
413 
414     /** {@inheritDoc} */
415     @Override
416     public LocationDTO getLocation() {
417         return delegateObject.getLocation();
418     }
419 
420     /** {@inheritDoc} */
421     @Override
422     public void setLocation(LocationDTO location) {
423         delegateObject.setLocation(location);
424     }
425 
426     @Override
427     public QualityLevelDTO getQualityLevel() {
428         return delegateObject.getQualityLevel();
429     }
430 
431     @Override
432     public void setQualityLevel(QualityLevelDTO qualityLevel) {
433         delegateObject.setQualityLevel(qualityLevel);
434     }
435 
436     /** {@inheritDoc} */
437     @Override
438     public PmfmDTO getIndividualPmfms(int index) {
439         return delegateObject.getIndividualPmfms(index);
440     }
441 
442     /** {@inheritDoc} */
443     @Override
444     public boolean isIndividualPmfmsEmpty() {
445         return delegateObject.isIndividualPmfmsEmpty();
446     }
447 
448     /** {@inheritDoc} */
449     @Override
450     public int sizeIndividualPmfms() {
451         return delegateObject.sizeIndividualPmfms();
452     }
453 
454     /** {@inheritDoc} */
455     @Override
456     public void addIndividualPmfms(PmfmDTO individualPmfms) {
457         delegateObject.addIndividualPmfms(individualPmfms);
458     }
459 
460     /** {@inheritDoc} */
461     @Override
462     public void addAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
463         delegateObject.addAllIndividualPmfms(individualPmfms);
464     }
465 
466     /** {@inheritDoc} */
467     @Override
468     public boolean removeIndividualPmfms(PmfmDTO individualPmfms) {
469         return delegateObject.removeIndividualPmfms(individualPmfms);
470     }
471 
472     /** {@inheritDoc} */
473     @Override
474     public boolean removeAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
475         return delegateObject.removeAllIndividualPmfms(individualPmfms);
476     }
477 
478     /** {@inheritDoc} */
479     @Override
480     public boolean containsIndividualPmfms(PmfmDTO individualPmfms) {
481         return delegateObject.containsIndividualPmfms(individualPmfms);
482     }
483 
484     /** {@inheritDoc} */
485     @Override
486     public boolean containsAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
487         return delegateObject.containsAllIndividualPmfms(individualPmfms);
488     }
489 
490     /** {@inheritDoc} */
491     @Override
492     public List<PmfmDTO> getIndividualPmfms() {
493         return delegateObject.getIndividualPmfms();
494     }
495 
496     /** {@inheritDoc} */
497     @Override
498     public void setIndividualPmfms(List<PmfmDTO> individualPmfms) {
499         delegateObject.setIndividualPmfms(individualPmfms);
500     }
501 
502     /** {@inheritDoc} */
503     @Override
504     public PmfmDTO getPmfms(int index) {
505         return delegateObject.getPmfms(index);
506     }
507 
508     /** {@inheritDoc} */
509     @Override
510     public boolean isPmfmsEmpty() {
511         return delegateObject.isPmfmsEmpty();
512     }
513 
514     /** {@inheritDoc} */
515     @Override
516     public int sizePmfms() {
517         return delegateObject.sizePmfms();
518     }
519 
520     /** {@inheritDoc} */
521     @Override
522     public void addPmfms(PmfmDTO pmfms) {
523         delegateObject.addPmfms(pmfms);
524     }
525 
526     /** {@inheritDoc} */
527     @Override
528     public void addAllPmfms(Collection<PmfmDTO> pmfms) {
529         delegateObject.addAllPmfms(pmfms);
530     }
531 
532     /** {@inheritDoc} */
533     @Override
534     public boolean removePmfms(PmfmDTO pmfms) {
535         return delegateObject.removePmfms(pmfms);
536     }
537 
538     /** {@inheritDoc} */
539     @Override
540     public boolean removeAllPmfms(Collection<PmfmDTO> pmfms) {
541         return delegateObject.removeAllPmfms(pmfms);
542     }
543 
544     /** {@inheritDoc} */
545     @Override
546     public boolean containsPmfms(PmfmDTO pmfms) {
547         return delegateObject.containsPmfms(pmfms);
548     }
549 
550     /** {@inheritDoc} */
551     @Override
552     public boolean containsAllPmfms(Collection<PmfmDTO> pmfms) {
553         return delegateObject.containsAllPmfms(pmfms);
554     }
555 
556     /** {@inheritDoc} */
557     @Override
558     public List<PmfmDTO> getPmfms() {
559         return delegateObject.getPmfms();
560     }
561 
562     /** {@inheritDoc} */
563     @Override
564     public void setPmfms(List<PmfmDTO> pmfms) {
565         delegateObject.setPmfms(pmfms);
566     }
567 
568     /** {@inheritDoc} */
569     @Override
570     public SamplingOperationDTO getSamplingOperations(int index) {
571         return delegateObject.getSamplingOperations(index);
572     }
573 
574     /** {@inheritDoc} */
575     @Override
576     public boolean isSamplingOperationsEmpty() {
577         return delegateObject.isSamplingOperationsEmpty();
578     }
579 
580     /** {@inheritDoc} */
581     @Override
582     public int sizeSamplingOperations() {
583         return delegateObject.sizeSamplingOperations();
584     }
585 
586     /** {@inheritDoc} */
587     @Override
588     public void addSamplingOperations(SamplingOperationDTO samplingOperations) {
589         delegateObject.addSamplingOperations(samplingOperations);
590     }
591 
592     /** {@inheritDoc} */
593     @Override
594     public void addAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
595         delegateObject.addAllSamplingOperations(samplingOperations);
596     }
597 
598     /** {@inheritDoc} */
599     @Override
600     public boolean removeSamplingOperations(SamplingOperationDTO samplingOperations) {
601         return delegateObject.removeSamplingOperations(samplingOperations);
602     }
603 
604     /** {@inheritDoc} */
605     @Override
606     public boolean removeAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
607         return delegateObject.removeAllSamplingOperations(samplingOperations);
608     }
609 
610     /** {@inheritDoc} */
611     @Override
612     public boolean containsSamplingOperations(SamplingOperationDTO samplingOperations) {
613         return delegateObject.containsSamplingOperations(samplingOperations);
614     }
615 
616     /** {@inheritDoc} */
617     @Override
618     public boolean containsAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
619         return delegateObject.containsAllSamplingOperations(samplingOperations);
620     }
621 
622     /** {@inheritDoc} */
623     @Override
624     public Collection<SamplingOperationDTO> getSamplingOperations() {
625         return delegateObject.getSamplingOperations();
626     }
627 
628     /** {@inheritDoc} */
629     @Override
630     public void setSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
631         delegateObject.setSamplingOperations(samplingOperations);
632     }
633 
634     /** {@inheritDoc} */
635     @Override
636     public PhotoDTO getPhotos(int index) {
637         return delegateObject.getPhotos(index);
638     }
639 
640     /** {@inheritDoc} */
641     @Override
642     public boolean isPhotosEmpty() {
643         return delegateObject.isPhotosEmpty();
644     }
645 
646     /** {@inheritDoc} */
647     @Override
648     public int sizePhotos() {
649         return delegateObject.sizePhotos();
650     }
651 
652     /** {@inheritDoc} */
653     @Override
654     public void addPhotos(PhotoDTO photos) {
655         delegateObject.addPhotos(photos);
656     }
657 
658     /** {@inheritDoc} */
659     @Override
660     public void addAllPhotos(Collection<PhotoDTO> photos) {
661         delegateObject.addAllPhotos(photos);
662     }
663 
664     /** {@inheritDoc} */
665     @Override
666     public boolean removePhotos(PhotoDTO photos) {
667         return delegateObject.removePhotos(photos);
668     }
669 
670     /** {@inheritDoc} */
671     @Override
672     public boolean removeAllPhotos(Collection<PhotoDTO> photos) {
673         return delegateObject.removeAllPhotos(photos);
674     }
675 
676     /** {@inheritDoc} */
677     @Override
678     public boolean containsPhotos(PhotoDTO photos) {
679         return delegateObject.containsPhotos(photos);
680     }
681 
682     /** {@inheritDoc} */
683     @Override
684     public boolean containsAllPhotos(Collection<PhotoDTO> photos) {
685         return delegateObject.containsAllPhotos(photos);
686     }
687 
688     /** {@inheritDoc} */
689     @Override
690     public List<PhotoDTO> getPhotos() {
691         return delegateObject.getPhotos();
692     }
693 
694     /** {@inheritDoc} */
695     @Override
696     public void setPhotos(List<PhotoDTO> photos) {
697         delegateObject.setPhotos(photos);
698     }
699 
700     /** {@inheritDoc} */
701     @Override
702     public ProgramDTO getProgram() {
703         return delegateObject.getProgram();
704     }
705 
706     /** {@inheritDoc} */
707     @Override
708     public void setProgram(ProgramDTO program) {
709         delegateObject.setProgram(program);
710     }
711 
712     /** {@inheritDoc} */
713     @Override
714     public MeasurementDTO getMeasurements(int index) {
715         return delegateObject.getMeasurements(index);
716     }
717 
718     /** {@inheritDoc} */
719     @Override
720     public boolean isMeasurementsEmpty() {
721         return delegateObject.isMeasurementsEmpty();
722     }
723 
724     /** {@inheritDoc} */
725     @Override
726     public int sizeMeasurements() {
727         return delegateObject.sizeMeasurements();
728     }
729 
730     /** {@inheritDoc} */
731     @Override
732     public void addMeasurements(MeasurementDTO measurements) {
733         delegateObject.addMeasurements(measurements);
734     }
735 
736     /** {@inheritDoc} */
737     @Override
738     public void addAllMeasurements(Collection<MeasurementDTO> measurements) {
739         delegateObject.addAllMeasurements(measurements);
740     }
741 
742     /** {@inheritDoc} */
743     @Override
744     public boolean removeMeasurements(MeasurementDTO measurements) {
745         return delegateObject.removeMeasurements(measurements);
746     }
747 
748     /** {@inheritDoc} */
749     @Override
750     public boolean removeAllMeasurements(Collection<MeasurementDTO> measurements) {
751         return delegateObject.removeAllMeasurements(measurements);
752     }
753 
754     /** {@inheritDoc} */
755     @Override
756     public boolean containsMeasurements(MeasurementDTO measurements) {
757         return delegateObject.containsMeasurements(measurements);
758     }
759 
760     /** {@inheritDoc} */
761     @Override
762     public boolean containsAllMeasurements(Collection<MeasurementDTO> measurements) {
763         return delegateObject.containsAllMeasurements(measurements);
764     }
765 
766     /** {@inheritDoc} */
767     @Override
768     public List<MeasurementDTO> getMeasurements() {
769         return delegateObject.getMeasurements();
770     }
771 
772     /** {@inheritDoc} */
773     @Override
774     public void setMeasurements(List<MeasurementDTO> measurements) {
775         delegateObject.setMeasurements(measurements);
776     }
777 
778     /** {@inheritDoc} */
779     @Override
780     public PersonDTO getObservers(int index) {
781         return delegateObject.getObservers(index);
782     }
783 
784     /** {@inheritDoc} */
785     @Override
786     public boolean isObserversEmpty() {
787         return delegateObject.isObserversEmpty();
788     }
789 
790     /** {@inheritDoc} */
791     @Override
792     public int sizeObservers() {
793         return delegateObject.sizeObservers();
794     }
795 
796     /** {@inheritDoc} */
797     @Override
798     public void addObservers(PersonDTO observers) {
799         delegateObject.addObservers(observers);
800     }
801 
802     /** {@inheritDoc} */
803     @Override
804     public void addAllObservers(Collection<PersonDTO> observers) {
805         delegateObject.addAllObservers(observers);
806     }
807 
808     /** {@inheritDoc} */
809     @Override
810     public boolean removeObservers(PersonDTO observers) {
811         return delegateObject.removeObservers(observers);
812     }
813 
814     /** {@inheritDoc} */
815     @Override
816     public boolean removeAllObservers(Collection<PersonDTO> observers) {
817         return delegateObject.removeAllObservers(observers);
818     }
819 
820     /** {@inheritDoc} */
821     @Override
822     public boolean containsObservers(PersonDTO observers) {
823         return delegateObject.containsObservers(observers);
824     }
825 
826     /** {@inheritDoc} */
827     @Override
828     public boolean containsAllObservers(Collection<PersonDTO> observers) {
829         return delegateObject.containsAllObservers(observers);
830     }
831 
832     /** {@inheritDoc} */
833     @Override
834     public Collection<PersonDTO> getObservers() {
835         return delegateObject.getObservers();
836     }
837 
838     /** {@inheritDoc} */
839     @Override
840     public void setObservers(Collection<PersonDTO> observers) {
841         delegateObject.setObservers(observers);
842     }
843 
844     /** {@inheritDoc} */
845     @Override
846     public SynchronizationStatusDTO getSynchronizationStatus() {
847         return delegateObject.getSynchronizationStatus();
848     }
849 
850     /** {@inheritDoc} */
851     @Override
852     public void setSynchronizationStatus(SynchronizationStatusDTO synchronizationStatus) {
853         delegateObject.setSynchronizationStatus(synchronizationStatus);
854     }
855 
856     /** {@inheritDoc} */
857     @Override
858     public ErrorDTO getErrors(int index) {
859         return delegateObject.getErrors(index);
860     }
861 
862     /** {@inheritDoc} */
863     @Override
864     public boolean isErrorsEmpty() {
865         return delegateObject.isErrorsEmpty();
866     }
867 
868     /** {@inheritDoc} */
869     @Override
870     public int sizeErrors() {
871         return delegateObject.sizeErrors();
872     }
873 
874     /** {@inheritDoc} */
875     @Override
876     public void addErrors(ErrorDTO error) {
877         delegateObject.addErrors(error);
878     }
879 
880     /** {@inheritDoc} */
881     @Override
882     public void addAllErrors(Collection<ErrorDTO> errors) {
883         delegateObject.addAllErrors(errors);
884     }
885 
886     /** {@inheritDoc} */
887     @Override
888     public boolean removeErrors(ErrorDTO error) {
889         return delegateObject.removeErrors(error);
890     }
891 
892     /** {@inheritDoc} */
893     @Override
894     public boolean removeAllErrors(Collection<ErrorDTO> errors) {
895         return delegateObject.removeAllErrors(errors);
896     }
897 
898     /** {@inheritDoc} */
899     @Override
900     public boolean containsErrors(ErrorDTO error) {
901         return delegateObject.containsErrors(error);
902     }
903 
904     /** {@inheritDoc} */
905     @Override
906     public boolean containsAllErrors(Collection<ErrorDTO> errors) {
907         return delegateObject.containsAllErrors(errors);
908     }
909 
910     /** {@inheritDoc} */
911     @Override
912     public Collection<ErrorDTO> getErrors() {
913         return delegateObject.getErrors();
914     }
915 
916     /** {@inheritDoc} */
917     @Override
918     public void setErrors(Collection<ErrorDTO> errors) {
919         delegateObject.setErrors(errors);
920     }
921 
922     /** {@inheritDoc} */
923     @Override
924     public MeasurementDTO getIndividualMeasurements(int index) {
925         return delegateObject.getIndividualMeasurements(index);
926     }
927 
928     /** {@inheritDoc} */
929     @Override
930     public boolean isIndividualMeasurementsEmpty() {
931         return delegateObject.isIndividualMeasurementsEmpty();
932     }
933 
934     /** {@inheritDoc} */
935     @Override
936     public int sizeIndividualMeasurements() {
937         return delegateObject.sizeIndividualMeasurements();
938     }
939 
940     /** {@inheritDoc} */
941     @Override
942     public void addIndividualMeasurements(MeasurementDTO individualMeasurements) {
943         delegateObject.addIndividualMeasurements(individualMeasurements);
944     }
945 
946     /** {@inheritDoc} */
947     @Override
948     public void addAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
949         delegateObject.addAllIndividualMeasurements(individualMeasurements);
950     }
951 
952     /** {@inheritDoc} */
953     @Override
954     public boolean removeIndividualMeasurements(MeasurementDTO individualMeasurements) {
955         return delegateObject.removeIndividualMeasurements(individualMeasurements);
956     }
957 
958     /** {@inheritDoc} */
959     @Override
960     public boolean removeAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
961         return delegateObject.removeAllIndividualMeasurements(individualMeasurements);
962     }
963 
964     /** {@inheritDoc} */
965     @Override
966     public boolean containsIndividualMeasurements(MeasurementDTO individualMeasurements) {
967         return delegateObject.containsIndividualMeasurements(individualMeasurements);
968     }
969 
970     /** {@inheritDoc} */
971     @Override
972     public boolean containsAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
973         return delegateObject.containsAllIndividualMeasurements(individualMeasurements);
974     }
975 
976     /** {@inheritDoc} */
977     @Override
978     public List<MeasurementDTO> getIndividualMeasurements() {
979         return delegateObject.getIndividualMeasurements();
980     }
981 
982     /** {@inheritDoc} */
983     @Override
984     public void setIndividualMeasurements(List<MeasurementDTO> individualMeasurements) {
985         delegateObject.setIndividualMeasurements(individualMeasurements);
986     }
987 
988 
989     @Override
990     public PmfmStrategyDTO getPmfmStrategies(int index) {
991         return delegateObject.getPmfmStrategies(index);
992     }
993 
994     @Override
995     public boolean isPmfmStrategiesEmpty() {
996         return delegateObject.isPmfmStrategiesEmpty();
997     }
998 
999     @Override
1000     public int sizePmfmStrategies() {
1001         return delegateObject.sizePmfmStrategies();
1002     }
1003 
1004     @Override
1005     public void addPmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1006         delegateObject.addPmfmStrategies(pmfmStrategies);
1007     }
1008 
1009     @Override
1010     public void addAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1011         delegateObject.addAllPmfmStrategies(pmfmStrategies);
1012     }
1013 
1014     @Override
1015     public boolean removePmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1016         return delegateObject.removePmfmStrategies(pmfmStrategies);
1017     }
1018 
1019     @Override
1020     public boolean removeAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1021         return delegateObject.removeAllPmfmStrategies(pmfmStrategies);
1022     }
1023 
1024     @Override
1025     public boolean containsPmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1026         return delegateObject.containsPmfmStrategies(pmfmStrategies);
1027     }
1028 
1029     @Override
1030     public boolean containsAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1031         return delegateObject.containsAllPmfmStrategies(pmfmStrategies);
1032     }
1033 
1034     @Override
1035     public Collection<PmfmStrategyDTO> getPmfmStrategies() {
1036         return delegateObject.getPmfmStrategies();
1037     }
1038 
1039     @Override
1040     public void setPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1041         delegateObject.setPmfmStrategies(pmfmStrategies);
1042     }
1043 
1044     /** {@inheritDoc} */
1045     @Override
1046     public String getPositioningPrecision() {
1047         return getPositioning() == null ? null : getPositioning().getPrecision();
1048     }
1049 
1050     /** {@inheritDoc} */
1051     @Override
1052     public Double getLatitudeMin() {
1053         return getCoordinateToModify().getMinLatitude();
1054     }
1055 
1056     /** {@inheritDoc} */
1057     @Override
1058     public void setLatitudeMin(Double latitudeMin) {
1059         Double oldValue = getLatitudeMin();
1060         getCoordinateToModify().setMinLatitude(latitudeMin);
1061         firePropertyChange(PROPERTY_LATITUDE_MIN, oldValue, latitudeMin);
1062     }
1063 
1064     /** {@inheritDoc} */
1065     @Override
1066     public Double getLatitudeMax() {
1067         return getCoordinateToModify().getMaxLatitude();
1068     }
1069 
1070     /** {@inheritDoc} */
1071     @Override
1072     public void setLatitudeMax(Double latitudeMax) {
1073         Double oldValue = getLatitudeMax();
1074         getCoordinateToModify().setMaxLatitude(latitudeMax);
1075         firePropertyChange(PROPERTY_LATITUDE_MAX, oldValue, latitudeMax);
1076     }
1077 
1078     /** {@inheritDoc} */
1079     @Override
1080     public Double getLongitudeMin() {
1081         return getCoordinateToModify().getMinLongitude();
1082     }
1083 
1084     /** {@inheritDoc} */
1085     @Override
1086     public void setLongitudeMin(Double longitudeMin) {
1087         Double oldValue = getLongitudeMin();
1088         getCoordinateToModify().setMinLongitude(longitudeMin);
1089         firePropertyChange(PROPERTY_LONGITUDE_MIN, oldValue, longitudeMin);
1090     }
1091 
1092     /** {@inheritDoc} */
1093     @Override
1094     public Double getLongitudeMax() {
1095         return getCoordinateToModify().getMaxLongitude();
1096     }
1097 
1098     /** {@inheritDoc} */
1099     @Override
1100     public void setLongitudeMax(Double longitudeMax) {
1101         Double oldValue = getLongitudeMax();
1102         getCoordinateToModify().setMaxLongitude(longitudeMax);
1103         firePropertyChange(PROPERTY_LONGITUDE_MAX, oldValue, longitudeMax);
1104     }
1105 
1106     private CoordinateDTO getCoordinateToModify() {
1107         if (getCoordinate() == null) {
1108             setCoordinate(DaliBeanFactory.newCoordinateDTO());
1109         }
1110         return getCoordinate();
1111     }
1112 
1113 }