View Javadoc
1   package fr.ifremer.dali.ui.swing.content.observation.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.config.DaliConfiguration;
27  import fr.ifremer.dali.dto.CoordinateDTO;
28  import fr.ifremer.dali.dto.DaliBeanFactory;
29  import fr.ifremer.dali.dto.ErrorDTO;
30  import fr.ifremer.dali.dto.SynchronizationStatusDTO;
31  import fr.ifremer.dali.dto.configuration.programStrategy.PmfmStrategyDTO;
32  import fr.ifremer.dali.dto.configuration.programStrategy.ProgramDTO;
33  import fr.ifremer.dali.dto.data.Coordinate2DAware;
34  import fr.ifremer.dali.dto.data.LocationCoordinateAware;
35  import fr.ifremer.dali.dto.data.PositioningPrecisionAware;
36  import fr.ifremer.dali.dto.data.measurement.MeasurementDTO;
37  import fr.ifremer.dali.dto.data.photo.PhotoDTO;
38  import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
39  import fr.ifremer.dali.dto.data.survey.CampaignDTO;
40  import fr.ifremer.dali.dto.data.survey.OccasionDTO;
41  import fr.ifremer.dali.dto.data.survey.SurveyDTO;
42  import fr.ifremer.dali.dto.referential.*;
43  import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
44  import fr.ifremer.dali.ui.swing.content.home.map.SurveysMapUIModel;
45  import fr.ifremer.dali.ui.swing.content.observation.ObservationUIModel;
46  import fr.ifremer.dali.ui.swing.content.observation.survey.measurement.ungrouped.SurveyMeasurementsUngroupedTableUIModel;
47  import fr.ifremer.dali.ui.swing.util.AbstractDaliBeanUIModel;
48  import fr.ifremer.dali.ui.swing.util.map.MapParentUIModel;
49  import fr.ifremer.quadrige3.core.dao.technical.Dates;
50  import org.nuiton.jaxx.application.swing.tab.TabContentModel;
51  import org.nuiton.util.beans.Binder;
52  import org.nuiton.util.beans.BinderFactory;
53  
54  import java.time.LocalDate;
55  import java.util.Collection;
56  import java.util.Date;
57  import java.util.List;
58  
59  import static org.nuiton.i18n.I18n.n;
60  
61  /**
62   * Modele pour l onglet observation general.
63   */
64  public class SurveyDetailsTabUIModel extends AbstractDaliBeanUIModel<SurveyDTO, SurveyDetailsTabUIModel>
65          implements SurveyDTO, TabContentModel, PositioningPrecisionAware, Coordinate2DAware, LocationCoordinateAware, MapParentUIModel {
66  
67      /** Constant <code>PROPERTY_OBSERVATION_MODEL="observationModel"</code> */
68      public static final String PROPERTY_OBSERVATION_MODEL = "observationModel";
69      /** Constant <code>PROPERTY_EDITABLE="editable"</code> */
70      public static final String PROPERTY_EDITABLE = "editable";
71      private static final Binder<SurveyDetailsTabUIModel, SurveyDTO> TO_BEAN_BINDER
72              = BinderFactory.newBinder(SurveyDetailsTabUIModel.class, SurveyDTO.class);
73      private static final Binder<SurveyDTO, SurveyDetailsTabUIModel> FROM_BEAN_BINDER
74              = BinderFactory.newBinder(SurveyDTO.class, SurveyDetailsTabUIModel.class);
75      private ObservationUIModel observationModel;
76      private boolean adjusting;
77      private boolean editable;
78      private List<PersonDTO> selectedObservers;
79      private SurveyMeasurementsUngroupedTableUIModel ungroupedTableUIModel;
80      private String dateTimePattern;
81  
82      private SurveysMapUIModel mapUIModel;
83  
84      /**
85       * Constructor.
86       */
87      public SurveyDetailsTabUIModel() {
88          super(FROM_BEAN_BINDER, TO_BEAN_BINDER);
89      }
90  
91      public void setDateTimePattern(String dateTimePattern) {
92          this.dateTimePattern = dateTimePattern;
93      }
94  
95      public String getDateTimePattern() {
96          if (dateTimePattern == null) {
97              dateTimePattern = DaliConfiguration.getInstance().getDateTimeFormat();
98          }
99          return dateTimePattern;
100     }
101 
102     /** {@inheritDoc} */
103     @Override
104     public void setModify(boolean modify) {
105 
106         if (!modify) {
107             ungroupedTableUIModel.setModify(false);
108         }
109 
110         super.setModify(modify);
111     }
112 
113     /**
114      * <p>isEditable.</p>
115      *
116      * @return a boolean.
117      */
118     public boolean isEditable() {
119         return editable;
120     }
121 
122     /**
123      * <p>Setter for the field <code>editable</code>.</p>
124      *
125      * @param editable a boolean.
126      */
127     public void setEditable(boolean editable) {
128         this.editable = editable;
129         firePropertyChange(PROPERTY_EDITABLE, null, editable);
130     }
131 
132     /**
133      * <p>Getter for the field <code>selectedObservers</code>.</p>
134      *
135      * @return a {@link java.util.List} object.
136      */
137     public List<PersonDTO> getSelectedObservers() {
138         return selectedObservers;
139     }
140 
141     /**
142      * <p>Setter for the field <code>selectedObservers</code>.</p>
143      *
144      * @param selectedObservers a {@link java.util.List} object.
145      */
146     public void setSelectedObservers(List<PersonDTO> selectedObservers) {
147         this.selectedObservers = selectedObservers;
148         setModify(true);
149     }
150 
151     /**
152      * <p>Getter for the field <code>observationModel</code>.</p>
153      *
154      * @return a {@link fr.ifremer.dali.dto.data.survey.SurveyDTO} object.
155      */
156     public ObservationUIModel getObservationModel() {
157         return observationModel;
158     }
159 
160     /**
161      * <p>Setter for the field <code>observationModel</code>.</p>
162      *
163      * @param observationModel a {@link fr.ifremer.dali.dto.data.survey.SurveyDTO} object.
164      */
165     public void setObservationModel(ObservationUIModel observationModel) {
166         this.observationModel = observationModel;
167         firePropertyChange(PROPERTY_OBSERVATION_MODEL, null, observationModel);
168     }
169 
170     /**
171      * <p>isAdjusting.</p>
172      *
173      * @return a boolean.
174      */
175     public boolean isAdjusting() {
176         return adjusting;
177     }
178 
179     /**
180      * <p>Setter for the field <code>adjusting</code>.</p>
181      *
182      * @param adjusting a boolean.
183      */
184     public void setAdjusting(boolean adjusting) {
185         this.adjusting = adjusting;
186     }
187 
188     /** {@inheritDoc} */
189     @Override
190     public boolean isEmpty() {
191         return false; //isCreate();
192     }
193 
194     /** {@inheritDoc} */
195     @Override
196     public String getTitle() {
197         return n("dali.survey.title");
198     }
199 
200     /** {@inheritDoc} */
201     @Override
202     public String getIcon() {
203         return null;
204     }
205 
206     /** {@inheritDoc} */
207     @Override
208     public boolean isCloseable() {
209         return false;
210     }
211 
212     /** {@inheritDoc} */
213     @Override
214     protected SurveyDTO newBean() {
215         return DaliBeanFactory.newSurveyDTO();
216     }
217 
218     private CoordinateDTO getSurveyCoordinateToModify() {
219         if (getCoordinate() == null) {
220             setCoordinate(DaliBeanFactory.newCoordinateDTO());
221         }
222         return getCoordinate();
223     }
224 
225     /** {@inheritDoc} */
226     @Override
227     public Double getLatitudeMin() {
228         return getSurveyCoordinateToModify().getMinLatitude();
229     }
230 
231     /** {@inheritDoc} */
232     @Override
233     public void setLatitudeMin(final Double latitudeMin) {
234         Double oldValue = getLatitudeMin();
235         getSurveyCoordinateToModify().setMinLatitude(latitudeMin);
236         firePropertyChange(PROPERTY_LATITUDE_MIN, oldValue, latitudeMin);
237         setModify(true);
238     }
239 
240     /** {@inheritDoc} */
241     @Override
242     public Double getLatitudeMax() {
243         return getSurveyCoordinateToModify().getMaxLatitude();
244     }
245 
246     /** {@inheritDoc} */
247     @Override
248     public void setLatitudeMax(final Double latitudeMax) {
249         Double oldValue = getLatitudeMax();
250         getSurveyCoordinateToModify().setMaxLatitude(latitudeMax);
251         firePropertyChange(PROPERTY_LATITUDE_MAX, oldValue, latitudeMax);
252         setModify(true);
253     }
254 
255     /** {@inheritDoc} */
256     @Override
257     public Double getLongitudeMin() {
258         return getSurveyCoordinateToModify().getMinLongitude();
259     }
260 
261     /** {@inheritDoc} */
262     @Override
263     public void setLongitudeMin(final Double longitudeMin) {
264         Double oldValue = getLongitudeMin();
265         getSurveyCoordinateToModify().setMinLongitude(longitudeMin);
266         firePropertyChange(PROPERTY_LONGITUDE_MIN, oldValue, longitudeMin);
267         setModify(true);
268     }
269 
270     /** {@inheritDoc} */
271     @Override
272     public Double getLongitudeMax() {
273         return getSurveyCoordinateToModify().getMaxLongitude();
274     }
275 
276     /** {@inheritDoc} */
277     @Override
278     public void setLongitudeMax(final Double longitudeMax) {
279         Double oldValue = getLongitudeMax();
280         getSurveyCoordinateToModify().setMaxLongitude(longitudeMax);
281         firePropertyChange(PROPERTY_LONGITUDE_MAX, oldValue, longitudeMax);
282         setModify(true);
283     }
284 
285     /** {@inheritDoc} */
286     @Override
287     public Double getLocationMinLatitude() {
288         return getLocation() == null || getLocation().getCoordinate() == null ? null : getLocation().getCoordinate().getMinLatitude();
289     }
290 
291     /**
292      * <p>setLocationMinLatitude.</p>
293      *
294      * @param dummy a {@link java.lang.Double} object.
295      */
296     public void setLocationMinLatitude(Double dummy) {
297     }
298 
299     /** {@inheritDoc} */
300     @Override
301     public Double getLocationMaxLatitude() {
302         return getLocation() == null || getLocation().getCoordinate() == null ? null : getLocation().getCoordinate().getMaxLatitude();
303     }
304 
305     /**
306      * <p>setLocationMaxLatitude.</p>
307      *
308      * @param dummy a {@link java.lang.Double} object.
309      */
310     public void setLocationMaxLatitude(Double dummy) {
311     }
312 
313     /** {@inheritDoc} */
314     @Override
315     public Double getLocationMinLongitude() {
316         return getLocation() == null || getLocation().getCoordinate() == null ? null : getLocation().getCoordinate().getMinLongitude();
317     }
318 
319     /**
320      * <p>setLocationMinLongitude.</p>
321      *
322      * @param dummy a {@link java.lang.Double} object.
323      */
324     public void setLocationMinLongitude(Double dummy) {
325     }
326 
327     /** {@inheritDoc} */
328     @Override
329     public Double getLocationMaxLongitude() {
330         return getLocation() == null || getLocation().getCoordinate() == null ? null : getLocation().getCoordinate().getMaxLongitude();
331     }
332 
333     /**
334      * <p>setLocationMaxLongitude.</p>
335      *
336      * @param dummy a {@link java.lang.Double} object.
337      */
338     public void setLocationMaxLongitude(Double dummy) {
339     }
340 
341     /** {@inheritDoc} */
342     @Override
343     public String getPositioningPrecision() {
344         return getPositioning() == null ? null : getPositioning().getPrecision();
345     }
346 
347     /**
348      * <p>setPositioningPrecision.</p>
349      *
350      * @param dummy a {@link java.lang.String} object.
351      */
352     public void setPositioningPrecision(String dummy) {
353     }
354 
355     public SurveyMeasurementsUngroupedTableUIModel getUngroupedTableUIModel() {
356         return ungroupedTableUIModel;
357     }
358 
359     public void setUngroupedTableUIModel(SurveyMeasurementsUngroupedTableUIModel ungroupedTableUIModel) {
360         this.ungroupedTableUIModel = ungroupedTableUIModel;
361     }
362 
363     public String getUpdateDateText() {
364         return Dates.formatDate(delegateObject.getUpdateDate(), getDateTimePattern());
365     }
366 
367     public String getControlDateText() {
368         return Dates.formatDate(delegateObject.getControlDate(), getDateTimePattern());
369     }
370 
371     public String getValidationDateText() {
372         return Dates.formatDate(delegateObject.getValidationDate(), getDateTimePattern());
373     }
374 
375     public String getQualificationDateText() {
376         return Dates.formatDate(delegateObject.getQualificationDate(), getDateTimePattern());
377     }
378 
379     /* DELEGATE METHODS */
380 
381     /** {@inheritDoc} */
382     @Override
383     public String getName() {
384         return delegateObject.getName();
385     }
386 
387     /** {@inheritDoc} */
388     @Override
389     public void setName(String name) {
390         // Trim whitespaces (Mantis #52677)
391         delegateObject.setName(name != null ? name.trim() : null);
392     }
393 
394     /** {@inheritDoc} */
395     @Override
396     public LocalDate getDate() {
397         return delegateObject.getDate();
398     }
399 
400     /** {@inheritDoc} */
401     @Override
402     public void setDate(LocalDate date) {
403         delegateObject.setDate(date);
404     }
405 
406     /** {@inheritDoc} */
407     @Override
408     public Integer getTime() {
409         return delegateObject.getTime();
410     }
411 
412     /** {@inheritDoc} */
413     @Override
414     public void setTime(Integer time) {
415         delegateObject.setTime(time);
416     }
417 
418     /** {@inheritDoc} */
419     @Override
420     public Double getBottomDepth() {
421         return delegateObject.getBottomDepth();
422     }
423 
424     /** {@inheritDoc} */
425     @Override
426     public void setBottomDepth(Double bottomDepth) {
427         delegateObject.setBottomDepth(bottomDepth);
428     }
429 
430     /** {@inheritDoc} */
431     @Override
432     public String getComment() {
433         return delegateObject.getComment();
434     }
435 
436     /** {@inheritDoc} */
437     @Override
438     public void setComment(String comment) {
439         delegateObject.setComment(comment);
440     }
441 
442     /** {@inheritDoc} */
443     @Override
444     public String getPositioningComment() {
445         return delegateObject.getPositioningComment();
446     }
447 
448     /** {@inheritDoc} */
449     @Override
450     public void setPositioningComment(String positioningComment) {
451         delegateObject.setPositioningComment(positioningComment);
452     }
453 
454     /** {@inheritDoc} */
455     @Override
456     public String getQualificationComment() {
457         return delegateObject.getQualificationComment();
458     }
459 
460     /** {@inheritDoc} */
461     @Override
462     public void setQualificationComment(String qualificationComment) {
463         delegateObject.setQualificationComment(qualificationComment);
464     }
465 
466     /** {@inheritDoc} */
467     @Override
468     public Date getUpdateDate() {
469         return delegateObject.getUpdateDate();
470     }
471 
472     /** {@inheritDoc} */
473     @Override
474     public void setUpdateDate(Date updateDate) {
475         delegateObject.setUpdateDate(updateDate);
476     }
477 
478     /** {@inheritDoc} */
479     @Override
480     public Date getControlDate() {
481         return delegateObject.getControlDate();
482     }
483 
484     /** {@inheritDoc} */
485     @Override
486     public void setControlDate(Date controlDate) {
487         delegateObject.setControlDate(controlDate);
488     }
489 
490     /** {@inheritDoc} */
491     @Override
492     public Date getValidationDate() {
493         return delegateObject.getValidationDate();
494     }
495 
496     /** {@inheritDoc} */
497     @Override
498     public void setValidationDate(Date validationDate) {
499         delegateObject.setValidationDate(validationDate);
500     }
501 
502     @Override
503     public String getValidationComment() {
504         return delegateObject.getValidationComment();
505     }
506 
507     @Override
508     public void setValidationComment(String validationComment) {
509         delegateObject.setValidationComment(validationComment);
510     }
511 
512     /** {@inheritDoc} */
513     @Override
514     public Date getQualificationDate() {
515         return delegateObject.getQualificationDate();
516     }
517 
518     /** {@inheritDoc} */
519     @Override
520     public void setQualificationDate(Date validationDate) {
521         delegateObject.setQualificationDate(validationDate);
522     }
523 
524     /** {@inheritDoc} */
525     @Override
526     public boolean isSamplingOperationsLoaded() {
527         return delegateObject.isSamplingOperationsLoaded();
528     }
529 
530     /** {@inheritDoc} */
531     @Override
532     public void setSamplingOperationsLoaded(boolean samplingOperationsLoaded) {
533         delegateObject.setSamplingOperationsLoaded(samplingOperationsLoaded);
534     }
535 
536     /** {@inheritDoc} */
537     @Override
538     public boolean isObserversLoaded() {
539         return delegateObject.isObserversLoaded();
540     }
541 
542     /** {@inheritDoc} */
543     @Override
544     public void setObserversLoaded(boolean observersLoaded) {
545         delegateObject.setObserversLoaded(observersLoaded);
546     }
547 
548     /** {@inheritDoc} */
549     @Override
550     public boolean isMeasurementsLoaded() {
551         return delegateObject.isMeasurementsLoaded();
552     }
553 
554     /** {@inheritDoc} */
555     @Override
556     public void setMeasurementsLoaded(boolean measurementsLoaded) {
557         delegateObject.setMeasurementsLoaded(measurementsLoaded);
558     }
559 
560     /** {@inheritDoc} */
561     @Override
562     public boolean isPhotosLoaded() {
563         return delegateObject.isPhotosLoaded();
564     }
565 
566     /** {@inheritDoc} */
567     @Override
568     public void setPhotosLoaded(boolean photosLoaded) {
569         delegateObject.setPhotosLoaded(photosLoaded);
570     }
571 
572     /** {@inheritDoc} */
573     @Override
574     public boolean isDirty() {
575         return delegateObject.isDirty();
576     }
577 
578     /** {@inheritDoc} */
579     @Override
580     public void setDirty(boolean dirty) {
581         delegateObject.setDirty(dirty);
582     }
583 
584     /** {@inheritDoc} */
585     @Override
586     public DepartmentDTO getDepartment() {
587         return delegateObject.getDepartment();
588     }
589 
590     /** {@inheritDoc} */
591     @Override
592     public void setDepartment(DepartmentDTO department) {
593         delegateObject.setDepartment(department);
594     }
595 
596     /** {@inheritDoc} */
597     @Override
598     public CoordinateDTO getCoordinate() {
599         return delegateObject.getCoordinate();
600     }
601 
602     /** {@inheritDoc} */
603     @Override
604     public void setCoordinate(CoordinateDTO coordinate) {
605         delegateObject.setCoordinate(coordinate);
606     }
607 
608     /** {@inheritDoc} */
609     @Override
610     public PositioningSystemDTO getPositioning() {
611         return delegateObject.getPositioning();
612     }
613 
614     /** {@inheritDoc} */
615     @Override
616     public void setPositioning(PositioningSystemDTO positioning) {
617         delegateObject.setPositioning(positioning);
618     }
619 
620     /** {@inheritDoc} */
621     @Override
622     public CampaignDTO getCampaign() {
623         return delegateObject.getCampaign();
624     }
625 
626     /** {@inheritDoc} */
627     @Override
628     public void setCampaign(CampaignDTO campaign) {
629         delegateObject.setCampaign(campaign);
630     }
631 
632     /** {@inheritDoc} */
633     @Override
634     public OccasionDTO getOccasion() {
635         return delegateObject.getOccasion();
636     }
637 
638     /** {@inheritDoc} */
639     @Override
640     public void setOccasion(OccasionDTO occasion) {
641         delegateObject.setOccasion(occasion);
642     }
643 
644     /** {@inheritDoc} */
645     @Override
646     public LocationDTO getLocation() {
647         return delegateObject.getLocation();
648     }
649 
650     /** {@inheritDoc} */
651     @Override
652     public void setLocation(LocationDTO location) {
653         delegateObject.setLocation(location);
654     }
655 
656     @Override
657     public QualityLevelDTO getQualityLevel() {
658         return delegateObject.getQualityLevel();
659     }
660 
661     @Override
662     public void setQualityLevel(QualityLevelDTO qualityLevel) {
663         delegateObject.setQualityLevel(qualityLevel);
664     }
665 
666     /** {@inheritDoc} */
667     @Override
668     public PmfmDTO getIndividualPmfms(int index) {
669         return delegateObject.getIndividualPmfms(index);
670     }
671 
672     /** {@inheritDoc} */
673     @Override
674     public boolean isIndividualPmfmsEmpty() {
675         return delegateObject.isIndividualPmfmsEmpty();
676     }
677 
678     /** {@inheritDoc} */
679     @Override
680     public int sizeIndividualPmfms() {
681         return delegateObject.sizeIndividualPmfms();
682     }
683 
684     /** {@inheritDoc} */
685     @Override
686     public void addIndividualPmfms(PmfmDTO individualPmfms) {
687         delegateObject.addIndividualPmfms(individualPmfms);
688     }
689 
690     /** {@inheritDoc} */
691     @Override
692     public void addAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
693         delegateObject.addAllIndividualPmfms(individualPmfms);
694     }
695 
696     /** {@inheritDoc} */
697     @Override
698     public boolean removeIndividualPmfms(PmfmDTO individualPmfms) {
699         return delegateObject.removeIndividualPmfms(individualPmfms);
700     }
701 
702     /** {@inheritDoc} */
703     @Override
704     public boolean removeAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
705         return delegateObject.removeAllIndividualPmfms(individualPmfms);
706     }
707 
708     /** {@inheritDoc} */
709     @Override
710     public boolean containsIndividualPmfms(PmfmDTO individualPmfms) {
711         return delegateObject.containsIndividualPmfms(individualPmfms);
712     }
713 
714     /** {@inheritDoc} */
715     @Override
716     public boolean containsAllIndividualPmfms(Collection<PmfmDTO> individualPmfms) {
717         return delegateObject.containsAllIndividualPmfms(individualPmfms);
718     }
719 
720     /** {@inheritDoc} */
721     @Override
722     public List<PmfmDTO> getIndividualPmfms() {
723         return delegateObject.getIndividualPmfms();
724     }
725 
726     /** {@inheritDoc} */
727     @Override
728     public void setIndividualPmfms(List<PmfmDTO> individualPmfms) {
729         delegateObject.setIndividualPmfms(individualPmfms);
730     }
731 
732     /** {@inheritDoc} */
733     @Override
734     public PmfmDTO getPmfms(int index) {
735         return delegateObject.getPmfms(index);
736     }
737 
738     /** {@inheritDoc} */
739     @Override
740     public boolean isPmfmsEmpty() {
741         return delegateObject.isPmfmsEmpty();
742     }
743 
744     /** {@inheritDoc} */
745     @Override
746     public int sizePmfms() {
747         return delegateObject.sizePmfms();
748     }
749 
750     /** {@inheritDoc} */
751     @Override
752     public void addPmfms(PmfmDTO pmfms) {
753         delegateObject.addPmfms(pmfms);
754     }
755 
756     /** {@inheritDoc} */
757     @Override
758     public void addAllPmfms(Collection<PmfmDTO> pmfms) {
759         delegateObject.addAllPmfms(pmfms);
760     }
761 
762     /** {@inheritDoc} */
763     @Override
764     public boolean removePmfms(PmfmDTO pmfms) {
765         return delegateObject.removePmfms(pmfms);
766     }
767 
768     /** {@inheritDoc} */
769     @Override
770     public boolean removeAllPmfms(Collection<PmfmDTO> pmfms) {
771         return delegateObject.removeAllPmfms(pmfms);
772     }
773 
774     /** {@inheritDoc} */
775     @Override
776     public boolean containsPmfms(PmfmDTO pmfms) {
777         return delegateObject.containsPmfms(pmfms);
778     }
779 
780     /** {@inheritDoc} */
781     @Override
782     public boolean containsAllPmfms(Collection<PmfmDTO> pmfms) {
783         return delegateObject.containsAllPmfms(pmfms);
784     }
785 
786     /** {@inheritDoc} */
787     @Override
788     public List<PmfmDTO> getPmfms() {
789         return delegateObject.getPmfms();
790     }
791 
792     /** {@inheritDoc} */
793     @Override
794     public void setPmfms(List<PmfmDTO> pmfms) {
795         delegateObject.setPmfms(pmfms);
796     }
797 
798     /** {@inheritDoc} */
799     @Override
800     public SamplingOperationDTO getSamplingOperations(int index) {
801         return delegateObject.getSamplingOperations(index);
802     }
803 
804     /** {@inheritDoc} */
805     @Override
806     public boolean isSamplingOperationsEmpty() {
807         return delegateObject.isSamplingOperationsEmpty();
808     }
809 
810     /** {@inheritDoc} */
811     @Override
812     public int sizeSamplingOperations() {
813         return delegateObject.sizeSamplingOperations();
814     }
815 
816     /** {@inheritDoc} */
817     @Override
818     public void addSamplingOperations(SamplingOperationDTO samplingOperations) {
819         delegateObject.addSamplingOperations(samplingOperations);
820     }
821 
822     /** {@inheritDoc} */
823     @Override
824     public void addAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
825         delegateObject.addAllSamplingOperations(samplingOperations);
826     }
827 
828     /** {@inheritDoc} */
829     @Override
830     public boolean removeSamplingOperations(SamplingOperationDTO samplingOperations) {
831         return delegateObject.removeSamplingOperations(samplingOperations);
832     }
833 
834     /** {@inheritDoc} */
835     @Override
836     public boolean removeAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
837         return delegateObject.removeAllSamplingOperations(samplingOperations);
838     }
839 
840     /** {@inheritDoc} */
841     @Override
842     public boolean containsSamplingOperations(SamplingOperationDTO samplingOperations) {
843         return delegateObject.containsSamplingOperations(samplingOperations);
844     }
845 
846     /** {@inheritDoc} */
847     @Override
848     public boolean containsAllSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
849         return delegateObject.containsAllSamplingOperations(samplingOperations);
850     }
851 
852     /** {@inheritDoc} */
853     @Override
854     public Collection<SamplingOperationDTO> getSamplingOperations() {
855         return delegateObject.getSamplingOperations();
856     }
857 
858     /** {@inheritDoc} */
859     @Override
860     public void setSamplingOperations(Collection<SamplingOperationDTO> samplingOperations) {
861         delegateObject.setSamplingOperations(samplingOperations);
862     }
863 
864     /** {@inheritDoc} */
865     @Override
866     public PhotoDTO getPhotos(int index) {
867         return delegateObject.getPhotos(index);
868     }
869 
870     /** {@inheritDoc} */
871     @Override
872     public boolean isPhotosEmpty() {
873         return delegateObject.isPhotosEmpty();
874     }
875 
876     /** {@inheritDoc} */
877     @Override
878     public int sizePhotos() {
879         return delegateObject.sizePhotos();
880     }
881 
882     /** {@inheritDoc} */
883     @Override
884     public void addPhotos(PhotoDTO photo) {
885         delegateObject.addPhotos(photo);
886     }
887 
888     /** {@inheritDoc} */
889     @Override
890     public void addAllPhotos(Collection<PhotoDTO> photo) {
891         delegateObject.addAllPhotos(photo);
892     }
893 
894     /** {@inheritDoc} */
895     @Override
896     public boolean removePhotos(PhotoDTO photo) {
897         return delegateObject.removePhotos(photo);
898     }
899 
900     /** {@inheritDoc} */
901     @Override
902     public boolean removeAllPhotos(Collection<PhotoDTO> photo) {
903         return delegateObject.removeAllPhotos(photo);
904     }
905 
906     /** {@inheritDoc} */
907     @Override
908     public boolean containsPhotos(PhotoDTO photo) {
909         return delegateObject.containsPhotos(photo);
910     }
911 
912     /** {@inheritDoc} */
913     @Override
914     public boolean containsAllPhotos(Collection<PhotoDTO> photo) {
915         return delegateObject.containsAllPhotos(photo);
916     }
917 
918     /** {@inheritDoc} */
919     @Override
920     public List<PhotoDTO> getPhotos() {
921         return delegateObject.getPhotos();
922     }
923 
924     /** {@inheritDoc} */
925     @Override
926     public void setPhotos(List<PhotoDTO> photo) {
927         delegateObject.setPhotos(photo);
928     }
929 
930     /** {@inheritDoc} */
931     @Override
932     public ProgramDTO getProgram() {
933         return delegateObject.getProgram();
934     }
935 
936     /** {@inheritDoc} */
937     @Override
938     public void setProgram(ProgramDTO program) {
939         delegateObject.setProgram(program);
940     }
941 
942     /** {@inheritDoc} */
943     @Override
944     public MeasurementDTO getMeasurements(int index) {
945         return delegateObject.getMeasurements(index);
946     }
947 
948     /** {@inheritDoc} */
949     @Override
950     public boolean isMeasurementsEmpty() {
951         return delegateObject.isMeasurementsEmpty();
952     }
953 
954     /** {@inheritDoc} */
955     @Override
956     public int sizeMeasurements() {
957         return delegateObject.sizeMeasurements();
958     }
959 
960     /** {@inheritDoc} */
961     @Override
962     public void addMeasurements(MeasurementDTO measurements) {
963         delegateObject.addMeasurements(measurements);
964     }
965 
966     /** {@inheritDoc} */
967     @Override
968     public void addAllMeasurements(Collection<MeasurementDTO> measurements) {
969         delegateObject.addAllMeasurements(measurements);
970     }
971 
972     /** {@inheritDoc} */
973     @Override
974     public boolean removeMeasurements(MeasurementDTO measurements) {
975         return delegateObject.removeMeasurements(measurements);
976     }
977 
978     /** {@inheritDoc} */
979     @Override
980     public boolean removeAllMeasurements(Collection<MeasurementDTO> measurements) {
981         return delegateObject.removeAllMeasurements(measurements);
982     }
983 
984     /** {@inheritDoc} */
985     @Override
986     public boolean containsMeasurements(MeasurementDTO measurements) {
987         return delegateObject.containsMeasurements(measurements);
988     }
989 
990     /** {@inheritDoc} */
991     @Override
992     public boolean containsAllMeasurements(Collection<MeasurementDTO> measurements) {
993         return delegateObject.containsAllMeasurements(measurements);
994     }
995 
996     /** {@inheritDoc} */
997     @Override
998     public List<MeasurementDTO> getMeasurements() {
999         return delegateObject.getMeasurements();
1000     }
1001 
1002     /** {@inheritDoc} */
1003     @Override
1004     public void setMeasurements(List<MeasurementDTO> measurements) {
1005         delegateObject.setMeasurements(measurements);
1006     }
1007 
1008     /** {@inheritDoc} */
1009     @Override
1010     public PersonDTO getObservers(int index) {
1011         return delegateObject.getObservers(index);
1012     }
1013 
1014     /** {@inheritDoc} */
1015     @Override
1016     public boolean isObserversEmpty() {
1017         return delegateObject.isObserversEmpty();
1018     }
1019 
1020     /** {@inheritDoc} */
1021     @Override
1022     public int sizeObservers() {
1023         return delegateObject.sizeObservers();
1024     }
1025 
1026     /** {@inheritDoc} */
1027     @Override
1028     public void addObservers(PersonDTO observers) {
1029         delegateObject.addObservers(observers);
1030     }
1031 
1032     /** {@inheritDoc} */
1033     @Override
1034     public void addAllObservers(Collection<PersonDTO> observers) {
1035         delegateObject.addAllObservers(observers);
1036     }
1037 
1038     /** {@inheritDoc} */
1039     @Override
1040     public boolean removeObservers(PersonDTO observers) {
1041         return delegateObject.removeObservers(observers);
1042     }
1043 
1044     /** {@inheritDoc} */
1045     @Override
1046     public boolean removeAllObservers(Collection<PersonDTO> observers) {
1047         return delegateObject.removeAllObservers(observers);
1048     }
1049 
1050     /** {@inheritDoc} */
1051     @Override
1052     public boolean containsObservers(PersonDTO observers) {
1053         return delegateObject.containsObservers(observers);
1054     }
1055 
1056     /** {@inheritDoc} */
1057     @Override
1058     public boolean containsAllObservers(Collection<PersonDTO> observers) {
1059         return delegateObject.containsAllObservers(observers);
1060     }
1061 
1062     /** {@inheritDoc} */
1063     @Override
1064     public Collection<PersonDTO> getObservers() {
1065         return delegateObject.getObservers();
1066     }
1067 
1068     /** {@inheritDoc} */
1069     @Override
1070     public void setObservers(Collection<PersonDTO> observers) {
1071         delegateObject.setObservers(observers);
1072     }
1073 
1074     /** {@inheritDoc} */
1075     @Override
1076     public SynchronizationStatusDTO getSynchronizationStatus() {
1077         return delegateObject.getSynchronizationStatus();
1078     }
1079 
1080     /** {@inheritDoc} */
1081     @Override
1082     public void setSynchronizationStatus(SynchronizationStatusDTO synchronizationStatus) {
1083         delegateObject.setSynchronizationStatus(synchronizationStatus);
1084     }
1085 
1086     /** {@inheritDoc} */
1087     @Override
1088     public ErrorDTO getErrors(int index) {
1089         return delegateObject.getErrors(index);
1090     }
1091 
1092     /** {@inheritDoc} */
1093     @Override
1094     public boolean isErrorsEmpty() {
1095         return delegateObject.isErrorsEmpty();
1096     }
1097 
1098     /** {@inheritDoc} */
1099     @Override
1100     public int sizeErrors() {
1101         return delegateObject.sizeErrors();
1102     }
1103 
1104     /** {@inheritDoc} */
1105     @Override
1106     public void addErrors(ErrorDTO error) {
1107         delegateObject.addErrors(error);
1108     }
1109 
1110     /** {@inheritDoc} */
1111     @Override
1112     public void addAllErrors(Collection<ErrorDTO> error) {
1113         delegateObject.addAllErrors(error);
1114     }
1115 
1116     /** {@inheritDoc} */
1117     @Override
1118     public boolean removeErrors(ErrorDTO error) {
1119         return delegateObject.removeErrors(error);
1120     }
1121 
1122     /** {@inheritDoc} */
1123     @Override
1124     public boolean removeAllErrors(Collection<ErrorDTO> error) {
1125         return delegateObject.removeAllErrors(error);
1126     }
1127 
1128     /** {@inheritDoc} */
1129     @Override
1130     public boolean containsErrors(ErrorDTO error) {
1131         return delegateObject.containsErrors(error);
1132     }
1133 
1134     /** {@inheritDoc} */
1135     @Override
1136     public boolean containsAllErrors(Collection<ErrorDTO> error) {
1137         return delegateObject.containsAllErrors(error);
1138     }
1139 
1140     /** {@inheritDoc} */
1141     @Override
1142     public Collection<ErrorDTO> getErrors() {
1143         return delegateObject.getErrors();
1144     }
1145 
1146     /** {@inheritDoc} */
1147     @Override
1148     public void setErrors(Collection<ErrorDTO> error) {
1149         delegateObject.setErrors(error);
1150     }
1151 
1152     /** {@inheritDoc} */
1153     @Override
1154     public MeasurementDTO getIndividualMeasurements(int index) {
1155         return delegateObject.getIndividualMeasurements(index);
1156     }
1157 
1158     /** {@inheritDoc} */
1159     @Override
1160     public boolean isIndividualMeasurementsEmpty() {
1161         return delegateObject.isIndividualMeasurementsEmpty();
1162     }
1163 
1164     /** {@inheritDoc} */
1165     @Override
1166     public int sizeIndividualMeasurements() {
1167         return delegateObject.sizeIndividualMeasurements();
1168     }
1169 
1170     /** {@inheritDoc} */
1171     @Override
1172     public void addIndividualMeasurements(MeasurementDTO individualMeasurements) {
1173         delegateObject.addIndividualMeasurements(individualMeasurements);
1174     }
1175 
1176     /** {@inheritDoc} */
1177     @Override
1178     public void addAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1179         delegateObject.addAllIndividualMeasurements(individualMeasurements);
1180     }
1181 
1182     /** {@inheritDoc} */
1183     @Override
1184     public boolean removeIndividualMeasurements(MeasurementDTO individualMeasurements) {
1185         return delegateObject.removeIndividualMeasurements(individualMeasurements);
1186     }
1187 
1188     /** {@inheritDoc} */
1189     @Override
1190     public boolean removeAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1191         return delegateObject.removeAllIndividualMeasurements(individualMeasurements);
1192     }
1193 
1194     /** {@inheritDoc} */
1195     @Override
1196     public boolean containsIndividualMeasurements(MeasurementDTO individualMeasurements) {
1197         return delegateObject.containsIndividualMeasurements(individualMeasurements);
1198     }
1199 
1200     /** {@inheritDoc} */
1201     @Override
1202     public boolean containsAllIndividualMeasurements(Collection<MeasurementDTO> individualMeasurements) {
1203         return delegateObject.containsAllIndividualMeasurements(individualMeasurements);
1204     }
1205 
1206     /** {@inheritDoc} */
1207     @Override
1208     public List<MeasurementDTO> getIndividualMeasurements() {
1209         return delegateObject.getIndividualMeasurements();
1210     }
1211 
1212     /** {@inheritDoc} */
1213     @Override
1214     public void setIndividualMeasurements(List<MeasurementDTO> individualMeasurements) {
1215         delegateObject.setIndividualMeasurements(individualMeasurements);
1216     }
1217 
1218 
1219     @Override
1220     public PmfmStrategyDTO getPmfmStrategies(int index) {
1221         return delegateObject.getPmfmStrategies(index);
1222     }
1223 
1224     @Override
1225     public boolean isPmfmStrategiesEmpty() {
1226         return delegateObject.isPmfmStrategiesEmpty();
1227     }
1228 
1229     @Override
1230     public int sizePmfmStrategies() {
1231         return delegateObject.sizePmfmStrategies();
1232     }
1233 
1234     @Override
1235     public void addPmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1236         delegateObject.addPmfmStrategies(pmfmStrategies);
1237     }
1238 
1239     @Override
1240     public void addAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1241         delegateObject.addAllPmfmStrategies(pmfmStrategies);
1242     }
1243 
1244     @Override
1245     public boolean removePmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1246         return delegateObject.removePmfmStrategies(pmfmStrategies);
1247     }
1248 
1249     @Override
1250     public boolean removeAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1251         return delegateObject.removeAllPmfmStrategies(pmfmStrategies);
1252     }
1253 
1254     @Override
1255     public boolean containsPmfmStrategies(PmfmStrategyDTO pmfmStrategies) {
1256         return delegateObject.containsPmfmStrategies(pmfmStrategies);
1257     }
1258 
1259     @Override
1260     public boolean containsAllPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1261         return delegateObject.containsAllPmfmStrategies(pmfmStrategies);
1262     }
1263 
1264     @Override
1265     public Collection<PmfmStrategyDTO> getPmfmStrategies() {
1266         return delegateObject.getPmfmStrategies();
1267     }
1268 
1269     @Override
1270     public void setPmfmStrategies(Collection<PmfmStrategyDTO> pmfmStrategies) {
1271         delegateObject.setPmfmStrategies(pmfmStrategies);
1272     }
1273 
1274     /**
1275      * <p>getCampaignId.</p>
1276      *
1277      * @return a {@link java.lang.Integer} object.
1278      */
1279     public Integer getCampaignId() {
1280         return getCampaign() == null ? null : getCampaign().getId();
1281     }
1282 
1283     /**
1284      * <p>getLocationId.</p>
1285      *
1286      * @return a {@link java.lang.Integer} object.
1287      */
1288     public Integer getLocationId() {
1289         return getLocation() == null ? null : getLocation().getId();
1290     }
1291 
1292     /**
1293      * <p>getProgramCode.</p>
1294      *
1295      * @return a {@link java.lang.String} object.
1296      */
1297     public String getProgramCode() {
1298         return getProgram() == null ? null : getProgram().getCode();
1299     }
1300 
1301     @Override
1302     public SurveysMapUIModel getMapUIModel() {
1303         return mapUIModel;
1304     }
1305 
1306     @Override
1307     public void fireOpenFullScreenEvent() {
1308         fireEvent(EVENT_OPEN_FULLSCREEN);
1309     }
1310 
1311     @Override
1312     public void fireCloseFullScreenEvent() {
1313         fireEvent(EVENT_CLOSE_FULLSCREEN);
1314     }
1315 
1316     private void fireEvent(String event) {
1317         boolean modify = isModify();
1318         firePropertyChanged(event, null, true);
1319         setModify(modify);
1320     }
1321 
1322     public void setMapUIModel(SurveysMapUIModel mapUIModel) {
1323         this.mapUIModel = mapUIModel;
1324         this.mapUIModel.setParentUIModel(this);
1325     }
1326 }