Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1830 Rev 1834
1
package org.tela_botanica.del.client.vues.identiplante.plateformedetermination;
1
package org.tela_botanica.del.client.vues.identiplante.plateformedetermination;
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.fenetreoverlay.FenetreOverlayDefilanteVue;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
8
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
8
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
9
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
9
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
10
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
10
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
11
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
11
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
12
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
12
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
13
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
13
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
14
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
14
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
15
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
15
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
16
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
16
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
17
import org.tela_botanica.del.client.composants.rss.RssPresenteur;
17
import org.tela_botanica.del.client.composants.rss.RssPresenteur;
18
import org.tela_botanica.del.client.composants.rss.RssVue;
18
import org.tela_botanica.del.client.composants.rss.RssVue;
19
import org.tela_botanica.del.client.config.Config;
19
import org.tela_botanica.del.client.config.Config;
20
import org.tela_botanica.del.client.i18n.I18n;
20
import org.tela_botanica.del.client.i18n.I18n;
21
import org.tela_botanica.del.client.modeles.Image;
21
import org.tela_botanica.del.client.modeles.Image;
22
import org.tela_botanica.del.client.modeles.ModeRecherche;
22
import org.tela_botanica.del.client.modeles.ModeRecherche;
23
import org.tela_botanica.del.client.modeles.MoyenneVote;
23
import org.tela_botanica.del.client.modeles.MoyenneVote;
24
import org.tela_botanica.del.client.modeles.Observation;
24
import org.tela_botanica.del.client.modeles.Observation;
25
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
25
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
26
import org.tela_botanica.del.client.modeles.PropositionDetermination;
26
import org.tela_botanica.del.client.modeles.PropositionDetermination;
27
import org.tela_botanica.del.client.modeles.Utilisateur;
27
import org.tela_botanica.del.client.modeles.Utilisateur;
28
import org.tela_botanica.del.client.modeles.VoteDetermination;
28
import org.tela_botanica.del.client.modeles.VoteDetermination;
29
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
29
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
30
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
30
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
31
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
31
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
32
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
32
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
33
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
33
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
34
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
34
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
35
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
35
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
36
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
36
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
37
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
37
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
38
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs;
38
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs;
39
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
39
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
40
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.EvenementValidationPropositionDetermination;
40
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.EvenementValidationPropositionDetermination;
41
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.GestionnaireEvenementValidationPropositionDetermination;
41
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.GestionnaireEvenementValidationPropositionDetermination;
42
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
42
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
43
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
43
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
44
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
44
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
45
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
45
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
46
import org.tela_botanica.del.client.services.rest.ObservationService;
46
import org.tela_botanica.del.client.services.rest.ObservationService;
47
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
47
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
48
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
48
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
49
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
49
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
50
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
50
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
51
import org.tela_botanica.del.client.utils.ModerationUtils;
51
import org.tela_botanica.del.client.utils.ModerationUtils;
52
import org.tela_botanica.del.client.utils.URLUtils;
52
import org.tela_botanica.del.client.utils.URLUtils;
53
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
53
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
54
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
54
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
55
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
55
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
56
import org.tela_botanica.del.client.composants.forum.ForumVue;
56
import org.tela_botanica.del.client.composants.forum.ForumVue;
57
 
57
 
58
import com.google.gwt.core.shared.GWT;
58
import com.google.gwt.core.shared.GWT;
59
import com.google.gwt.event.dom.client.ClickEvent;
59
import com.google.gwt.event.dom.client.ClickEvent;
60
import com.google.gwt.event.dom.client.ClickHandler;
60
import com.google.gwt.event.dom.client.ClickHandler;
61
import com.google.gwt.event.dom.client.HasClickHandlers;
61
import com.google.gwt.event.dom.client.HasClickHandlers;
62
import com.google.gwt.user.client.Window;
62
import com.google.gwt.user.client.Window;
63
import com.google.gwt.user.client.ui.Button;
63
import com.google.gwt.user.client.ui.Button;
64
import com.google.gwt.user.client.ui.HasWidgets;
64
import com.google.gwt.user.client.ui.HasWidgets;
65
import com.google.gwt.user.client.ui.IsWidget;
65
import com.google.gwt.user.client.ui.IsWidget;
66
import com.google.gwt.user.client.ui.Panel;
66
import com.google.gwt.user.client.ui.Panel;
67
 
67
 
