Subversion Repositories eFlore/Applications.del

Rev

Rev 1687 | Rev 1690 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1687 Rev 1689
Line 36... Line 36...
36
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
36
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
37
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
37
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
38
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
38
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
39
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
39
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
40
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
40
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
-
 
41
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs;
-
 
42
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
-
 
43
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.EvenementSupprimerImage;
41
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
44
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
42
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
45
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
43
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
46
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
44
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
47
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
45
import org.tela_botanica.del.client.services.rest.ObservationService;
48
import org.tela_botanica.del.client.services.rest.ObservationService;
46
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
49
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
-
 
50
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
47
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
51
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
-
 
52
import org.tela_botanica.del.client.services.rest.async.SuppressionImageCallback;
48
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
53
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
49
import org.tela_botanica.del.client.utils.URLUtils;
54
import org.tela_botanica.del.client.utils.URLUtils;
-
 
55
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
50
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
56
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
51
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
57
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
52
import org.tela_botanica.del.client.composants.forum.ForumVue;
58
import org.tela_botanica.del.client.composants.forum.ForumVue;
Line -... Line 59...
-
 
59
 
53
 
60
import com.google.gwt.core.shared.GWT;
54
import com.google.gwt.event.dom.client.ClickEvent;
61
import com.google.gwt.event.dom.client.ClickEvent;
55
import com.google.gwt.event.dom.client.ClickHandler;
62
import com.google.gwt.event.dom.client.ClickHandler;
56
import com.google.gwt.event.dom.client.HasClickHandlers;
63
import com.google.gwt.event.dom.client.HasClickHandlers;
57
import com.google.gwt.user.client.Window;
64
import com.google.gwt.user.client.Window;
Line 77... Line 84...
77
		public Button getBoutonAjoutCommentaire();
84
		public Button getBoutonAjoutCommentaire();
Line 78... Line 85...
78
 
85
 
Line 79... Line 86...
79
		public Button getBoutonAjoutPropositionBas();
86
		public Button getBoutonAjoutPropositionBas();
-
 
87
 
-
 
88
		public Button getBoutonAjoutCommentaireBas();
Line 80... Line 89...
80
 
89
		
Line 81... Line 90...
81
		public Button getBoutonAjoutCommentaireBas();
90
		public HasClickHandlers getBoutonDepublierObs();
Line 101... Line 110...
101
		void afficherBoutonValidationTaxon();
110
		void afficherBoutonValidationTaxon();
Line 102... Line 111...
102
 
111
 
103
		public void viderMetadonnees();
112
		public void viderMetadonnees();
Line -... Line 113...
-
 
113
	}
104
	}
114
 
105
 
115
	private Observation observation;
Line 106... Line 116...
106
	private Vue vue;
116
	private Vue vue;
107
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
117
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
Line 122... Line 132...
122
		// TODO afficher une icone de chargement si le chargement devient trop
132
		// TODO afficher une icone de chargement si le chargement devient trop
123
		// long
133
		// long
124
		// car tout l'écran est asynchrone ici
134
		// car tout l'écran est asynchrone ici
125
		String observationId = URLUtils.getURLSpecialParameterValue();
135
		String observationId = URLUtils.getURLSpecialParameterValue();
