Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
46 aurelien 1
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition;
2
 
95 aurelien 3
import java.util.Date;
46 aurelien 4
 
85 benjamin 5
import org.tela_botanica.del.client.cache.CacheClient;
262 aurelien 6
import org.tela_botanica.del.client.composants.formulaires.AutoCompletionComboBoxPresenteur;
7
import org.tela_botanica.del.client.composants.formulaires.AutoCompletionComboBoxVue;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
228 aurelien 9
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
140 aurelien 10
import org.tela_botanica.del.client.modeles.Commentaire;
11
import org.tela_botanica.del.client.modeles.PropositionDetermination;
159 benjamin 12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
46 aurelien 14
 
77 aurelien 15
import com.google.gwt.event.dom.client.ClickEvent;
16
import com.google.gwt.event.dom.client.ClickHandler;
268 aurelien 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;
46 aurelien 21
import com.google.gwt.user.client.ui.HasWidgets;
22
 
262 aurelien 23
public class FormulairePropositionPresenteur extends Presenteur {
24
 
268 aurelien 25
	private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur;
26
	private String urlServiceCompletionNom = "http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/";
262 aurelien 27
 
28
	public FormulairePropositionPresenteur() {
29
		super(new FormulairePropositionVue());
268 aurelien 30
 
31
		autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(urlServiceCompletionNom) {
32
			@Override
33
			protected String[] parserResultatRequete(Response response) {
34
				return convertirReponseVersListeNom(response);
35
			}
36
		};
262 aurelien 37
	}
85 benjamin 38
 
46 aurelien 39
	public void go(HasWidgets composite) {
85 benjamin 40
 
268 aurelien 41
		autoCompletionNomTaxonsPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon());
262 aurelien 42
		composite.add((FormulairePropositionVue)getVue());
95 aurelien 43
		gererEvenements();
46 aurelien 44
	}
85 benjamin 45
 
262 aurelien 46
	protected void gererEvenements() {
47
		((FormulairePropositionVue)getVue()).getBoutonValidationProposition().addClickHandler(new ClickHandler() {
77 aurelien 48
 
49
			@Override
50
			public void onClick(ClickEvent event) {
234 gduche 51
 
52
				if (!validerSaisieProposition()) {
105 aurelien 53
					return;
77 aurelien 54
				} else {
140 aurelien 55
					PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition();
234 gduche 56
					CacheClient.getInstance().getObservationCourante().addImageCelValidationData(propositionAjoutee);
57
 
58
					EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee);
159 benjamin 59
					BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination);
77 aurelien 60
				}
85 benjamin 61
			}
77 aurelien 62
		});
63
	}
234 gduche 64
 
105 aurelien 65
	private boolean validerSaisieProposition() {
234 gduche 66
 
262 aurelien 67
		ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(((FormulairePropositionVue)getVue()).getNomPrenom());
228 aurelien 68
		boolean taxonSaisi = validateurTaxon.valider();
234 gduche 69
 
140 aurelien 70
		return taxonSaisi;
105 aurelien 71
	}
234 gduche 72
 
140 aurelien 73
	private PropositionDetermination collecterValeursSaisieProposition() {
234 gduche 74
 
140 aurelien 75
		PropositionDetermination propositionAjoutee = new PropositionDetermination();
148 benjamin 76
		propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage());
234 gduche 77
 
262 aurelien 78
		String auteur = ((FormulairePropositionVue)getVue()).getNomPrenom().getText();
79
		if (((FormulairePropositionVue)getVue()).getCommentaires().getText() != "") {
80
			String contenuCommentaire = ((FormulairePropositionVue)getVue()).getCommentaires().getText();
234 gduche 81
			Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
140 aurelien 82
			propositionAjoutee.ajouterCommentaire(comm);
83
		}
84
		propositionAjoutee.setContributeur(auteur);
105 aurelien 85
		propositionAjoutee.setDate(new Date());
234 gduche 86
 
268 aurelien 87
		propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
234 gduche 88
 
105 aurelien 89
		return propositionAjoutee;
90
	}
268 aurelien 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
	}
46 aurelien 108
}