Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1777 Rev 1830
Line 35... Line 35...
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;
-
 
41
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.GestionnaireEvenementValidationPropositionDetermination;
40
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
42
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
41
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
43
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
42
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
44
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
43
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
45
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
44
import org.tela_botanica.del.client.services.rest.ObservationService;
46
import org.tela_botanica.del.client.services.rest.ObservationService;
Line 67... Line 69...
67
 
69
 
68
	/**
70
	/**
69
	 * Vue de l'interface de détermination
71
	 * Vue de l'interface de détermination
70
	 * */
72
	 * */
71
	public interface Vue extends IsWidget {
73
	public interface Vue extends IsWidget {
Line 72... Line 74...
72
		public Panel getForum();
74
		public HasWidgets getForum();
Line 73... Line 75...
73
 
75
 
Line 74... Line 76...
74
		public Panel getDetailImageObservation();
76
		public HasWidgets getDetailImageObservation();
Line 75... Line 77...
75
 
77
 
Line 76... Line 78...
76
		public Panel getFormulaireRechercheEflore();
78
		public HasWidgets getFormulaireRechercheEflore();
Line 77... Line 79...
77
 
79
 
Line 78... Line 80...
78
		public Button getBoutonAjoutProposition();
80
		public HasClickHandlers getBoutonAjoutProposition();
Line 79... Line 81...
79
 
81
 
Line 97... Line 99...
97
		
99
		
Line 98... Line 100...
98
		public HasClickHandlers getLienEflore();
100
		public HasClickHandlers getLienEflore();
Line 99... Line -...
99
	
-
 
100
		public HasWidgets getZoneRss();
-
 
101
 
-
 
102
		HasClickHandlers getBoutonValidationTaxon();
-
 
103
 
-
 
104
		void cacherBoutonValidationTaxon();
-
 
105
 
101
	
Line -... Line 102...
-
 
102
		public HasWidgets getZoneRss();
-
 
103
 
106
		void afficherBoutonValidationTaxon();
104
		public void viderMetadonnees();
Line 107... Line 105...
107
 
105
		
108
		public void viderMetadonnees();
106
		public void viderForum();
Line 174... Line 172...
174
			String nomTaxon = observation.getNomRetenuFormateReferentiel();
172
			String nomTaxon = observation.getNomRetenuFormateReferentiel();
175
			List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations());
173
			List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations());
176
			if (votesOrdonnes.size() > 0) {
174
			if (votesOrdonnes.size() > 0) {
177
				nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
175
				nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
178
				propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee();
176
				propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee();
179
				
-
 
180
				if (doitAfficherBoutonValidation(votesOrdonnes)) {
-
 
181
					vue.afficherBoutonValidationTaxon();
-
 
182
				} else {
-
 
183
					vue.cacherBoutonValidationTaxon();
-
 
184
				}
-
 
185
			}
177
			}
186
			vue.afficherNomTaxonProbable(nomTaxon);
178
			vue.afficherNomTaxonProbable(nomTaxon);
187
		}
179
		}
188
	}
180
	}
189
	
-
 
190
	private boolean doitAfficherBoutonValidation(List<MoyenneVote> votesOrdonnes) {		
-
 
191
		boolean estPropositionRetenue = votesOrdonnes.get(0).getPropositionAssociee().estPropositionRetenue();
-
 
192
		String numNomProp = votesOrdonnes.get(0).getPropositionAssociee().getNumNomenclatural();
-
 
193
		String referentielProp = votesOrdonnes.get(0).getPropositionAssociee().getReferentiel();
-
 
194
		
-
 
195
		boolean aUnNumNom = (numNomProp != null && !numNomProp.trim().equals("") && !numNomProp.trim().equals("0"));
-
 
196
		boolean aUnReferentiel = (referentielProp != null && !referentielProp.trim().equals("") && !referentielProp.trim().equals("0"));
-
 
197
		
-
 
198
		Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
-
 
199
		boolean estAuteurObservation = false;
-
 
200
		if(utilisateur != null) {
-
 
201
			estAuteurObservation = utilisateur.estIdentifie() && utilisateur.getId().equals(cache.getObservationCourante().getIdAuteur());
-
 
202
		}
-
 
203
		boolean peutValiderObservation = ModerationUtils.utilisateurPeutValiderObservation(CacheClient.getInstance().getUtilisateur(), observation);
-
 
204
		return (peutValiderObservation || estAuteurObservation) && aUnReferentiel && aUnNumNom && !estPropositionRetenue;
-
 
205
	}
-
 