126
		observationService.getObservation(observationId, new ObservationsCallback() {
136
		observationService.getObservation(observationId, new ObservationsCallback() {
127
 
-
 
128
			@Override
137
			@Override
129
			public void surRetour(ObservationServiceResultat objetRetour) {
138
			public void surRetour(ObservationServiceResultat objetRetour) {
-
 
139
				observation = cache.getObservationCourante();
130
				afficherRss(cache.getObservationCourante());
140
				afficherRss(cache.getObservationCourante());
131
				// trouve l'image courante si elle n'est pas deja en cache
141
				// trouve l'image courante si elle n'est pas deja en cache
132
				List<Image> listeImages = cache.getObservationCourante().getImages();
142
				List<Image> listeImages = cache.getObservationCourante().getImages();
133
				if (listeImages.size() > 0) {
143
				if (listeImages.size() > 0) {
134
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
144
					CacheClient.getInstance().setImageCourante(listeImages.get(0));
Line 154... Line 164...
154
	}
164
	}
Line 155... Line 165...
155
 
165
 
156
	public void afficherRss(Observation observation) {
166
	public void afficherRss(Observation observation) {
157
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
167
		new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
158
	}
-
 
Line 159... Line 168...
159
	
168
	}
160
 
169
 
161
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
170
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
162
		if(cache.getObservationCourante() != null) {
171
		if (cache.getObservationCourante() != null) {
163
			Observation observation = cache.getObservationCourante();
172
			Observation observation = cache.getObservationCourante();
164
			String nomTaxon = observation.getNomRetenuFormateReferentiel();
173
			String nomTaxon = observation.getNomRetenuFormateReferentiel();
165
			List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations());
174
			List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations());
166
			if (votesOrdonnes.size() > 0) {
175
			if (votesOrdonnes.size() > 0) {
Line 167... Line 176...
167
				nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
176
				nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
168
				propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee();
177
				propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee();
169
				
178
				
170
				if(doitAfficherBoutonValidation(votesOrdonnes)) {
179
				if (doitAfficherBoutonValidation(votesOrdonnes)) {
171
					vue.afficherBoutonValidationTaxon();
180
					vue.afficherBoutonValidationTaxon();
172
				} else {
181
				} else {
173
					vue.cacherBoutonValidationTaxon();
182
					vue.cacherBoutonValidationTaxon();
174
				}
183
				}
175
			}		
184
			}
Line 176... Line 185...
176
			vue.afficherNomTaxonProbable(nomTaxon);
185
			vue.afficherNomTaxonProbable(nomTaxon);
Line 187... Line 196...
187
		}
196
		}
188
		return estAuteurObservation && !estPropositionRetenue;
197
		return estAuteurObservation && !estPropositionRetenue;
189
	}
198
	}
Line 190... Line 199...
190
 
199
 
191
	public void gererEvenements() {
-
 
192
		
200
	public void gererEvenements() {
193
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
201
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
194
			@Override
202
			@Override
195
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
203
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
196
				calculerEtAfficherVoteDeterminationPlusPopulaire();
204
				calculerEtAfficherVoteDeterminationPlusPopulaire();
Line 201... Line 209...
201
			@Override
209
			@Override
202
			public void onVoteDetermination(VoteDetermination event) {
210
			public void onVoteDetermination(VoteDetermination event) {
203
				calculerEtAfficherVoteDeterminationPlusPopulaire();
211
				calculerEtAfficherVoteDeterminationPlusPopulaire();
204
			}
212
			}
205
		});
213
		});
206
 
214
		
207
		ClickHandler clicAjoutProposition = new ClickHandler() {
-
 
208
			@Override
-
 
209
			public void onClick(ClickEvent event) {
-
 
210
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
211
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
-
 
212
			}
-
 
213
		};
-
 
214
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
-
 
215
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
-
 
216
 
-
 
217
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
-
 
218
			@Override
-
 
219
			public void onClick(ClickEvent event) {
-
 
220
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
-
 
221
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
222
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
-
 
223
			}
-
 
224
		};
-
 
225
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
-
 
226
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
-
 
227
 
-
 
228
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
215
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
229
			@Override
216
			@Override
230
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
217
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
231
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
218
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
232
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
219
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
233
				}
220
				}
234
			}
221
			}
235
		});
222
		});
Line 236... Line 223...
236
 
223
 
237
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
-
 
238
 
224
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
239
			@Override
225
			@Override
240
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
226
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
241
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
227
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
242
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
228
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
243
				}
229
				}
244
			}
230
			}
Line 245... Line 231...
245
		});
231
		});
246
 
-
 
247
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
232
 
248
 
233
		BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
249
			@Override
234
			@Override
250
			public void onChangementImage(EvenementChangementImageValidation event) {
235
			public void onChangementImage(EvenementChangementImageValidation event) {
251
				vue.getDetailImageObservation().clear();
236
				vue.getDetailImageObservation().clear();
252
				new ObservationImagesPresenteur(
237
				new ObservationImagesPresenteur(
253
					new ObservationImagesVue(), 
238
					new ObservationImagesVue(), 
254
					cache.getObservationCourante(), 
239
					cache.getObservationCourante(), 
255
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
240
					CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
256
			}
241
			}
-
 
242
		});
