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 |
}
|