Rev 220 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.vues.rechercheobservations;
import java.util.Iterator;
import java.util.List;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Image;
public class ObservationPresenteur extends Presenteur {
private Observation observation;
public ObservationPresenteur(Observation observation) {
super(new ObservationVue());
this.observation = observation;
chargerObservation();
}
public void chargerObservation() {
ObservationVue vue = (ObservationVue) this.getVue();
vue.auteur.setText(observation.getAuteur());
vue.date.setText(observation.getDate());
vue.famille.setText(observation.getFamille());
vue.localite.setText(observation.getLocalite());
List<String> motsCles = observation.getMotsClefs();
Iterator<String> itMotsCles = motsCles.iterator();
String motsClesChaine = "";
while (itMotsCles.hasNext()) {
String motCle = itMotsCles.next();
motsClesChaine += motCle;
if (itMotsCles.hasNext()) {
motsClesChaine += ", ";
}
}
vue.motsClefs.setText(motsClesChaine);
vue.nomRetenu.setText(observation.getNomRetenu());
vue.numNomenclatural.setText(observation.getNumNomenclatural());
List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages();
if (images != null && images.size() > 0) {
org.tela_botanica.del.client.modeles.Image imagePrincipale = images.get(0);
vue.photoPrincipale.setUrl(imagePrincipale.getUrl());
vue.photoPrincipale.setTitle(imagePrincipale.getUrlFormat("L"));
vue.photoPrincipale.setAltText(observation.getAuteur() + " - " + observation.getNomRetenu());
images.remove(0);
}
int nbImagesAffichees = 0;
for (org.tela_botanica.del.client.modeles.Image imageCourante : images) {
nbImagesAffichees++;
if (nbImagesAffichees < 5) {
Image photo = new Image();
photo.setUrl(imageCourante.getUrlFormat("CRX2S"));
photo.setTitle(imageCourante.getUrlFormat("L"));
photo.setAltText(observation.getAuteur() + " - " + observation.getNomRetenu());
photo.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Image photo = (Image) event.getSource();
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText()));
}
});
vue.photos.add(photo);
}
}
List<PropositionDetermination> propositions = observation.getPropositionsDetermination();
vue.tableauPropositions.setText(0, 0, "Certitude");
vue.tableauPropositions.setText(0, 1, "Commentaires");
vue.tableauPropositions.setText(0, 2, "Nom");
vue.tableauPropositions.setText(0, 3, "Votez");
int i = 0;
for (PropositionDetermination proposition : propositions) {
i++;
vue.tableauPropositions.setText(i, 0, String.valueOf(proposition.getVotesDeterminations().size()));
/*
* List<VoteDetermination> votes =
* proposition.getVotesDeterminations(); for (VoteDetermination vote
* : votes) { vote.getVote(); }
*/
vue.tableauPropositions.setText(i, 1, String.valueOf(proposition.getCommentaires().size()));
vue.tableauPropositions.setText(i, 2, proposition.getEspece());
}
gererEvenements();
// vue.propositions.setText(ch);
}
public void go(HasWidgets composite) {
composite.add(this.getVue());
}
protected void gererEvenements() {
ObservationVue vue = (ObservationVue) this.getVue();
vue.photoPrincipale.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Image photoPrincipale = (Image) event.getSource();
ouvrirFenetreModale(new DetailImagePresenteur(photoPrincipale.getTitle(), photoPrincipale.getAltText()));
}
});
}
}