37,6 → 37,8 |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs; |
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs; |
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.EvenementValidationPropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.GestionnaireEvenementValidationPropositionDetermination; |
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; |
69,19 → 71,19 |
* Vue de l'interface de détermination |
* */ |
public interface Vue extends IsWidget { |
public Panel getForum(); |
public HasWidgets getForum(); |
|
public Panel getDetailImageObservation(); |
public HasWidgets getDetailImageObservation(); |
|
public Panel getFormulaireRechercheEflore(); |
public HasWidgets getFormulaireRechercheEflore(); |
|
public Button getBoutonAjoutProposition(); |
public HasClickHandlers getBoutonAjoutProposition(); |
|
public Button getBoutonAjoutCommentaire(); |
public HasClickHandlers getBoutonAjoutCommentaire(); |
|
public Button getBoutonAjoutPropositionBas(); |
public HasClickHandlers getBoutonAjoutPropositionBas(); |
|
public Button getBoutonAjoutCommentaireBas(); |
public HasClickHandlers getBoutonAjoutCommentaireBas(); |
|
public HasClickHandlers getBoutonDepublierObs(); |
|
99,14 → 101,10 |
|
public HasWidgets getZoneRss(); |
|
HasClickHandlers getBoutonValidationTaxon(); |
|
void cacherBoutonValidationTaxon(); |
|
void afficherBoutonValidationTaxon(); |
|
public void viderMetadonnees(); |
|
public void viderForum(); |
|
void afficherZoneActionsObs(); |
|
void cacherZoneActionsObs(); |
176,41 → 174,12 |
if (votesOrdonnes.size() > 0) { |
nomTaxon = votesOrdonnes.get(0).getIntituleAssocie(); |
propositionPlusPopulaire = votesOrdonnes.get(0).getPropositionAssociee(); |
|
if (doitAfficherBoutonValidation(votesOrdonnes)) { |
vue.afficherBoutonValidationTaxon(); |
} else { |
vue.cacherBoutonValidationTaxon(); |
} |
} |
vue.afficherNomTaxonProbable(nomTaxon); |
} |
} |
|
private boolean doitAfficherBoutonValidation(List<MoyenneVote> votesOrdonnes) { |
boolean estPropositionRetenue = votesOrdonnes.get(0).getPropositionAssociee().estPropositionRetenue(); |
String numNomProp = votesOrdonnes.get(0).getPropositionAssociee().getNumNomenclatural(); |
String referentielProp = votesOrdonnes.get(0).getPropositionAssociee().getReferentiel(); |
|
boolean aUnNumNom = (numNomProp != null && !numNomProp.trim().equals("") && !numNomProp.trim().equals("0")); |
boolean aUnReferentiel = (referentielProp != null && !referentielProp.trim().equals("") && !referentielProp.trim().equals("0")); |
|
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
boolean estAuteurObservation = false; |
if(utilisateur != null) { |
estAuteurObservation = utilisateur.estIdentifie() && utilisateur.getId().equals(cache.getObservationCourante().getIdAuteur()); |
} |
boolean peutValiderObservation = ModerationUtils.utilisateurPeutValiderObservation(CacheClient.getInstance().getUtilisateur(), observation); |
return (peutValiderObservation || estAuteurObservation) && aUnReferentiel && aUnNumNom && !estPropositionRetenue; |
} |
|
public void gererEvenements() { |
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() { |
@Override |
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) { |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
}; |
}); |
|
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
301,15 → 270,6 |
} |
}); |
|
vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if (Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) { |
validerPropositionPlusPopulaire(); |
} |
} |
}); |
|
vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
334,16 → 294,14 |
@Override |
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) { |
afficherZoneActionsObs(); |
//rechargerForum(); |
} |
}); |
} |
|
private void validerPropositionPlusPopulaire() { |
PropositionDeterminationServiceConcret propositionService = new PropositionDeterminationServiceConcret(); |
propositionPlusPopulaire.setValideePar(CacheClient.getInstance().getUtilisateur().getId()); |
propositionService.validerProposition(propositionPlusPopulaire, new ValidationPropositionCallback() { |
|
BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() { |
|
@Override |
public void surRetour(String objetRetour) { |
public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) { |
String observationId = URLUtils.getURLSpecialParameterValue(); |
observationService.getObservation(observationId, new ObservationsCallback() { |
|
351,7 → 309,7 |
public void surRetour(ObservationServiceResultat objetRetour) { |
vue.viderMetadonnees(); |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees()); |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
rechargerForum(); |
} |
|
@Override |
358,13 → 316,18 |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}); |
}); |
} |
}); |
} |
|
private void rechargerForum() { |
vue.viderForum(); |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
} |
|
private void depublierObs() { |
if (avoirUtilisateurAdmin()) { |
if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) { |
GWT.log("depublierObs :"+observation.getId()); |
observationService.depublier(observation, new DepublicationObservationCallBack() { |
|
380,19 → 343,10 |
} |
|
private void afficherZoneActionsObs() { |
if (avoirUtilisateurAdmin()) { |
if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) { |
vue.afficherZoneActionsObs(); |
} else { |
vue.cacherZoneActionsObs(); |
} |
} |
|
private boolean avoirUtilisateurAdmin() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
boolean etreAdmin = false; |
if (utilisateur != null) { |
etreAdmin = utilisateur.estIdentifie() && utilisateur.etreAdmin(); |
} |
return etreAdmin; |
} |
} |