-
 
243
 
-
 
244
		ClickHandler clicAjoutProposition = new ClickHandler() {
-
 
245
			@Override
-
 
246
			public void onClick(ClickEvent event) {
-
 
247
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
248
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
-
 
249
			}
-
 
250
		};
-
 
251
		vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
-
 
252
		vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
-
 
253
 
-
 
254
		ClickHandler clicAjoutCommentaire = new ClickHandler() {
-
 
255
			@Override
-
 
256
			public void onClick(ClickEvent event) {
-
 
257
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
-
 
258
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
259
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
-
 
260
			}
-
 
261
		};
257
		});
262
		vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
258
		
263
		vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
259
		
-
 
260
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
264
 
261
			
265
		vue.getLienOuvrages().addClickHandler(new ClickHandler() {
262
			@Override
266
			@Override
263
			public void onClick(ClickEvent event) {
267
			public void onClick(ClickEvent event) {
264
				Config config = new Config();
268
				Config config = new Config();
265
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
269
				Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
Line 266... Line 270...
266
			}
270
			}
267
		});
-
 
268
 
271
		});
269
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
272
 
270
		
273
		vue.getLienBonnier().addClickHandler(new ClickHandler() {
271
			@Override
274
			@Override
272
			public void onClick(ClickEvent event) {
275
			public void onClick(ClickEvent event) {
273
				Config config = new Config();
276
				Config config = new Config();
Line 274... Line 277...
274
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
277
				Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
275
			}
-
 
276
		});
278
			}
277
		
279
		});
278
		vue.getLienCles().addClickHandler(new ClickHandler() {
280
		
279
			
281
		vue.getLienCles().addClickHandler(new ClickHandler() {
280
			@Override
282
			@Override
281
			public void onClick(ClickEvent event) {
283
			public void onClick(ClickEvent event) {
Line 282... Line 284...
282
				Config config = new Config();
284
				Config config = new Config();
283
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
-
 
284
			}
285
				Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
285
		});
286
			}
286
		
287
		});
287
		vue.getLienEflore().addClickHandler(new ClickHandler() {
288
		
288
			
289
		vue.getLienEflore().addClickHandler(new ClickHandler() {
289
			@Override
290
			@Override
Line 290... Line 291...
290
			public void onClick(ClickEvent event) {
291
			public void onClick(ClickEvent event) {
291
				Config config = new Config();
-
 
292
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
292
				Config config = new Config();
293
			}
293
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
294
		});
294
			}
295
		
295
		});
296
		vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() {
296
		
297
			
297
		vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() {
298
			@Override
298
			@Override
-
 
299
			public void onClick(ClickEvent event) {
-
 
300
				if (Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) {
-
 
301
					validerPropositionPlusPopulaire();
-
 
302
				}
-
 
303
			}
-
 
304
		});
-
 
305
		
-
 
306
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
-
 
307
			@Override
-
 
308
			public void onClick(ClickEvent event) {
-
 
309
				GWT.log("Lancer evnt : EvenementDepublierObs");
-
 
310
				BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
-
 
311
			}
-
 
312
		});
-
 
313
		
-
 
314
		BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
-
 
315
			@Override
-
 
316
			public void onDepublicationObs(EvenementDepublierObs event) {
-
 
317
				GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
-
 
318
				if (event.getIdObs().equals(observation.getId())) {
299
			public void onClick(ClickEvent event) {
319
					if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
Line 300... Line 320...
300
				if(Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) {
320
						depublierObs();
301
					validerPropositionPlusPopulaire();
321
					}
302
				}
322
				}
Line 325... Line 345...
325
					}
345
					}
326
				});
346
				});
327
			}
347
			}
328
		});
348
		});
329
	}
349
	}
-
 
350
	
-
 
351
	private void depublierObs() {
-
 
352
		GWT.log("depublierObs :"+observation.getId());
-
 
353
		observationService.depublier(observation, new DepublicationObservationCallBack() {
-
 
354
			
-
 
355
			@Override
-
 
356
			public void surRetour(String depublicationOk) {
-
 
357
				GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
-
 
358
				if (depublicationOk.equals("OK")) {
-
 
359
					BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
-
 
360
				}
-
 
361
			}
-
 
362
		});
-
 
363
	}
330
}
364
}