68
public class IdentiplanteDeterminationPresenteur extends Presenteur {
68
public class IdentiplanteDeterminationPresenteur extends Presenteur {
69
 
69
 
70
	/**
70
	/**
71
	 * Vue de l'interface de détermination
71
	 * Vue de l'interface de détermination
72
	 * */
72
	 * */
73
	public interface Vue extends IsWidget {
73
	public interface Vue extends IsWidget {
74
		public HasWidgets getForum();
74
		public HasWidgets getForum();
75
 
75
 
76
		public HasWidgets getDetailImageObservation();
76
		public HasWidgets getDetailImageObservation();
77
 
77
 
78
		public HasWidgets getFormulaireRechercheEflore();
78
		public HasWidgets getFormulaireRechercheEflore();
79
 
79
 
80
		public HasClickHandlers getBoutonAjoutProposition();
80
		public HasClickHandlers getBoutonAjoutProposition();
81
 
81
 
82
		public HasClickHandlers getBoutonAjoutCommentaire();
82
		public HasClickHandlers getBoutonAjoutCommentaire();
83
 
83
 
84
		public HasClickHandlers getBoutonAjoutPropositionBas();
84
		public HasClickHandlers getBoutonAjoutPropositionBas();
85
 
85
 
86
		public HasClickHandlers getBoutonAjoutCommentaireBas();
86
		public HasClickHandlers getBoutonAjoutCommentaireBas();
87
		
87
		
88
		public HasClickHandlers getBoutonDepublierObs();
88
		public HasClickHandlers getBoutonDepublierObs();
89
 
89
 
90
		public HasWidgets getMetadonnees();
90
		public HasWidgets getMetadonnees();
91
 
-
 
92
		public void afficherNomTaxonProbable(String nomTaxon);
-
 
93
		
91
		
94
		public HasClickHandlers getLienOuvrages();
92
		public HasClickHandlers getLienOuvrages();
95
		
93
		
96
		public HasClickHandlers getLienBonnier();
94
		public HasClickHandlers getLienBonnier();
97
		
95
		
98
		public HasClickHandlers getLienCles();
96
		public HasClickHandlers getLienCles();
99
		
97
		
100
		public HasClickHandlers getLienEflore();
98
		public HasClickHandlers getLienEflore();
101
	
99
	
102
		public HasWidgets getZoneRss();
100
		public HasWidgets getZoneRss();
103
 
101
 
104
		public void viderMetadonnees();
102
		public void viderMetadonnees();
105
		
103
		
106
		public void viderForum();
104
		public void viderForum();
107
		
105
		
108
		void afficherZoneActionsObs();
106
		void afficherZoneActionsObs();
109
		
107
		
110
		void cacherZoneActionsObs();
108
		void cacherZoneActionsObs();
111
	}
109
	}
112
 
110
 
113
	private Observation observation;
111
	private Observation observation;
114
	private Vue vue;
112
	private Vue vue;
115
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
113
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
116
 
114
 
117
	// Déclaration des services à utiliser
115
	// Déclaration des services à utiliser
118
	private ObservationService observationService;
116
	private ObservationService observationService;
119
 
117
 
120
	private CacheClient cache = CacheClient.getInstance();
118
	private CacheClient cache = CacheClient.getInstance();
121
	
-
 
122
	private PropositionDetermination propositionPlusPopulaire;
-
 
123
 
119
 
124
	public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) {
120
	public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) {
125
		this.vue = vue;
121
		this.vue = vue;
126
		this.observationService = observationService;
122
		this.observationService = observationService;
127
	}
123
	}
128
 
124
 
129
	public void go(final HasWidgets composite) {
125
	public void go(final HasWidgets composite) {
130
		// TODO afficher une icone de chargement si le chargement devient trop
126
		// TODO afficher une icone de chargement si le chargement devient trop
131
		// long
127
		// long
132
		// car tout l'écran est asynchrone ici
128
		// car tout l'écran est asynchrone ici
133
		String observationId = URLUtils.getURLSpecialParameterValue();
129
		String observationId = URLUtils.getURLSpecialParameterValue();
134
		observationService.getObservation(observationId, new ObservationsCallback() {
130
		observationService.getObservation(observationId, new ObservationsCallback() {
135
			@Override
131
			@Override
136
			public void surRetour(ObservationServiceResultat objetRetour) {
132
			public void surRetour(ObservationServiceResultat objetRetour) {
137
				observation = cache.getObservationCourante();
133
				observation = cache.getObservationCourante();
138
				afficherRss(cache.getObservationCourante());
134
				afficherRss(cache.getObservationCourante());
139
				// trouve l'image courante si elle n'est pas deja en cache
135
				// trouve l'image courante si elle n'est pas deja en cache
140
				List<Image> listeImages = cache.getObservationCourante().getImages();
136
				List<Image> listeImages = cache.getObservationCourante().getImages();
141
				if (listeImages.size() > 0) {
137
				if (listeImages.size() > 0) {
142
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
138
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
143
				} else {
139
				} else {
144
					CacheClient.getInstance().setImageCourante(null);
140
					CacheClient.getInstance().setImageCourante(null);
145
				}
141
				}
146
				
142
				
147
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
143
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
148
				new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
144
				new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
149
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
145
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
150
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
146
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
151
 
147
 
152
				composite.add(vue.asWidget());
148
				composite.add(vue.asWidget());
153
				calculerEtAfficherVoteDeterminationPlusPopulaire();
-
 
154
			}
149
			}
155
 
150
 
156
			@Override
151
			@Override
157
			public void surErreur(String messageErreur) {
152
			public void surErreur(String messageErreur) {
158
				Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée");
153
				Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée");
159
			}
154
			}
160
		});
155
		});
161
		afficherZoneActionsObs();
156
		afficherZoneActionsObs();
162
		gererEvenements();
157
		gererEvenements();
163
	}
158
	}
