Subversion Repositories eFlore/Applications.del

Rev

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

Rev 262 Rev 268
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
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
9
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
10
import org.tela_botanica.del.client.modeles.Commentaire;
10
import org.tela_botanica.del.client.modeles.Commentaire;
11
import org.tela_botanica.del.client.modeles.PropositionDetermination;
11
import org.tela_botanica.del.client.modeles.PropositionDetermination;
12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
13
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
14
 
14
 
15
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickEvent;
16
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.ClickHandler;
-
 
17
import com.google.gwt.http.client.Response;
-
 
18
import com.google.gwt.json.client.JSONArray;
-
 
19
import com.google.gwt.json.client.JSONParser;
-
 
20
import com.google.gwt.json.client.JSONValue;
17
import com.google.gwt.user.client.ui.HasWidgets;
21
import com.google.gwt.user.client.ui.HasWidgets;
18
 
22
 
19
public class FormulairePropositionPresenteur extends Presenteur {
23
public class FormulairePropositionPresenteur extends Presenteur {
20
	
24
	
-
 
25
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
21
	private AutoCompletionComboBoxPresenteur autoCompletionComboBoxPresenteur = new AutoCompletionComboBoxPresenteur();
26
	private String urlServiceCompletionNom = "http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/";	
22
	
27
	
23
	public FormulairePropositionPresenteur() {
28
	public FormulairePropositionPresenteur() {
24
		super(new FormulairePropositionVue());
29
		super(new FormulairePropositionVue());
-
 
30
		
-
 
31
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(urlServiceCompletionNom) {			
-
 
32
			@Override
-
 
33
			protected String[] parserResultatRequete(Response response) {
-
 
34
				return convertirReponseVersListeNom(response);
-
 
35
			}
-
 
36
		};	
25
	}
37
	}
26
 
38
 
27
	public void go(HasWidgets composite) {
39
	public void go(HasWidgets composite) {
28
 
40
 
29
		autoCompletionComboBoxPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon());
41
		autoCompletionNomTaxonsPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon());
30
		composite.add((FormulairePropositionVue)getVue());
42
		composite.add((FormulairePropositionVue)getVue());
31
		gererEvenements();
43
		gererEvenements();
32
	}
44
	}
33
 
45
 
34
	protected void gererEvenements() {
46
	protected void gererEvenements() {
35
		((FormulairePropositionVue)getVue()).getBoutonValidationProposition().addClickHandler(new ClickHandler() {
47
		((FormulairePropositionVue)getVue()).getBoutonValidationProposition().addClickHandler(new ClickHandler() {
36
 
48
 
37
			@Override
49
			@Override
38
			public void onClick(ClickEvent event) {
50
			public void onClick(ClickEvent event) {
39
 
51
 
40
				if (!validerSaisieProposition()) {
52
				if (!validerSaisieProposition()) {
41
					return;
53
					return;
42
				} else {
54
				} else {
43
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
55
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
44
					CacheClient.getInstance().getObservationCourante().addImageCelValidationData(propositionAjoutee);
56
					CacheClient.getInstance().getObservationCourante().addImageCelValidationData(propositionAjoutee);
45
 
57
 
46
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
58
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
47
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
59
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
48
				}
60
				}
49
			}
61
			}
50
		});
62
		});
51
	}
63
	}
52
 
64
 
53
	private boolean validerSaisieProposition() {
65
	private boolean validerSaisieProposition() {
54
 
66
 
55
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(((FormulairePropositionVue)getVue()).getNomPrenom());
67
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(((FormulairePropositionVue)getVue()).getNomPrenom());
56
		boolean taxonSaisi = validateurTaxon.valider();
68
		boolean taxonSaisi = validateurTaxon.valider();
57
 
69
 
58
		return taxonSaisi;
70
		return taxonSaisi;
59
	}
71
	}
60
 
72
 
61
	private PropositionDetermination collecterValeursSaisieProposition() {
73
	private PropositionDetermination collecterValeursSaisieProposition() {
62
 
74
 
63
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
75
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
64
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
76
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
65
 
77
 
66
		String auteur = ((FormulairePropositionVue)getVue()).getNomPrenom().getText();
78
		String auteur = ((FormulairePropositionVue)getVue()).getNomPrenom().getText();
67
		if (((FormulairePropositionVue)getVue()).getCommentaires().getText() != "") {
79
		if (((FormulairePropositionVue)getVue()).getCommentaires().getText() != "") {
68
			String contenuCommentaire = ((FormulairePropositionVue)getVue()).getCommentaires().getText();
80
			String contenuCommentaire = ((FormulairePropositionVue)getVue()).getCommentaires().getText();
69
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
81
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
70
			propositionAjoutee.ajouterCommentaire(comm);
82
			propositionAjoutee.ajouterCommentaire(comm);
71
		}
83
		}
72
		propositionAjoutee.setContributeur(auteur);
84
		propositionAjoutee.setContributeur(auteur);
73
		propositionAjoutee.setDate(new Date());
85
		propositionAjoutee.setDate(new Date());
74
 
86
 
75
		propositionAjoutee.setEspece(autoCompletionComboBoxPresenteur.getValeur());
87
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
76
 
88
 
77
		return propositionAjoutee;
89
		return propositionAjoutee;
78
	}
90
	}
-
 
91
	
-
 
92
	private String[] convertirReponseVersListeNom(Response response) {
-
 
93
		final JSONValue responseValue = JSONParser.parseStrict(response.getText());
-
 
94
		JSONArray noms;
-
 
95
		String[] valeurs = new String[0];
-
 
96
	
-
 
97
		if ((noms=responseValue.isArray()) != null) {
-
 
98
				
-
 
99
			final int taillemax = noms.size();	
-
 
100
			valeurs = new String[taillemax];
-
 
101
			for (int i = 0; i < taillemax; i++) {
-
 
102
				valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
-
 
103
			}
-
 
104
		}
-
 
105
		
-
 
106
		return valeurs;
-
 
107
	}
79
}
108
}