Subversion Repositories eFlore/Applications.del

Rev

Rev 1834 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1834 Rev 1984
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
		
91
		
92
		public HasClickHandlers getLienOuvrages();
92
		public HasClickHandlers getLienOuvrages();
93
		
93
		
94
		public HasClickHandlers getLienBonnier();
94
		public HasClickHandlers getLienBonnier();
95
		
95
		
96
		public HasClickHandlers getLienCles();
96
		public HasClickHandlers getLienCles();
97
		
97
		
98
		public HasClickHandlers getLienEflore();
98
		public HasClickHandlers getLienEflore();
99
	
99
	
100
		public HasWidgets getZoneRss();
100
		public HasWidgets getZoneRss();
101
 
101
 
102
		public void viderMetadonnees();
102
		public void viderMetadonnees();
103
		
103
		
104
		public void viderForum();
104
		public void viderForum();
105
		
105
		
106
		void afficherZoneActionsObs();
106
		void afficherZoneActionsObs();
107
		
107
		
108
		void cacherZoneActionsObs();
108
		void cacherZoneActionsObs();
109
	}
109
	}
110
 
110
 
111
	private Observation observation;
111
	private Observation observation;
112
	private Vue vue;
112
	private Vue vue;
113
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
113
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
114
 
114
 
115
	// Déclaration des services à utiliser
115
	// Déclaration des services à utiliser
116
	private ObservationService observationService;
116
	private ObservationService observationService;
117
 
117
 
118
	private CacheClient cache = CacheClient.getInstance();
118
	private CacheClient cache = CacheClient.getInstance();
119
 
119
 
120
	public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) {
120
	public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) {
121
		this.vue = vue;
121
		this.vue = vue;
122
		this.observationService = observationService;
122
		this.observationService = observationService;
123
	}
123
	}
124
 
124
 
125
	public void go(final HasWidgets composite) {
125
	public void go(final HasWidgets composite) {
126
		// TODO afficher une icone de chargement si le chargement devient trop
126
		// TODO afficher une icone de chargement si le chargement devient trop
127
		// long
-
 
128
		// car tout l'écran est asynchrone ici
127
		// long car tout l'écran est asynchrone ici
129
		String observationId = URLUtils.getURLSpecialParameterValue();
128
		String observationId = URLUtils.getURLSpecialParameterValue();
130
		observationService.getObservation(observationId, new ObservationsCallback() {
129
		observationService.getObservation(observationId, new ObservationsCallback() {
131
			@Override
130
			@Override
132
			public void surRetour(ObservationServiceResultat objetRetour) {
131
			public void surRetour(ObservationServiceResultat objetRetour) {
133
				observation = cache.getObservationCourante();
132
				observation = cache.getObservationCourante();
134
				afficherRss(cache.getObservationCourante());
133
				afficherRss(cache.getObservationCourante());
135
				// trouve l'image courante si elle n'est pas deja en cache
134
				// trouve l'image courante si elle n'est pas deja en cache
136
				List<Image> listeImages = cache.getObservationCourante().getImages();
135
				List<Image> listeImages = cache.getObservationCourante().getImages();
137
				if (listeImages.size() > 0) {
136
				if (listeImages.size() > 0) {
138
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
137
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
139
				} else {
138
				} else {
140
					CacheClient.getInstance().setImageCourante(null);
139
					CacheClient.getInstance().setImageCourante(null);
141
				}
140
				}
142
				
141
				
143
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
142
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
144
				new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
143
				new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
145
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
144
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
146
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
145
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
147
 
146
 
148
				composite.add(vue.asWidget());
147
				composite.add(vue.asWidget());
149
			}
148
			}
150
 
149
 
151
			@Override
150
			@Override
152
			public void surErreur(String messageErreur) {
151
			public void surErreur(String messageErreur) {
153
				Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée");
152
				Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée");
154
			}
153
			}
155
		});
154
		});
156
		afficherZoneActionsObs();
155
		afficherZoneActionsObs();
157
		gererEvenements();
156
		gererEvenements();
158
	}
157
	}
159
 
158
 
160
	public void afficherRss(Observation observation) {
159
	public void afficherRss(Observation observation) {
161
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
160
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
162
	}
161
	}
163
 
162
 
164
	public void gererEvenements() {
163
	public void gererEvenements() {
165
		
164
		
166
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
165
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
167
			@Override
166
			@Override
168
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
167
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
169
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
168
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
170
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
169
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
171
				}
170
				}
172
			}
171
			}
173
		});
172
		});
174
 
173
 
175
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
174
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
176
			@Override
175
			@Override
177
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
176
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
178
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
177
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
179
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
178
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
180
				}
179
				}
181
			}
180
			}
182
		});
181
		});
183
 
182
 
184
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
183
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
185
			@Override
184
			@Override
186
			public void onChangementImage(EvenementChangementImageValidation event) {
185
			public void onChangementImage(EvenementChangementImageValidation event) {
187
				vue.getDetailImageObservation().clear();
186
				vue.getDetailImageObservation().clear();
188
				new ObservationImagesPresenteur(
187
				new ObservationImagesPresenteur(
189
					new ObservationImagesVue(), 
188
					new ObservationImagesVue(), 
190
					cache.getObservationCourante(), 
189
					cache.getObservationCourante(), 
191
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
190
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
192
			}
191
			}
193
		});
192
		});
194
 
193
 
195
		ClickHandler clicAjoutProposition = new ClickHandler() {
194
		ClickHandler clicAjoutProposition = new ClickHandler() {
196
			@Override
195
			@Override
197
			public void onClick(ClickEvent event) {
196
			public void onClick(ClickEvent event) {
198
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
197
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
199
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
198
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
200
			}
199
			}
201
		};
200
		};
