9,25 → 9,51 |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
|
public class ObservationPresenteur extends Presenteur { |
|
public abstract interface Vue extends IsWidget { |
public HasText getAuteur(); |
public HasText getDate(); |
public HasText getFamille(); |
public HasText getLocalite(); |
public HasText getMotsClefs(); |
public HasText getNomRetenu(); |
public HasText getNumNomenclatural(); |
public FlexTable getTableauPropositions(); |
public HasClickHandlers getPhotoPrincipale(); |
public HasWidgets getPhotos(); |
public void setUrlImagePrincipale(String url); |
public void setTitreImagePrincipale(String titre); |
public void setAltTextImagePrincipale(String altText); |
public String getUrlImagePrincipale(); |
public String getTitreImagePrincipale(); |
public String getAltTextImagePrincipale(); |
public void setTexteTableau(int ligne, int colonne, String texte); |
} |
|
private Vue vue; |
|
private Observation observation; |
|
public ObservationPresenteur(Observation observation) { |
super(new ObservationVue()); |
public ObservationPresenteur(Vue vue, Observation observation) { |
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()); |
vue.getAuteur().setText(observation.getAuteur()); |
vue.getDate().setText(observation.getDate()); |
vue.getFamille().setText(observation.getFamille()); |
vue.getLocalite().setText(observation.getLocalite()); |
|
List<String> motsCles = observation.getMotsClefs(); |
Iterator<String> itMotsCles = motsCles.iterator(); |
39,17 → 65,17 |
motsClesChaine += ", "; |
} |
} |
vue.motsClefs.setText(motsClesChaine); |
vue.nomRetenu.setText(observation.getNomRetenu()); |
vue.numNomenclatural.setText(observation.getNumNomenclatural()); |
vue.getMotsClefs().setText(motsClesChaine); |
vue.getNomRetenu().setText(observation.getNomRetenu()); |
vue.getNumNomenclatural().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()); |
vue.setUrlImagePrincipale(imagePrincipale.getUrl()); |
vue.setTitreImagePrincipale(imagePrincipale.getUrlFormat("L")); |
vue.setAltTextImagePrincipale(observation.getAuteur() + " - " + observation.getNomRetenu()); |
images.remove(0); |
} |
|
65,31 → 91,31 |
|
public void onClick(ClickEvent event) { |
Image photo = (Image) event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText())); |
ouvrirFenetreModale(new DetailImagePresenteur(vue.getTitreImagePrincipale(), vue.getAltTextImagePrincipale(), new DetailImageVue())); |
} |
}); |
vue.photos.add(photo); |
vue.getPhotos().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"); |
vue.setTexteTableau(0, 0, "Certitude"); |
vue.setTexteTableau(0, 1, "Commentaires"); |
vue.setTexteTableau(0, 2, "Nom"); |
vue.setTexteTableau(0, 3, "Votez"); |
|
int i = 0; |
for (PropositionDetermination proposition : propositions) { |
i++; |
vue.tableauPropositions.setText(i, 0, String.valueOf(proposition.getVotesDeterminations().size())); |
vue.setTexteTableau(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()); |
vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size())); |
vue.setTexteTableau(i, 2, proposition.getEspece()); |
} |
|
gererEvenements(); |
97,16 → 123,16 |
} |
|
public void go(HasWidgets composite) { |
composite.add(this.getVue()); |
composite.add(vue.asWidget()); |
} |
|
protected void gererEvenements() { |
ObservationVue vue = (ObservationVue) this.getVue(); |
vue.photoPrincipale.addClickHandler(new ClickHandler() { |
vue.getPhotoPrincipale().addClickHandler(new ClickHandler() { |
|
public void onClick(ClickEvent event) { |
Image photoPrincipale = (Image) event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photoPrincipale.getTitle(), photoPrincipale.getAltText())); |
//FIXME : faire une interface pour les images |
//Image photoPrincipale = (Image) event.getSource(); |
//ouvrirFenetreModale(new DetailImagePresenteur(photoPrincipale.getTitreImagePrincipale(), vue.getAltTextImagePrincipale(), new DetailImageVue())); |
} |
}); |
|