Subversion Repositories eFlore/Applications.del

Rev

Rev 683 | Rev 882 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 683 Rev 690
1
package org.tela_botanica.del.client.composants.formulaires.formulaireproposition;
1
package org.tela_botanica.del.client.composants.formulaires.formulaireproposition;
2
 
2
 
3
import java.util.Date;
3
import java.util.Date;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxPresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxPresenteur;
7
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxVue;
7
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxVue;
8
 
8
 
9
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
10
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
10
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
11
import org.tela_botanica.del.client.config.Config;
11
import org.tela_botanica.del.client.config.Config;
12
import org.tela_botanica.del.client.modeles.Commentaire;
12
import org.tela_botanica.del.client.modeles.Commentaire;
-
 
13
import org.tela_botanica.del.client.modeles.Contributeur;
13
import org.tela_botanica.del.client.modeles.PropositionDetermination;
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
-
 
15
import org.tela_botanica.del.client.modeles.Utilisateur;
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
16
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
15
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
16
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
18
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
17
 
19
 
18
import com.google.gwt.event.dom.client.ClickEvent;
20
import com.google.gwt.event.dom.client.ClickEvent;
19
import com.google.gwt.event.dom.client.ClickHandler;
21
import com.google.gwt.event.dom.client.ClickHandler;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
22
import com.google.gwt.event.dom.client.HasClickHandlers;
21
import com.google.gwt.http.client.Response;
23
import com.google.gwt.http.client.Response;
22
import com.google.gwt.user.client.ui.HasText;
24
import com.google.gwt.user.client.ui.HasText;
23
import com.google.gwt.user.client.ui.HasWidgets;
25
import com.google.gwt.user.client.ui.HasWidgets;
24
import com.google.gwt.user.client.ui.IsWidget;
26
import com.google.gwt.user.client.ui.IsWidget;
25
 
27
 
26
public class FormulairePropositionPresenteur extends Presenteur {
28
public class FormulairePropositionPresenteur extends Presenteur {
27
	
29
	
28
	public interface Vue extends IsWidget {
30
	public interface Vue extends IsWidget {
-
 
31
		public HasText getObjetNom();
29
		public HasText getNomPrenom();
32
		public HasText getObjetPrenom();
30
		public HasWidgets getPropositionTaxon();
33
		public HasWidgets getPropositionTaxon();
31
		public HasText getCommentaires();
34
		public HasText getCommentaires();
32
		public HasClickHandlers getBoutonValidationProposition();
35
		public HasClickHandlers getBoutonValidationProposition();
33
		public void afficherStyleErreur(String styleErreur);
-
 
34
		public void supprimerStyleErreur(String styleErreur);
-
 
35
		public void afficherNomPrenomEtDesactiver(String nomPrenomFormate);
36
		public void afficherNomPrenomEtDesactiver(String nom, String prenom);
36
		public String getEmailAuteur();
37
		public String getCourriel();
37
		public void afficherEmailEtDesactiver(String courriel);
38
		public void afficherEmailEtDesactiver(String courriel);
-
 
39
		public String getNom();
-
 
40
		public String getPrenom();
-
 
41
		public void afficherStyleErreurNom(String styleErreur);
-
 
42
		public void supprimerStyleErreurNom(String styleErreur);
-
 
43
		public void afficherStyleErreurPrenom(String styleErreur);
-
 
44
		public void supprimerStyleErreurPrenom(String styleErreur);
38
	}
45
	}
39
	
46
	
40
	private Vue vue;
47
	private Vue vue;
41
	private Config config;
48
	private Config config;
42
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
49
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
43
		
50
		
44
	public FormulairePropositionPresenteur(Vue vue) {
51
	public FormulairePropositionPresenteur(Vue vue) {
45
		this.vue = vue;
52
		this.vue = vue;
46
		config = new Config();
53
		config = new Config();
47
		creerCompletionTaxons();
54
		creerCompletionTaxons();
48
		remplirAvecInfosUtilisateur();
55
		remplirAvecInfosUtilisateur();
49
	}
56
	}
50
	
57
	
51
	private void remplirAvecInfosUtilisateur() {
58
	private void remplirAvecInfosUtilisateur() {
52
		if(CacheClient.getInstance().getUtilisateur().estIdentifie()) {
59
		Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); 
-
 
60
		if(utilisateur.estIdentifie()) {
53
			vue.afficherNomPrenomEtDesactiver(CacheClient.getInstance().getUtilisateur().getNomPrenomFormate());
61
			vue.afficherNomPrenomEtDesactiver(utilisateur.getNom(), utilisateur.getPrenom());
54
			vue.afficherEmailEtDesactiver(CacheClient.getInstance().getUtilisateur().getCourriel());
62
			vue.afficherEmailEtDesactiver(utilisateur.getCourriel());
55
		}
63
		}
56
	}
64
	}
57
	
65
	
58
	private void creerCompletionTaxons() {
66
	private void creerCompletionTaxons() {
59
		String url = this.config.getUrl("nomSciCompletionService");
67
		String url = this.config.getUrl("nomSciCompletionService");
60
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) {	
68
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) {	
61
			protected String effectuerPreTraitementChaineRequete(String requete) {
69
			protected String effectuerPreTraitementChaineRequete(String requete) {
62
				return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete);
70
				return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete);
63
			}
71
			}
64
			
72
			
65
			@Override
73
			@Override
66
			protected String[] parserResultatRequete(Response response) {
74
			protected String[] parserResultatRequete(Response response) {
67
				return UtilitairesAutoCompletionService.parserRetourSimple(response);
75
				return UtilitairesAutoCompletionService.parserRetourSimple(response);
68
			}
76
			}
69
		};