202
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
201
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
203
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
202
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
204
 
203
 
205
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
204
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
206
			@Override
205
			@Override
207
			public void onClick(ClickEvent event) {
206
			public void onClick(ClickEvent event) {
208
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
207
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
209
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
208
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
210
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
209
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
211
			}
210
			}
212
		};
211
		};
213
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
212
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
214
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
213
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
215
 
214
 
216
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
215
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
217
			@Override
216
			@Override
218
			public void onClick(ClickEvent event) {
217
			public void onClick(ClickEvent event) {
219
				Config config = new Config();
218
				Config config = new Config();
220
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
219
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
221
			}
220
			}
222
		});
221
		});
223
 
222
 
224
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
223
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
225
			@Override
224
			@Override
226
			public void onClick(ClickEvent event) {
225
			public void onClick(ClickEvent event) {
227
				Config config = new Config();
226
				Config config = new Config();
228
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
227
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
229
			}
228
			}
230
		});
229
		});
231
		
230
		
232
		vue.getLienCles().addClickHandler(new ClickHandler() {
231
		vue.getLienCles().addClickHandler(new ClickHandler() {
233
			@Override
232
			@Override
234
			public void onClick(ClickEvent event) {
233
			public void onClick(ClickEvent event) {
235
				Config config = new Config();
234
				Config config = new Config();
236
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
235
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
237
			}
236
			}
238
		});
237
		});
239
		
238
		
240
		vue.getLienEflore().addClickHandler(new ClickHandler() {
239
		vue.getLienEflore().addClickHandler(new ClickHandler() {
241
			@Override
240
			@Override
242
			public void onClick(ClickEvent event) {
241
			public void onClick(ClickEvent event) {
243
				Config config = new Config();
242
				Config config = new Config();
244
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
243
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
245
			}
244
			}
246
		});
245
		});
247
		
246
		
248
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
247
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
249
			@Override
248
			@Override
250
			public void onClick(ClickEvent event) {
249
			public void onClick(ClickEvent event) {
251
				GWT.log("Lancer evnt : EvenementDepublierObs");
250
				GWT.log("Lancer evnt : EvenementDepublierObs");
252
				if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
251
				if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
253
					BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
252
					BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
254
				}
253
				}
255
			}
254
			}
256
		});
255
		});
257
		
256
		
258
		BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
257
		BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
259
			@Override
258
			@Override
260
			public void onDepublicationObs(EvenementDepublierObs event) {
259
			public void onDepublicationObs(EvenementDepublierObs event) {
261
				GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
260
				GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
262
				if (event.getIdObs().equals(observation.getId())) {
261
				if (event.getIdObs().equals(observation.getId())) {
263
					depublierObs();
262
					depublierObs();
264
				}
263
				}
265
			}
264
			}
266
		});
265
		});
267
		
266
		
268
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
267
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
269
			@Override
268
			@Override
270
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
269
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
271
				afficherZoneActionsObs();
270
				afficherZoneActionsObs();
272
			}
271
			}
273
		});
272
		});
274
		
273
		
275
		BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
274
		BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
276
			
275
			
277
			@Override
276
			@Override
278
			public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
277
			public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
279
				String observationId = URLUtils.getURLSpecialParameterValue();
278
				String observationId = URLUtils.getURLSpecialParameterValue();
280
				observationService.getObservation(observationId, new ObservationsCallback() {
279
				observationService.getObservation(observationId, new ObservationsCallback() {
281
 
280
 
282
					@Override
281
					@Override
283
					public void surRetour(ObservationServiceResultat objetRetour) {
282
					public void surRetour(ObservationServiceResultat objetRetour) {
284
						vue.viderMetadonnees();
283
						vue.viderMetadonnees();
285
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
284
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
286
						rechargerForum();
285
						rechargerForum();
287
					}
286
					}
288
 
287
 
289
					@Override
288
					@Override
290
					public void surErreur(String messageErreur) {
289
					public void surErreur(String messageErreur) {
291
						Window.alert(messageErreur);
290
						Window.alert(messageErreur);
292
					}
291
					}
293
				});	
292
				});	
294
			}
293
			}
295
		});
294
		});
296
	}
295
	}
297
	
296
	
298
	private void rechargerForum() {
297
	private void rechargerForum() {
299
		vue.viderForum();
298
		vue.viderForum();
300
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
299
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
301
	}
300
	}
302
	
301
	
303
	private void depublierObs() {
302
	private void depublierObs() {
304
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
303
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
305
			GWT.log("depublierObs :"+observation.getId());
304
			GWT.log("depublierObs :"+observation.getId());
306
			observationService.depublier(observation, new DepublicationObservationCallBack() {
305
			observationService.depublier(observation, new DepublicationObservationCallBack() {
307
				
306
				
308
				@Override
307
				@Override
309
				public void surRetour(String depublicationOk) {
308
				public void surRetour(String depublicationOk) {
310
					GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
309
					GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
311
					if (depublicationOk.equals("OK")) {
310
					if (depublicationOk.equals("OK")) {
312
						BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
311
						BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
313
					}
312
					}
314
				}
313
				}
315
			});
314
			});
316
		}
315
		}
317
	}
316
	}
318
	
317
	
319
	private void afficherZoneActionsObs() {
318
	private void afficherZoneActionsObs() {
320
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
319
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
321
			vue.afficherZoneActionsObs();
320
			vue.afficherZoneActionsObs();
322
		} else {
321
		} else {
323
			vue.cacherZoneActionsObs();
322
			vue.cacherZoneActionsObs();
324
		}
323
		}
325
	}
324
	}
326
}
325
}