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); |