164
 
159
 
165
	public void afficherRss(Observation observation) {
160
	public void afficherRss(Observation observation) {
166
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
161
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
167
	}
162
	}
168
 
-
 
169
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
-
 
170
		if (cache.getObservationCourante() != null) {
-
 
171
			Observation observation = cache.getObservationCourante();
-
 
172
			String nomTaxon = observation.getNomRetenuFormateReferentiel();
-
 
173
			List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations());
-
 
174
			if (votesOrdonnes.size() > 0) {
-
 
175
				nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
-
 
176
				propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee();
-
 
177
			}
-
 
178
			vue.afficherNomTaxonProbable(nomTaxon);
-
 
179
		}
-
 
180
	}
-
 
181
 
163
 
182
	public void gererEvenements() {
-
 
183
		
-
 
184
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
-
 
185
			@Override
-
 
186
			public void onVoteDetermination(VoteDetermination event) {
-
 
187
				calculerEtAfficherVoteDeterminationPlusPopulaire();
-
 
188
			}
-
 
189
		});
164
	public void gererEvenements() {
190
		
165
		
191
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
166
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
192
			@Override
167
			@Override
193
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
168
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
194
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
169
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
195
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
170
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
196
				}
171
				}
197
			}
172
			}
198
		});
173
		});
199
 
174
 
200
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
175
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
201
			@Override
176
			@Override
202
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
177
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
203
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
178
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
204
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
179
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
205
				}
180
				}
206
			}
181
			}
207
		});
182
		});
208
 
183
 
209
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
184
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
210
			@Override
185
			@Override
211
			public void onChangementImage(EvenementChangementImageValidation event) {
186
			public void onChangementImage(EvenementChangementImageValidation event) {
212
				vue.getDetailImageObservation().clear();
187
				vue.getDetailImageObservation().clear();
213
				new ObservationImagesPresenteur(
188
				new ObservationImagesPresenteur(
214
					new ObservationImagesVue(), 
189
					new ObservationImagesVue(), 
215
					cache.getObservationCourante(), 
190
					cache.getObservationCourante(), 
216
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
191
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
217
			}
192
			}
218
		});
193
		});
219
 
194
 
220
		ClickHandler clicAjoutProposition = new ClickHandler() {
195
		ClickHandler clicAjoutProposition = new ClickHandler() {
221
			@Override
196
			@Override
222
			public void onClick(ClickEvent event) {
197
			public void onClick(ClickEvent event) {
223
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
198
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
224
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
199
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
225
			}
200
			}
226
		};
201
		};
227
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
202
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
228
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
203
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
229
 
204
 
230
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
205
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
231
			@Override
206
			@Override
232
			public void onClick(ClickEvent event) {
207
			public void onClick(ClickEvent event) {
233
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
208
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
234
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
209
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
235
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
210
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
236
			}
211
			}
237
		};
212
		};
238
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
213
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
239
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
214
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
240
 
215
 
241
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
216
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
242
			@Override
217
			@Override
243
			public void onClick(ClickEvent event) {
218
			public void onClick(ClickEvent event) {
244
				Config config = new Config();
219
				Config config = new Config();
245
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
220
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
246
			}
221
			}
247
		});
222
		});
248
 
223
 
249
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
224
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
250
			@Override
225
			@Override
251
			public void onClick(ClickEvent event) {
226
			public void onClick(ClickEvent event) {
252
				Config config = new Config();
227
				Config config = new Config();
253
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
228
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
254
			}
229
			}
255
		});
230
		});
256
		
231
		
