Subversion Repositories eFlore/Applications.del

Rev

Rev 1078 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1078 Rev 1113
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations;
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
8
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
8
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
9
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
9
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
11
import org.tela_botanica.del.client.modeles.Image;
11
import org.tela_botanica.del.client.modeles.Image;
12
import org.tela_botanica.del.client.modeles.ModeRecherche;
12
import org.tela_botanica.del.client.modeles.ModeRecherche;
13
import org.tela_botanica.del.client.modeles.Observation;
13
import org.tela_botanica.del.client.modeles.Observation;
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
18
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
18
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
19
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
19
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
20
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
20
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
21
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
21
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
22
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
22
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
23
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
23
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
24
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
24
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
25
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
25
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
26
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
26
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
-
 
27
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
27
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
28
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
28
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
29
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
29
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationPresenteur;
30
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationPresenteur;
30
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationVue;
31
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationVue;
31
 
32
 
32
import com.google.gwt.event.dom.client.ClickEvent;
33
import com.google.gwt.event.dom.client.ClickEvent;
33
import com.google.gwt.event.dom.client.ClickHandler;
34
import com.google.gwt.event.dom.client.ClickHandler;
34
import com.google.gwt.event.dom.client.HasClickHandlers;
35
import com.google.gwt.event.dom.client.HasClickHandlers;
35
import com.google.gwt.user.client.ui.HasWidgets;
36
import com.google.gwt.user.client.ui.HasWidgets;
36
import com.google.gwt.user.client.ui.IsWidget;
37
import com.google.gwt.user.client.ui.IsWidget;
37
 
38
 
38
public class ObservationPresenteur extends Presenteur {
39
public class ObservationPresenteur extends Presenteur {
39
 
40
 
40
	public interface Vue extends IsWidget {
41
	public interface Vue extends IsWidget {
41
		public HasClickHandlers getBoutonAjoutProposition();
42
		public HasClickHandlers getBoutonAjoutProposition();
42
 
43
 
43
		public HasWidgets getDeterminationsPanel();
44
		public HasWidgets getDeterminationsPanel();
44
 
45
 
45
		public HasWidgets getImagesPanel();
46
		public HasWidgets getImagesPanel();
46
 
47
 
47
		public HasWidgets getMetadonneesPanel();
48
		public HasWidgets getMetadonneesPanel();
48
		
49
		
49
		public HasClickHandlers getNomEspece();
50
		public HasClickHandlers getNomEspece();
50
 
51
 
51
		public void setNomEspece(String nomEspece);
52
		public void setNomEspece(String nomEspece);
52
		
53
		
53
		public HasClickHandlers getBoutonAjoutCommentaire();
54
		public HasClickHandlers getBoutonAjoutCommentaire();
54
		public HasClickHandlers getBoutonPlusDeDetails();
55
		public HasClickHandlers getBoutonPlusDeDetails();
55
	}
56
	}
56
 
57
 
57
	private Vue vue;
58
	private Vue vue;
58
 
59
 
59
	private Observation observation;
60
	private Observation observation;
60
	
61
	
61
	private Image imagePrincipale;
62
	private Image imagePrincipale;
62
 
63
 
63
	private ObservationDeterminationPresenteur observationDeterminationPresenteur;
64
	private ObservationDeterminationPresenteur observationDeterminationPresenteur;
64
 
65
 
65
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
66
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
66
 
67
 
67
	public ObservationPresenteur(Vue vue, Observation observation, Image imagePrincipale) {
68
	public ObservationPresenteur(Vue vue, Observation observation, Image imagePrincipale) {
68
		this.observation = observation;
69
		this.observation = observation;
69
		this.vue = vue;
70
		this.vue = vue;
70
		this.imagePrincipale=imagePrincipale;
71
		this.imagePrincipale=imagePrincipale;
71
		chargerObservation();
72
		chargerObservation();
72
	}
73
	}
73
 
74
 
74
	public void chargerObservation() {
75
	public void chargerObservation() {
75
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation, imagePrincipale).go(vue.getImagesPanel());
76
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation, imagePrincipale, ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS).go(vue.getImagesPanel());
76
		new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonneesPanel());
77
		new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonneesPanel());
77
		observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
78
		observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
78
		observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
79
		observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
79
		vue.setNomEspece(observation.getNomRetenu());
80
		vue.setNomEspece(observation.getNomRetenu());
80
		gererEvenements();
81
		gererEvenements();
81
	}
82
	}
82
 
83
 
83
	public void go(HasWidgets composite) {
84
	public void go(HasWidgets composite) {
84
		composite.add(vue.asWidget());
85
		composite.add(vue.asWidget());
85
	}
86
	}
86
 
87
 
87
	protected void gererEvenements() {
88
	protected void gererEvenements() {
88
 
89
 
89
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
90
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
90
			@Override
91
			@Override
91
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
92
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
92
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
93
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
93
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
94
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
94
					ajouterPropositionDetermination(event.getPropositionDetermination());
95
					ajouterPropositionDetermination(event.getPropositionDetermination());
95
				}
96
				}
96
			}
97
			}
97
		});
98
		});
98
 
99
 
99
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
100
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
100
			@Override
101
			@Override
101
			public void onClick(ClickEvent event) {
102
			public void onClick(ClickEvent event) {
102
				List<Image> images = observation.getImages();
103
				List<Image> images = observation.getImages();
103
				if (images.size() > 0) {
104
				if (images.size() > 0) {
104
					CacheClient.getInstance().setImageCourante(images.get(0));
105
					CacheClient.getInstance().setImageCourante(images.get(0));
105
				} else {
106
				} else {
106
					CacheClient.getInstance().setImageCourante(null);
107
					CacheClient.getInstance().setImageCourante(null);
107
				}
108
				}
108
				CacheClient.getInstance().setObservationCourante(observation);
109
				CacheClient.getInstance().setObservationCourante(observation);
109
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
110
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
110
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
111
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
111
			}
112
			}
112
		});
113
		});
113
		
114
		
114
		ClickHandler versDetails = new ClickHandler() {
115
		ClickHandler versDetails = new ClickHandler() {
115
			@Override
116
			@Override
116
			public void onClick(ClickEvent event) {
117
			public void onClick(ClickEvent event) {
117
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
118
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
118
			}
119
			}
119
		};
120
		};
120
		vue.getNomEspece().addClickHandler(versDetails);
121
		vue.getNomEspece().addClickHandler(versDetails);
121
		vue.getBoutonPlusDeDetails().addClickHandler(versDetails);
122
		vue.getBoutonPlusDeDetails().addClickHandler(versDetails);
122
		
123
		
123
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
124
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
124
			@Override
125
			@Override
125
			public void onClick(ClickEvent event) {
126
			public void onClick(ClickEvent event) {
126
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(observation, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
127
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(observation, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
127
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
128
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
128
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
129
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
129
			}
130
			}
130
		});
131
		});
131
		
132
		
132
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
133
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
133
 
134
 
134
			@Override
135
			@Override
135
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
136
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
136
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
137
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
137
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
138
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
138
				}
139
				}
139
			}
140
			}
140
		});
141
		});
141
	}
142
	}
142
 
143
 
143
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
144
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
144
		observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
145
		observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
145
	}
146
	}
146
}
147
}