Subversion Repositories eFlore/Applications.del

Rev

Rev 314 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
166 gduche 1
package org.tela_botanica.del.client.vues.rechercheobservations;
2
 
3
import java.util.Iterator;
4
import java.util.List;
5
 
6
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
7
import org.tela_botanica.del.client.modeles.Observation;
183 gduche 8
import org.tela_botanica.del.client.modeles.PropositionDetermination;
166 gduche 9
 
200 gduche 10
import com.google.gwt.event.dom.client.ClickEvent;
11
import com.google.gwt.event.dom.client.ClickHandler;
309 aurelien 12
import com.google.gwt.event.dom.client.HasClickHandlers;
13
import com.google.gwt.user.client.ui.HasText;
166 gduche 14
import com.google.gwt.user.client.ui.HasWidgets;
309 aurelien 15
import com.google.gwt.user.client.ui.IsWidget;
166 gduche 16
 
17
public class ObservationPresenteur extends Presenteur {
309 aurelien 18
 
19
	public abstract interface Vue extends IsWidget {
316 aurelien 20
		public void ajouterPhoto(String url, String titre, String alText, ClickHandler GestionnaireClic);
309 aurelien 21
		public HasText getAuteur();
22
		public HasText getDate();
23
		public HasText getFamille();
24
		public HasText getLocalite();
25
		public HasText getMotsClefs();
26
		public HasText getNomRetenu();
27
		public HasText getNumNomenclatural();
28
		public HasClickHandlers getPhotoPrincipale();
29
		public HasWidgets getPhotos();
30
		public void setUrlImagePrincipale(String url);
31
		public void setTitreImagePrincipale(String titre);
32
		public void setAltTextImagePrincipale(String altText);
33
		public String getUrlImagePrincipale();
34
		public String getTitreImagePrincipale();
35
		public String getAltTextImagePrincipale();
36
		public void setTexteTableau(int ligne, int colonne, String texte);
37
	}
38
 
39
	private Vue vue;
166 gduche 40
 
41
	private Observation observation;
42
 
309 aurelien 43
	public ObservationPresenteur(Vue vue, Observation observation) {
166 gduche 44
		this.observation = observation;
314 gduche 45
		this.vue = vue;
166 gduche 46
		chargerObservation();
47
	}
48
 
49
	public void chargerObservation() {
314 gduche 50
		HasText auteur = vue.getAuteur();
51
		auteur.setText(observation.getAuteur());
309 aurelien 52
		vue.getDate().setText(observation.getDate());
53
		vue.getFamille().setText(observation.getFamille());
54
		vue.getLocalite().setText(observation.getLocalite());
166 gduche 55
 
56
		List<String> motsCles = observation.getMotsClefs();
57
		Iterator<String> itMotsCles = motsCles.iterator();
58
		String motsClesChaine = "";
59
		while (itMotsCles.hasNext()) {
60
			String motCle = itMotsCles.next();
61
			motsClesChaine += motCle;
62
			if (itMotsCles.hasNext()) {
63
				motsClesChaine += ", ";
64
			}
65
		}
309 aurelien 66
		vue.getMotsClefs().setText(motsClesChaine);
67
		vue.getNomRetenu().setText(observation.getNomRetenu());
68
		vue.getNumNomenclatural().setText(observation.getNumNomenclatural());
166 gduche 69
 
200 gduche 70
		List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages();
183 gduche 71
 
243 gduche 72
		if (images != null && images.size() > 0) {
73
			org.tela_botanica.del.client.modeles.Image imagePrincipale = images.get(0);
309 aurelien 74
			vue.setUrlImagePrincipale(imagePrincipale.getUrl());
75
			vue.setTitreImagePrincipale(imagePrincipale.getUrlFormat("L"));
76
			vue.setAltTextImagePrincipale(observation.getAuteur() + " - " + observation.getNomRetenu());
243 gduche 77
			images.remove(0);
78
		}
200 gduche 79
 
80
		int nbImagesAffichees = 0;
81
		for (org.tela_botanica.del.client.modeles.Image imageCourante : images) {
82
			nbImagesAffichees++;
83
			if (nbImagesAffichees < 5) {
316 aurelien 84
				ClickHandler gestionnaireClic = new ClickHandler() {
200 gduche 85
					public void onClick(ClickEvent event) {
316 aurelien 86
						IsWidget image = (IsWidget)event.getSource();
87
						ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
200 gduche 88
					}
316 aurelien 89
				};
90
				vue.ajouterPhoto(imageCourante.getUrlFormat("CRX2S"),
91
								 imageCourante.getUrlFormat("L"),
92
								 observation.getAuteur() + " - " + observation.getNomRetenu(),
93
								 gestionnaireClic);
200 gduche 94
			}
95
		}
96
 
183 gduche 97
		List<PropositionDetermination> propositions = observation.getPropositionsDetermination();
98
 
309 aurelien 99
		vue.setTexteTableau(0, 0, "Certitude");
100
		vue.setTexteTableau(0, 1, "Commentaires");
101
		vue.setTexteTableau(0, 2, "Nom");
102
		vue.setTexteTableau(0, 3, "Votez");
183 gduche 103
 
104
		int i = 0;
105
		for (PropositionDetermination proposition : propositions) {
106
			i++;
309 aurelien 107
			vue.setTexteTableau(i, 0, String.valueOf(proposition.getVotesDeterminations().size()));
200 gduche 108
			/*
109
			 * List<VoteDetermination> votes =
110
			 * proposition.getVotesDeterminations(); for (VoteDetermination vote
111
			 * : votes) { vote.getVote(); }
112
			 */
309 aurelien 113
			vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size()));
114
			vue.setTexteTableau(i, 2, proposition.getEspece());
183 gduche 115
		}
116
 
220 gduche 117
		gererEvenements();
183 gduche 118
		// vue.propositions.setText(ch);
166 gduche 119
	}
120
 
121
	public void go(HasWidgets composite) {
309 aurelien 122
		composite.add(vue.asWidget());
166 gduche 123
	}
124
 
220 gduche 125
	protected void gererEvenements() {
309 aurelien 126
		vue.getPhotoPrincipale().addClickHandler(new ClickHandler() {
200 gduche 127
			public void onClick(ClickEvent event) {
309 aurelien 128
				//FIXME : faire une interface pour les images
316 aurelien 129
				IsWidget image = (IsWidget)event.getSource();
130
				ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
200 gduche 131
			}
132
		});
166 gduche 133
	}
134
}