257
		vue.getLienCles().addClickHandler(new ClickHandler() {
232
		vue.getLienCles().addClickHandler(new ClickHandler() {
258
			@Override
233
			@Override
259
			public void onClick(ClickEvent event) {
234
			public void onClick(ClickEvent event) {
260
				Config config = new Config();
235
				Config config = new Config();
261
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
236
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
262
			}
237
			}
263
		});
238
		});
264
		
239
		
265
		vue.getLienEflore().addClickHandler(new ClickHandler() {
240
		vue.getLienEflore().addClickHandler(new ClickHandler() {
266
			@Override
241
			@Override
267
			public void onClick(ClickEvent event) {
242
			public void onClick(ClickEvent event) {
268
				Config config = new Config();
243
				Config config = new Config();
269
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
244
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
270
			}
245
			}
271
		});
246
		});
272
		
247
		
273
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
248
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
274
			@Override
249
			@Override
275
			public void onClick(ClickEvent event) {
250
			public void onClick(ClickEvent event) {
276
				GWT.log("Lancer evnt : EvenementDepublierObs");
251
				GWT.log("Lancer evnt : EvenementDepublierObs");
277
				if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
252
				if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
278
					BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
253
					BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
279
				}
254
				}
280
			}
255
			}
281
		});
256
		});
282
		
257
		
283
		BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
258
		BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
284
			@Override
259
			@Override
285
			public void onDepublicationObs(EvenementDepublierObs event) {
260
			public void onDepublicationObs(EvenementDepublierObs event) {
286
				GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
261
				GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
287
				if (event.getIdObs().equals(observation.getId())) {
262
				if (event.getIdObs().equals(observation.getId())) {
288
					depublierObs();
263
					depublierObs();
289
				}
264
				}
290
			}
265
			}
291
		});
266
		});
292
		
267
		
293
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
268
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
294
			@Override
269
			@Override
295
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
270
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
296
				afficherZoneActionsObs();
271
				afficherZoneActionsObs();
297
				//rechargerForum();
-
 
298
			}
272
			}
299
		});
273
		});
300
		
274
		
301
		BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
275
		BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
302
			
276
			
303
			@Override
277
			@Override
304
			public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
278
			public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
305
				String observationId = URLUtils.getURLSpecialParameterValue();
279
				String observationId = URLUtils.getURLSpecialParameterValue();
306
				observationService.getObservation(observationId, new ObservationsCallback() {
280
				observationService.getObservation(observationId, new ObservationsCallback() {
307
 
281
 
308
					@Override
282
					@Override
309
					public void surRetour(ObservationServiceResultat objetRetour) {
283
					public void surRetour(ObservationServiceResultat objetRetour) {
310
						vue.viderMetadonnees();
284
						vue.viderMetadonnees();
311
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
285
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
312
						rechargerForum();
286
						rechargerForum();
313
					}
287
					}
314
 
288
 
315
					@Override
289
					@Override
316
					public void surErreur(String messageErreur) {
290
					public void surErreur(String messageErreur) {
317
						Window.alert(messageErreur);
291
						Window.alert(messageErreur);
318
					}
292
					}
319
				});	
293
				});	
320
			}
294
			}
321
		});
295
		});
322
	}
296
	}
323
	
297
	
324
	private void rechargerForum() {
298
	private void rechargerForum() {
325
		vue.viderForum();
299
		vue.viderForum();
326
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
300
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
327
	}
301
	}
328
	
302
	
329
	private void depublierObs() {
303
	private void depublierObs() {
330
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
304
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
331
			GWT.log("depublierObs :"+observation.getId());
305
			GWT.log("depublierObs :"+observation.getId());
332
			observationService.depublier(observation, new DepublicationObservationCallBack() {
306
			observationService.depublier(observation, new DepublicationObservationCallBack() {
333
				
307
				
334
				@Override
308
				@Override
335
				public void surRetour(String depublicationOk) {
309
				public void surRetour(String depublicationOk) {
336
					GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
310
					GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
337
					if (depublicationOk.equals("OK")) {
311
					if (depublicationOk.equals("OK")) {
338
						BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
312
						BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
339
					}
313
					}
340
				}
314
				}
341
			});
315
			});
342
		}
316
		}
343
	}
317
	}
344
	
318
	
345
	private void afficherZoneActionsObs() {
319
	private void afficherZoneActionsObs() {
346
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
320
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
347
			vue.afficherZoneActionsObs();
321
			vue.afficherZoneActionsObs();
348
		} else {
322
		} else {
349
			vue.cacherZoneActionsObs();
323
			vue.cacherZoneActionsObs();
350
		}
324
		}
351
	}
325
	}
352
}
326
}