Subversion Repositories eFlore/Applications.del

Rev

Rev 453 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 453 Rev 500
1
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition;
1
package org.tela_botanica.del.client.vues.plateformedetermination.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.AutoCompletionComboBoxPresenteur;
6
import org.tela_botanica.del.client.composants.formulaires.AutoCompletionComboBoxPresenteur;
7
import org.tela_botanica.del.client.composants.formulaires.AutoCompletionComboBoxVue;
7
import org.tela_botanica.del.client.composants.formulaires.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.modeles.Commentaire;
11
import org.tela_botanica.del.client.modeles.Commentaire;
12
import org.tela_botanica.del.client.modeles.PropositionDetermination;
12
import org.tela_botanica.del.client.modeles.PropositionDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
14
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
14
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
15
import org.tela_botanica.del.client.services.UtilitairesAutoCompletionService;
15
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
16
 
16
 
17
import com.google.gwt.event.dom.client.ClickEvent;
17
import com.google.gwt.event.dom.client.ClickEvent;
18
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.event.dom.client.ClickHandler;
19
import com.google.gwt.event.dom.client.HasClickHandlers;
19
import com.google.gwt.event.dom.client.HasClickHandlers;
20
import com.google.gwt.http.client.Response;
20
import com.google.gwt.http.client.Response;
21
import com.google.gwt.user.client.ui.HasText;
21
import com.google.gwt.user.client.ui.HasText;
22
import com.google.gwt.user.client.ui.HasWidgets;
22
import com.google.gwt.user.client.ui.HasWidgets;
23
import com.google.gwt.user.client.ui.IsWidget;
23
import com.google.gwt.user.client.ui.IsWidget;
24
 
24
 
25
public class FormulairePropositionPresenteur extends Presenteur {
25
public class FormulairePropositionPresenteur extends Presenteur {
26
	
26
	
27
	public interface Vue extends IsWidget {
27
	public interface Vue extends IsWidget {
28
		public abstract HasText getNomPrenom();
28
		public abstract HasText getNomPrenom();
29
		public abstract HasWidgets getPropositionTaxon();
29
		public abstract HasWidgets getPropositionTaxon();
30
		public abstract HasText getCommentaires();
30
		public abstract HasText getCommentaires();
31
		public abstract HasClickHandlers getBoutonValidationProposition();
31
		public abstract HasClickHandlers getBoutonValidationProposition();
32
		public abstract void afficherStyleErreur(String styleErreur);
32
		public abstract void afficherStyleErreur(String styleErreur);
33
		public abstract void supprimerStyleErreur(String styleErreur);
33
		public abstract void supprimerStyleErreur(String styleErreur);
34
	}
34
	}
35
	private Vue vue;
35
	private Vue vue;
36
	
36
	
37
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
37
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
38
		
38
		
39
	public FormulairePropositionPresenteur(Vue vue) {
39
	public FormulairePropositionPresenteur(Vue vue) {
40
		this.vue = vue;
40
		this.vue = vue;
41
		
41
		
42
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), UtilitairesAutoCompletionService.urlServiceCompletionNomLocale) {	
42
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), UtilitairesAutoCompletionService.urlServiceCompletionNomLocale) {	
43
			
43
			
44
			protected String effectuerPreTraitementChaineRequete(String requete) {
44
			protected String effectuerPreTraitementChaineRequete(String requete) {
45
				return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete);
45
				return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete);
46
			}
46
			}
47
			
47
			
48
			@Override
48
			@Override
49
			protected String[] parserResultatRequete(Response response) {
49
			protected String[] parserResultatRequete(Response response) {
50
				return UtilitairesAutoCompletionService.parserRetourSimple(response);
50
				return UtilitairesAutoCompletionService.parserRetourSimple(response);
51
			}
51
			}
52
		};	
52
		};	
53
	}
53
	}
54
 
54
 
55
	public void go(HasWidgets composite) {
55
	public void go(HasWidgets composite) {
56
 
56
 
57
		autoCompletionNomTaxonsPresenteur.go(vue.getPropositionTaxon());
57
		autoCompletionNomTaxonsPresenteur.go(vue.getPropositionTaxon());
58
		composite.add(vue.asWidget());
58
		composite.add(vue.asWidget());
59
		gererEvenements();
59
		gererEvenements();
60
	}
60
	}
61
 
61
 
62
	protected void gererEvenements() {
62
	protected void gererEvenements() {
63
		vue.getBoutonValidationProposition().addClickHandler(new ClickHandler() {
63
		vue.getBoutonValidationProposition().addClickHandler(new ClickHandler() {
64
 
64
 
65
			@Override
65
			@Override
66
			public void onClick(ClickEvent event) {
66
			public void onClick(ClickEvent event) {
67
 
67
 
68
				if (!validerSaisieProposition()) {
68
				if (!validerSaisieProposition()) {
69
					return;
69
					return;
70
				} else {
70
				} else {
71
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
71
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
72
					CacheClient.getInstance().getObservationCourante().addImageCelValidationData(propositionAjoutee);
72
					CacheClient.getInstance().getObservationCourante().addImageCelValidationData(propositionAjoutee);
73
 
73
 
74
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
74
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
75
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
75
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
76
				}
76
				}
77
			}
77
			}
78
		});
78
		});
79
	}
79
	}
80
 
80
 
81
	private boolean validerSaisieProposition() {
81
	private boolean validerSaisieProposition() {
82
 
82
 
83
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
83
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
84
			@Override
84
			@Override
85
			public void afficherStyleErreur(String styleErreur) {
85
			public void afficherStyleErreur(String styleErreur) {
86
				vue.afficherStyleErreur(styleErreur);
86
				vue.afficherStyleErreur(styleErreur);
87
			}
87
			}
88
			
88
			
89
			@Override
89
			@Override
90
			public void supprimerStyleErreur(String styleErreur) {
90
			public void supprimerStyleErreur(String styleErreur) {
91
				vue.supprimerStyleErreur(styleErreur);
91
				vue.supprimerStyleErreur(styleErreur);
92
			}
92
			}
93
		};
93
		};
94
		boolean taxonSaisi = validateurTaxon.valider();
94
		boolean taxonSaisi = validateurTaxon.valider();
95
 
95
 
96
		return taxonSaisi;
96
		return taxonSaisi;
97
	}
97
	}
98
 
98
 
99
	private PropositionDetermination collecterValeursSaisieProposition() {
99
	private PropositionDetermination collecterValeursSaisieProposition() {
100
 
100
 
101
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
101
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
102
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
102
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
103
 
103
 
104
		String auteur = vue.getNomPrenom().getText();
104
		String auteur = vue.getNomPrenom().getText();
105
		if (vue.getCommentaires().getText() != "") {
105
		if (vue.getCommentaires().getText() != "") {
106
			String contenuCommentaire = vue.getCommentaires().getText();
106
			String contenuCommentaire = vue.getCommentaires().getText();
107
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
107
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
108
			propositionAjoutee.ajouterCommentaire(comm);
108
			propositionAjoutee.ajouterCommentaire(comm);
109
		}
109
		}
110
		propositionAjoutee.setContributeur(auteur);
110
		propositionAjoutee.setContributeur(auteur);
111
		propositionAjoutee.setDate(new Date());
111
		propositionAjoutee.setDate(new Date());
112
 
112
 
113
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
113
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
114
 
114
 
115
		return propositionAjoutee;
115
		return propositionAjoutee;
116
	}
116
	}
117
}
117
}