77
		};
70
	}
78
	}
71
 
79
 
72
	public void go(HasWidgets composite) {
80
	public void go(HasWidgets composite) {
73
		autoCompletionNomTaxonsPresenteur.go(vue.getPropositionTaxon());
81
		autoCompletionNomTaxonsPresenteur.go(vue.getPropositionTaxon());
74
		composite.add(vue.asWidget());
82
		composite.add(vue.asWidget());
75
		gererEvenements();
83
		gererEvenements();
76
	}
84
	}
77
 
85
 
78
	protected void gererEvenements() {
86
	protected void gererEvenements() {
79
		vue.getBoutonValidationProposition().addClickHandler(new ClickHandler() {
87
		vue.getBoutonValidationProposition().addClickHandler(new ClickHandler() {
80
			@Override
88
			@Override
81
			public void onClick(ClickEvent event) {
89
			public void onClick(ClickEvent event) {
82
 
90
 
83
				if (!validerSaisieProposition()) {
91
				if (!validerSaisieProposition()) {
84
					return;
92
					return;
85
				} else {
93
				} else {
86
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
94
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
87
					CacheClient.getInstance().getObservationCourante().ajouterPropositionDetermination(propositionAjoutee);
95
					CacheClient.getInstance().getObservationCourante().ajouterPropositionDetermination(propositionAjoutee);
88
 
96
 
89
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
97
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
90
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
98
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
91
				}
99
				}
92
			}
100
			}
93
		});
101
		});
94
	}
102
	}
95
 
103
 
96
	private boolean validerSaisieProposition() {
104
	private boolean validerSaisieProposition() {
97
 
105
 
98
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
106
		ValidateurChampTexteNonNul validateurNom = new ValidateurChampTexteNonNul(vue.getObjetNom()) {
99
			@Override
107
			@Override
100
			public void afficherStyleErreur(String styleErreur) {
108
			public void afficherStyleErreur(String styleErreur) {
101
				vue.afficherStyleErreur(styleErreur);
109
				vue.afficherStyleErreurNom(styleErreur);
102
			}
110
			}
103
			
111
			
104
			@Override
112
			@Override
105
			public void supprimerStyleErreur(String styleErreur) {
113
			public void supprimerStyleErreur(String styleErreur) {
106
				vue.supprimerStyleErreur(styleErreur);
114
				vue.supprimerStyleErreurNom(styleErreur);
107
			}
115
			}
108
		};
116
		};
109
		boolean taxonSaisi = validateurTaxon.valider();
-
 
-
 
117
		
-
 
118
		ValidateurChampTexteNonNul validateurPrenom = new ValidateurChampTexteNonNul(vue.getObjetPrenom()) {
-
 
119
			@Override
-
 
120
			public void afficherStyleErreur(String styleErreur) {
-
 
121
				vue.afficherStyleErreurPrenom(styleErreur);
-
 
122
			}
-
 
123
			
-
 
124
			@Override
-
 
125
			public void supprimerStyleErreur(String styleErreur) {
-
 
126
				vue.supprimerStyleErreurPrenom(styleErreur);
-
 
127
			}
-
 
128
		};
-
 
129
		
-
 
130
		boolean nomSaisi = validateurNom.valider();
-
 
131
		boolean prenomSaisi = validateurPrenom.valider();
110
 
132
 
111
		return taxonSaisi;
133
		return nomSaisi && prenomSaisi;
112
	}
134
	}
113
 
135
 
114
	private PropositionDetermination collecterValeursSaisieProposition() {
136
	private PropositionDetermination collecterValeursSaisieProposition() {
115
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
137
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
116
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
138
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
-
 
139
 
-
 
140
		Contributeur contributeur = new Contributeur(vue.getNom(), vue.getPrenom(), vue.getCourriel());
117
 
141
		propositionAjoutee.setContributeur(contributeur);
-
 
142
		propositionAjoutee.setDate(new Date());
-
 
143
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
118
		String auteur = vue.getNomPrenom().getText();
144
		
119
		if (vue.getCommentaires().getText() != "") {
145
		if (vue.getCommentaires().getText() != "") {
120
			String contenuCommentaire = vue.getCommentaires().getText();
146
			String contenuCommentaire = vue.getCommentaires().getText();
121
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
147
			Commentaire comm = new Commentaire(contributeur, new Date(), contenuCommentaire);
122
			propositionAjoutee.ajouterCommentaire(comm);
148
			propositionAjoutee.ajouterCommentaire(comm);
123
		}
149
		}
124
		
-
 
125
		String emailAuteur = vue.getEmailAuteur();
-
 
126
		propositionAjoutee.setAuteur(auteur);
-
 
127
		propositionAjoutee.setEmailAuteur(emailAuteur);
-
 
128
		propositionAjoutee.setDate(new Date());
-
 
129
 
-
 
130
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
-
 
131
 
150
 
132
		return propositionAjoutee;
151
		return propositionAjoutee;
133
	}
152
	}
134
}
153
}