20,11 → 20,14 |
import org.tela_botanica.del.client.composants.rss.RssVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
33,6 → 36,8 |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.EvenementValidationPictoflora; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
40,6 → 45,7 |
import org.tela_botanica.del.client.services.rest.ObservationService; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback; |
import org.tela_botanica.del.client.utils.URLUtils; |
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
import org.tela_botanica.del.client.composants.forum.ForumPresenteur; |
87,6 → 93,14 |
public HasClickHandlers getLienEflore(); |
|
public HasWidgets getZoneRss(); |
|
HasClickHandlers getBoutonValidationTaxon(); |
|
void cacherBoutonValidationTaxon(); |
|
void afficherBoutonValidationTaxon(); |
|
public void viderMetadonnees(); |
} |
|
private Vue vue; |
96,6 → 110,8 |
private ObservationService observationService; |
|
private CacheClient cache = CacheClient.getInstance(); |
|
private PropositionDetermination propositionPlusPopulaire; |
|
public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) { |
this.vue = vue; |
103,7 → 119,6 |
} |
|
public void go(final HasWidgets composite) { |
|
// TODO afficher une icone de chargement si le chargement devient trop |
// long |
// car tout l'écran est asynchrone ici |
154,6 → 169,16 |
if (votesOrdonnes.size() > 0) { |
nomTaxon = votesOrdonnes.get(0).getIntituleAssocie(); |
} |
|
propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee(); |
boolean estPropositionInitiale = votesOrdonnes.get(0).getPropositionAssociee().estPropositionInitiale(); |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
boolean estAuteurObservation = utilisateur.estIdentifie() && utilisateur.getId().equals(cache.getObservationCourante().getIdAuteur()); |
if(!estAuteurObservation || estPropositionInitiale || nomTaxon.equals(observation.getNomRetenu())) { |
vue.cacherBoutonValidationTaxon(); |
} else { |
vue.afficherBoutonValidationTaxon(); |
} |
|
vue.afficherNomTaxonProbable(nomTaxon); |
} |
252,5 → 277,39 |
Window.open(config.getUrl("eflore"), "eFlore", null); |
} |
}); |
|
vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
if(Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) { |
validerPropositionPlusPopulaire(); |
} |
} |
}); |
} |
|
private void validerPropositionPlusPopulaire() { |
PropositionDeterminationServiceConcret propositionService = new PropositionDeterminationServiceConcret(); |
propositionService.validerProposition(propositionPlusPopulaire, new ValidationPropositionCallback() { |
@Override |
public void surRetour(String objetRetour) { |
String observationId = URLUtils.getURLSpecialParameterValue(); |
observationService.getObservation(observationId, new ObservationsCallback() { |
|
@Override |
public void surRetour(ObservationServiceResultat objetRetour) { |
vue.viderMetadonnees(); |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees()); |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
} |
|
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}); |
} |
}); |
} |
} |