Subversion Repositories eFlore/Applications.del

Rev

Rev 851 | Rev 887 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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