Line 206... Line 181...
206
 
181
 
207
	public void gererEvenements() {
-
 
208
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
-
 
209
			@Override
-
 
210
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
-
 
211
				calculerEtAfficherVoteDeterminationPlusPopulaire();
-
 
212
			};
-
 
Line 213... Line 182...
213
		});
182
	public void gererEvenements() {
214
		
183
		
215
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
184
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
216
			@Override
185
			@Override
Line 299... Line 268...
299
				Config config = new Config();
268
				Config config = new Config();
300
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
269
				Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
301
			}
270
			}
302
		});
271
		});
Line 303... Line -...
303
		
-
 
304
		vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() {
-
 
305
			@Override
-
 
306
			public void onClick(ClickEvent event) {
-
 
307
				if (Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) {
-
 
308
					validerPropositionPlusPopulaire();
-
 
309
				}
-
 
310
			}
-
 
311
		});
-
 
312
		
272
		
313
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
273
		vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
314
			@Override
274
			@Override
315
			public void onClick(ClickEvent event) {
275
			public void onClick(ClickEvent event) {
316
				GWT.log("Lancer evnt : EvenementDepublierObs");
276
				GWT.log("Lancer evnt : EvenementDepublierObs");
Line 332... Line 292...
332
		
292
		
333
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
293
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
334
			@Override
294
			@Override
335
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
295
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
-
 
296
				afficherZoneActionsObs();
336
				afficherZoneActionsObs();
297
				//rechargerForum();
337
			}
298
			}
338
		});
299
		});
-
 
300
		
339
	}
301
		BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
340
	
-
 
341
	private void validerPropositionPlusPopulaire() {
-
 
342
		PropositionDeterminationServiceConcret propositionService = new PropositionDeterminationServiceConcret();
-
 
343
		propositionPlusPopulaire.setValideePar(CacheClient.getInstance().getUtilisateur().getId());
-
 
344
		propositionService.validerProposition(propositionPlusPopulaire, new ValidationPropositionCallback() {
302
			
345
			@Override
303
			@Override
346
			public void surRetour(String objetRetour) {
304
			public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
347
				String observationId = URLUtils.getURLSpecialParameterValue();
305
				String observationId = URLUtils.getURLSpecialParameterValue();
Line 348... Line 306...
348
				observationService.getObservation(observationId, new ObservationsCallback() {
306
				observationService.getObservation(observationId, new ObservationsCallback() {
349
 
307
 
350
					@Override
308
					@Override
351
					public void surRetour(ObservationServiceResultat objetRetour) {
309
					public void surRetour(ObservationServiceResultat objetRetour) {
352
						vue.viderMetadonnees();
310
						vue.viderMetadonnees();
353
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
311
						new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
Line 354... Line 312...
354
						calculerEtAfficherVoteDeterminationPlusPopulaire();
312
						rechargerForum();
355
					}
313
					}
356
 
314
 
357
					@Override
315
					@Override
358
					public void surErreur(String messageErreur) {
316
					public void surErreur(String messageErreur) {
359
						Window.alert(messageErreur);
317
						Window.alert(messageErreur);
360
					}
318
					}
361
				});
319
				});	
Line -... Line 320...
-
 
320
			}
-
 
321
		});
-
 
322
	}
-
 
323
	
-
 
324
	private void rechargerForum() {
362
			}
325
		vue.viderForum();
363
		});
326
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
364
	}
327
	}
365
	
328
	
Line 366... Line 329...
366
	private void depublierObs() {
329
	private void depublierObs() {
367
		if (avoirUtilisateurAdmin()) {
330
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
Line 378... Line 341...
378
			});
341
			});
379
		}
342
		}
380
	}
343
	}
Line 381... Line 344...
381
	
344
	
382
	private void afficherZoneActionsObs() {
345
	private void afficherZoneActionsObs() {
383
		if (avoirUtilisateurAdmin()) {
346
		if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
384
			vue.afficherZoneActionsObs();
347
			vue.afficherZoneActionsObs();
385
		} else {
348
		} else {
386
			vue.cacherZoneActionsObs();
349
			vue.cacherZoneActionsObs();
387
		}
350
		}
388
	}
-
 
389
	
-
 
390
	private boolean avoirUtilisateurAdmin() {
-
 
391
		Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
-
 
392
		boolean etreAdmin = false;
-
 
393
		if (utilisateur != null) {
-
 
394
			etreAdmin = utilisateur.estIdentifie() && utilisateur.etreAdmin();
-
 
395
		}
-
 
396
		return etreAdmin;
-
 
397
	}
351
	}