/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationPresenteur.java |
---|
6,8 → 6,7 |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
17,32 → 16,45 |
public interface Vue extends IsWidget { |
public void afficherVotes(PropositionDetermination propositionDetermination); |
void ajouterVote(VoteDetermination vote); |
void stopChargement(); |
void startChargement(); |
public void afficherAucuneDonnees(); |
} |
private Vue vue; |
public DetailListeVotesDeterminationPresenteur(Vue vue) { |
this.vue = vue; |
} |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
public void afficherVotes(final PropositionDetermination propositionDetermination) { |
vue.startChargement(); |
VoteDeterminationServiceConcret voteService = new VoteDeterminationServiceConcret(); |
voteService.consulterVotesPourPropositionDetermination(propositionDetermination, new VoteDeterminationCallback() { |
voteService.consulterVotesPourPropositionDetermination(propositionDetermination, new ListeVotesDeterminationCallback() { |
@Override |
public void surRetour(String messageRetour) { |
HashMap<String, VoteDetermination> votesComplets = UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination); |
if(votesComplets != null) { |
propositionDetermination.setVotesDeterminations(UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination)); |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.stopChargement(); |
} |
@Override |
public void surRetour(HashMap<String, VoteDetermination> votesComplets) { |
if (votesComplets != null && votesComplets.size() > 0) { |
for (VoteDetermination voteDetermination : votesComplets.values()) { |
voteDetermination.setPropositionDetermination(propositionDetermination); |
} |
propositionDetermination.setVotesDeterminations(votesComplets); |
vue.afficherVotes(propositionDetermination); |
vue.stopChargement(); |
} else { |
49,19 → 61,12 |
vue.afficherAucuneDonnees(); |
vue.stopChargement(); |
} |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.stopChargement(); |
} |
}); |
} |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |
} |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVotePresenteur.java |
---|
1,7 → 1,6 |
package org.tela_botanica.del.client.composants.votes.moyennevotes; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
10,10 → 9,10 |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
22,32 → 21,45 |
public interface Vue extends IsWidget { |
public HasClickHandlers getBoutonVoter(); |
public HasClickHandlers getBoutonAnnuler(); |
public HasText getNbVotes(); |
public HasClickHandlers getVotes(); |
public int getValeurVote(); |
public void afficherBoutonVoter(); |
public void afficherBoutonAnnuler(); |
public void masquerBoutonVoter(); |
public void masquerBoutonAnnuler(); |
public void afficherNbVotes(); |
public void masquerNbVotes(); |
public void masquerNbVotes(); |
public void reinitialiserVotes(); |
public void rafraichir(int moyenneVote, int nbVotes); |
public void ajouterAuParent(HasWidgets composite); |
} |
private Vue vue; |
private Protocole protocole; |
private Image image; |
private int valeurVoteDefaut = -1; |
private int valeurVoteUtilisateur = -1; |
private int valeurVoteTotal = 0; |
//TODO: on devrait passer un conteneur qui permet d'accéder à ces services |
// TODO: on devrait passer un conteneur qui permet d'accéder à ces services |
private VoteProtocoleService voteProtocoleService = new VoteProtocoleServiceConcret(); |
public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue) { |
this.vue = vue; |
this.protocole = protocole; |
59,7 → 71,7 |
gererEvenements(); |
rafraichirVue(); |
} |
public void gererEvenements() { |
vue.getVotes().addClickHandler(new ClickHandler() { |
@Override |
70,7 → 82,7 |
vue.masquerNbVotes(); |
} |
}); |
vue.getBoutonAnnuler().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
81,7 → 93,7 |
vue.reinitialiserVotes(); |
} |
}); |
vue.getBoutonVoter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
93,13 → 105,13 |
} |
}); |
} |
public void setValeurVoteUtilisateur(int valeurVoteUtilisateur) { |
this.valeurVoteUtilisateur = valeurVoteUtilisateur; |
} |
public void enregistrerVote() { |
final VoteProtocole voteProtocole = new VoteProtocole(); |
final VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocole(this.protocole); |
voteProtocole.setVote(valeurVoteUtilisateur); |
String idContributeur = CacheClient.getInstance().getUtilisateur().getId(); |
107,26 → 119,23 |
// TODO: Mettre un message de chargement pendant l'envoi du vote ? |
// C'est très rapide mais bon |
VoteProtocoleCallback vpc = new VoteProtocoleCallback() { |
@Override |
public void surRetour(String messageRetour) { |
//TODO: voir si l'on affiche un message en cas de succès ? |
public void surRetour(Void objetRetour) { |
// TODO: voir si l'on affiche un message en cas de succès ? |
image.ajouterVoteProtocole(voteProtocole); |
rafraichirVue(); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
if(image.utilisateurAVotePourProtocole(this.protocole.getId()+"", idContributeur)) { |
if (image.utilisateurAVotePourProtocole(this.protocole.getId() + "", idContributeur)) { |
voteProtocoleService.modifierVote(image.getIdImage(), voteProtocole, vpc); |
} else { |
voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole, vpc); |
} |
} |
public int getValeurVoteTotal() { |
return valeurVoteTotal; |
} |
134,26 → 143,26 |
public IsWidget getVue() { |
return vue; |
} |
private void rafraichirVue() { |
valeurVoteTotal = calculerMoyenneVotes(); |
vue.rafraichir(valeurVoteTotal, image.getVotesProtocoles(protocole.getId()).size()); |
} |
public int calculerMoyenneVotes() { |
double valeurVote = 0; |
int nbVote = 0; |
for (Iterator<String> iterator = image.getVotesProtocoles(protocole.getId()).keySet().iterator(); iterator.hasNext();) { |
VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(iterator.next()); |
valeurVote += (double)imageCelValidationData.getVote()/5; |
valeurVote += (double) imageCelValidationData.getVote() / 5; |
nbVote++; |
} |
if (nbVote > 0) { |
valeurVote /= nbVote; |
valeurVote *= 5; |
} |
return (int)Math.round(valeurVote); |
return (int) Math.round(valeurVote); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/barrerepartition/BarreRepartitionVotePresenteur.java |
---|
7,11 → 7,10 |
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.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationService; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
21,29 → 20,36 |
import com.google.gwt.user.client.ui.IsWidget; |
public class BarreRepartitionVotePresenteur { |
public interface Vue extends IsWidget { |
public void afficherVotes(int pourcentage, String NomTaxon); |
public HasClickHandlers getBoutonOui(); |
public HasClickHandlers getBoutonNon(); |
public void desactiverBoutons(); |
public void activerBoutons(); |
public void setVoteOuiEffectue(); |
public void setVoteNonEffectue(); |
public void afficherVotePrisEnCompte(boolean b); |
} |
private Vue vue; |
private MoyenneVote moyenneVote; |
// TODO: classe conteneur qui est passé en paramètre au constructeur |
private VoteDeterminationService voteDeterminationService = new VoteDeterminationServiceConcret(); |
public BarreRepartitionVotePresenteur(Vue vue) { |
this.vue = vue; |
gererEvenements(); |
} |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
51,43 → 57,49 |
public void afficherVotes(MoyenneVote moyenneVote) { |
this.moyenneVote = moyenneVote; |
int score = moyenneVote.getScore(); |
String intitule =moyenneVote.getIntituleAssocie(); |
String intitule = moyenneVote.getIntituleAssocie(); |
vue.afficherVotes(score, intitule); |
} |
public Vue getBarreRepartitionVoteVue() { |
return vue; |
} |
public MoyenneVote getMoyenneVote() { |
return moyenneVote; |
} |
public void gererEvenements() { |
vue.getBoutonOui().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(true); |
vue.afficherVotePrisEnCompte(true); |
} |
} |
}); |
vue.getBoutonNon().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(false); |
vue.afficherVotePrisEnCompte(false); |
} |
} |
}); |
} |
private void surVoteDetermination(final VoteDetermination vd) { |
if(vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) { |
VoteDeterminationCallback vdc = new VoteDeterminationCallback() { |
if (vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) { |
AjoutVoteDeterminationCallback vdc = new AjoutVoteDeterminationCallback() { |
@Override |
public void surRetour(String messageRetour) { |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.activerBoutons(); |
} |
@Override |
public void surRetour(Void objetRetour) { |
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd); |
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee()); |
afficherVotes(moyenneVote); |
95,34 → 107,28 |
// l'évènement n'est lancé que si le vote est validé |
BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd)); |
} |
}; |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.activerBoutons(); |
} |
}; |
if(moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) { |
if (moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) { |
voteDeterminationService.modifierVote(vd, vdc); |
} else { |
voteDeterminationService.ajouterVote(vd, vdc); |
} |
} |
} |
} |
public void voter(boolean oui) { |
VoteDetermination vd = new VoteDetermination(); |
vd.setPropositionDetermination(moyenneVote.getPropositionAssociee()); |
vd.setContributeur(CacheClient.getInstance().getUtilisateur().getId()); |
vd.setDate(new Date()); |
int valeurVote = oui ? 1 : 0; |
vd.setVote(valeurVote); |
vd.setId(CacheClient.getInstance().getUtilisateur().getId()); |
if(oui) { |
if (oui) { |
vue.setVoteOuiEffectue(); |
} else { |
vue.setVoteNonEffectue(); |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.java |
---|
15,6 → 15,13 |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentaireVue extends Composite implements DetailCommentairePresenteur.Vue { |
private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class); |
35,6 → 42,9 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
/** |
* Affiche les commentaires associées à une proposition de determination |
*/ |
@Override |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) { |
50,6 → 60,10 |
creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires()); |
} |
/** |
* Affiche une liste de commentaires recursivement |
* @param commentaires |
*/ |
private void creerListeCommentaireRecursive(List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
60,6 → 74,10 |
} |
} |
/** |
* Affiche un commentaire |
* @param commentaire |
*/ |
private void chargerCommentaire(Commentaire commentaire) { |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setHTML(ligne, 1, commentaire.getAuteur()); |
67,6 → 85,9 |
htmlTableau.setHTML(ligne, 3, commentaire.getDate() + ""); |
} |
/** |
* Affiche les en-têtes du tableau de commentaires |
*/ |
private void creerEntetes() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().commentaire()); |
73,6 → 94,9 |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().date()); |
} |
/** |
* Affiche un icone de début de chargement |
*/ |
@Override |
public void startChargement() { |
panneauChargement.setHeight((this.getOffsetHeight() / 2) + "px"); |
80,11 → 104,17 |
panneauChargement.setVisible(true); |
} |
/** |
* Cache l'icone de début de chargement |
*/ |
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
/** |
* Affiche un message indiquant qu'il n'y a aucun commentaire à présenter |
*/ |
@Override |
public void afficherAucuneDonnees() { |
aucuneDonnees.setVisible(true); |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentairePresenteur.java |
---|
5,55 → 5,96 |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentairePresenteur extends Presenteur { |
/** |
* Interface de la vue correspondante |
* |
* @author LIENS |
* |
*/ |
public interface Vue extends IsWidget { |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination); |
void stopChargement(); |
public void afficherAucuneDonnees(); |
void startChargement(); |
public void stopChargement(); |
public void afficherAucuneDonnees(); |
public void startChargement(); |
} |
// La vue correspondante |
private Vue vue; |
// La proposition de determination |
private PropositionDetermination propositionDetermination; |
/** |
* Constructeur |
* |
* @param vue |
* @param propositionDetermination |
*/ |
public DetailCommentairePresenteur(Vue vue, PropositionDetermination propositionDetermination) { |
this.vue = vue; |
this.propositionDetermination = propositionDetermination; |
} |
/** |
* Declenchement du présenteur |
*/ |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
/** |
* Affichage des commentaires |
*/ |
public void afficherCommentaires() { |
// affichage de l'icone de chargement |
vue.startChargement(); |
CommentaireServiceConcret commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new CommentaireCallback() { |
// Appel du service |
CommentaireService commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() { |
@Override |
public void surRetour(String messageRetour) { |
List<Commentaire> commentaires = UtilitairesServiceResultat.parserCommentaires(JSONParser.parseStrict(messageRetour).isObject().get("resultats").isObject(), propositionDetermination.getObservation()); |
public void surRetour(List<Commentaire> commentaires) { |
propositionDetermination.setListeCommentaires(commentaires); |
int nbCommentaires = propositionDetermination.getTotalCommentaires(); |
if (nbCommentaires > 0) { |
// s'il existe des commentaires ils sont affichés |
if (propositionDetermination.getTotalCommentaires() > 0) { |
// affichage des commentaires associés à la proposition dans |
// la vue |
vue.afficherCommentairesProposition(propositionDetermination); |
// supression de l'icone de chargement |
vue.stopChargement(); |
} else { |
// affichage d'un message precisant qu'il n'y a pas de |
// commentaires |
vue.afficherAucuneDonnees(); |
// supression de l'icone de chargement |
vue.stopChargement(); |
} |
67,6 → 108,9 |
}); |
} |
/** |
* Gestion des evenements du presenteur |
*/ |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulairecommentaire/FormulaireCommentairePresenteur.java |
---|
14,9 → 14,7 |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback.ModeRequete; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
38,15 → 36,15 |
public interface Vue extends IsWidget { |
public HasText getNomObjet(); |
public HasText getPrenomObjet(); |
public String getNom(); |
public String getPrenom(); |
public String getCourriel(); |
public abstract HasText getCommentaire(); |
public abstract HasClickHandlers getBoutonValidationCommentaire(); |
54,7 → 52,7 |
public void afficherStyleErreurNom(String styleErreur); |
public void supprimerStyleErreurNom(String styleErreur); |
public void afficherStyleErreurPrenom(String styleErreur); |
public void supprimerStyleErreurPrenom(String styleErreur); |
62,7 → 60,7 |
public void afficherStyleErreurCommentaire(String styleErreur); |
public void supprimerStyleErreurCommentaire(String styleErreur); |
void afficherNomPrenomEtDesactiver(String nom, String prenom, String courriel); |
} |
106,18 → 104,18 |
} |
}); |
} |
public void surValidationCommentaire() { |
String texteCommentaire = vue.getCommentaire().getText(); |
String idUtilisateur = null; |
if(CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
if (CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
idUtilisateur = CacheClient.getInstance().getUtilisateur().getId(); |
} |
Contributeur contributeur = new Contributeur(idUtilisateur, vue.getNom(), vue.getPrenom(), vue.getCourriel()); |
final Commentaire commentaire = new Commentaire(contributeur, new Date(), texteCommentaire); |
if (observation != null) { |
commentaire.setObservation(observation); |
commentaire.setParent(null); |
125,12 → 123,12 |
commentaire.setObservation(CacheClient.getInstance().getObservationCourante()); |
commentaire.setParent(possesseurDeCommentaires); |
} |
commentaireService.ajouterCommentaire(commentaire, new CommentaireCallback(ModeRequete.AJOUT) { |
commentaireService.ajouterCommentaire(commentaire, new AjoutCommentaireCallback() { |
@Override |
public void surRetour(String messageRetour) { |
commentaire.setId(UtilitairesServiceResultat.convertirEtParserRetourAjoutCommentaire(messageRetour)); |
public void surRetour(String objetRetour) { |
commentaire.setId(objetRetour); |
if (observation != null) { |
observation.getInterventionsForum().add(commentaire); |
} else if (possesseurDeCommentaires != null) { |
138,7 → 136,7 |
} |
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire)); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/FormulaireIdentificationPresenteur.java |
---|
1,11 → 1,10 |
package org.tela_botanica.del.client.composants.formulaires.identification; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.services.rest.UtilisateurService; |
import org.tela_botanica.del.client.services.rest.UtilisateurServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
18,61 → 17,72 |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulaireIdentificationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void ajouterVue(HasWidgets composite); |
public HasClickHandlers getSeConnecter(); |
public HasClickHandlers getSeDeconnecter(); |
public void basculerAffichageFormulaire(); |
public void basculerModeConnecte(Utilisateur utilisateur); |
public HasClickHandlers getBoutonOK(); |
public HasText getLogin(); |
public HasText getMotdepasse(); |
public void afficherErreur(); |
public void masquerErreur(); |
public void viderFormulaire(); |
public void setErreur(String idTexte); |
public String getErreur(); |
public HasKeyPressHandlers getLoginHasKeyPressHandler(); |
public HasKeyPressHandlers getMotdepasseHasKeyPressHandler(); |
} |
private Vue vue; |
private Utilisateur utilisateur; |
private UtilisateurService utilisateurService; |
public FormulaireIdentificationPresenteur(Vue vue, UtilisateurService utilisateurService) { |
this.vue = vue; |
this.utilisateurService = utilisateurService; |
utilisateurService.obtenirUtilisateur(new UtilisateurCallback() { |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
rafraichir(); |
} |
public void surErreurUtilisateur(String message) { |
/*null*/ |
} |
}); |
gererEvenements(); |
} |
public void rafraichir() { |
utilisateur = CacheClient.getInstance().getUtilisateur(); |
utilisateur = CacheClient.getInstance().getUtilisateur(); |
vue.basculerModeConnecte(this.utilisateur); |
} |
public void gererEvenements() { |
vue.getSeConnecter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.basculerAffichageFormulaire(); |
} |
}); |
vue.getBoutonOK().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
79,22 → 89,22 |
surTentativeLogin(); |
} |
}); |
vue.getSeDeconnecter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
deconnecterUtilisateur(); |
deconnecterUtilisateur(); |
} |
}); |
vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree()); |
vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree()); |
} |
private void surTentativeLogin() { |
String login = vue.getLogin().getText(); |
String login = vue.getLogin().getText(); |
String motdepasse = vue.getMotdepasse().getText(); |
if (login.equals("") || motdepasse.equals("")) { |
gererErreur("saisirLogin"); |
} else { |
101,7 → 111,7 |
connecterUtilisateur(login, motdepasse); |
} |
} |
public KeyPressHandler creerGestionnaireEvenementToucheEntree() { |
return new KeyPressHandler() { |
public void onKeyPress(KeyPressEvent event) { |
111,17 → 121,23 |
} |
}; |
} |
public void gererErreur(String erreur) { |
vue.setErreur(erreur); |
vue.afficherErreur(); |
} |
public void connecterUtilisateur(String login, String motdepasse) { |
utilisateurService.connecterUtilisateur(login, motdepasse, new UtilisateurCallback() { |
public void surErreur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
if (utilisateur.estIdentifie()) { |
vue.masquerErreur(); |
128,31 → 144,27 |
rafraichir(); |
vue.basculerAffichageFormulaire(); |
vue.viderFormulaire(); |
} |
} |
} |
public void surErreurUtilisateur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
}); |
} |
public void deconnecterUtilisateur() { |
utilisateurService.deconnecterUtilisateur(new UtilisateurCallback() { |
public void surErreur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
rafraichir(); |
} |
public void surErreurUtilisateur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
}); |
} |
public void go(HasWidgets composite) { |
vue.ajouterVue(composite); |
} |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulaireproposition/FormulairePropositionPresenteur.java |
---|
5,11 → 5,9 |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxPresenteur; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.Contributeur; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
18,7 → 16,6 |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack.ModeRequete; |
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
26,35 → 23,47 |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulairePropositionPresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public HasText getObjetNom(); |
public HasText getObjetPrenom(); |
public HasWidgets getPropositionTaxon(); |
public HasText getCommentaires(); |
public HasClickHandlers getBoutonValidationProposition(); |
public void afficherNomPrenomEtDesactiver(String nom, String prenom); |
public String getCourriel(); |
public void afficherEmailEtDesactiver(String courriel); |
public String getNom(); |
public String getPrenom(); |
public void afficherStyleErreurNom(String styleErreur); |
public void supprimerStyleErreurNom(String styleErreur); |
public void afficherStyleErreurPrenom(String styleErreur); |
public void supprimerStyleErreurPrenom(String styleErreur); |
} |
private Vue vue; |
private Config config; |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
private PropositionDeterminationService propositionDeterminationService = new PropositionDeterminationServiceConcret(); |
public FormulairePropositionPresenteur(Vue vue) { |
this.vue = vue; |
config = new Config(); |
61,22 → 70,22 |
creerCompletionTaxons(); |
remplirAvecInfosUtilisateur(); |
} |
private void remplirAvecInfosUtilisateur() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
if(utilisateur.estIdentifie()) { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
if (utilisateur.estIdentifie()) { |
vue.afficherNomPrenomEtDesactiver(utilisateur.getNom(), utilisateur.getPrenom()); |
vue.afficherEmailEtDesactiver(utilisateur.getCourriel()); |
} |
} |
private void creerCompletionTaxons() { |
String url = this.config.getUrl("nomSciCompletionService"); |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) { |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) { |
protected String effectuerPreTraitementChaineRequete(String requete) { |
return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete); |
} |
@Override |
protected String[] parserResultatRequete(Response response) { |
return UtilitairesAutoCompletionService.parserRetourSimple(response); |
99,8 → 108,8 |
return; |
} else { |
final PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition(); |
propositionDeterminationService.ajouterProposition(propositionAjoutee, new PropositionDeterminationCallBack(ModeRequete.AJOUT) { |
propositionDeterminationService.ajouterProposition(propositionAjoutee, new PropositionDeterminationCallBack() { |
@Override |
public void surRetour(String messageRetour) { |
propositionAjoutee.setId(UtilitairesServiceResultat.convertirEtParserRetourAjoutCommentaire(messageRetour)); |
108,11 → 117,7 |
EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee); |
BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}); |
} |
} |
126,25 → 131,25 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreurNom(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreurNom(styleErreur); |
} |
}; |
ValidateurChampTexteNonNul validateurPrenom = new ValidateurChampTexteNonNul(vue.getObjetPrenom()) { |
@Override |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreurPrenom(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreurPrenom(styleErreur); |
} |
}; |
boolean nomSaisi = validateurNom.valider(); |
boolean prenomSaisi = validateurPrenom.valider(); |
154,9 → 159,9 |
private PropositionDetermination collecterValeursSaisieProposition() { |
PropositionDetermination propositionAjoutee = new PropositionDetermination(CacheClient.getInstance().getObservationCourante()); |
propositionAjoutee.setId(CacheClient.getInstance().getObservationCourante().getId()); |
String idUtilisateur = null; |
if(CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
if (CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
idUtilisateur = CacheClient.getInstance().getUtilisateur().getId(); |
} |
164,7 → 169,7 |
propositionAjoutee.setContributeur(contributeur); |
propositionAjoutee.setDate(new Date()); |
propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur()); |
if (vue.getCommentaires().getText() != "") { |
String contenuCommentaire = vue.getCommentaires().getText(); |
propositionAjoutee.setCommentaire(contenuCommentaire); |