/trunk/src/org/tela_botanica/del/client/composants/observations/ObservationImagesPresenteur.java |
---|
2,6 → 2,7 |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilantePresenteur; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue; |
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur; |
9,6 → 10,8 |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
20,8 → 23,11 |
public abstract interface Vue extends IsWidget { |
public HasClickHandlers getPhotoPrincipale(); |
public HasWidgets getPhotos(); |
public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image); |
public void ajouterPhoto(Image image, ClickHandler gestionnaireClic); |
} |
30,29 → 36,27 |
private Observation observation; |
private Image imagePrincipale; |
private List<Image> listeImages; |
public ObservationImagesPresenteur(Vue vue, Observation observation) { |
public ObservationImagesPresenteur(Vue vue, Observation observation, Image imagePrincipale) { |
this.observation = observation; |
this.vue = vue; |
this.imagePrincipale=imagePrincipale; |
} |
public void chargerImagesObservation() { |
listeImages = observation.getImages(); |
if (listeImages.size() > 0){ |
imagePrincipale = listeImages.get(0); |
if (imagePrincipale!=null) { |
vue.chargerImagePrincipale(imagePrincipale); |
vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClic(0, imagePrincipale)); |
vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClicGalerieImages(0, imagePrincipale)); |
} |
int nbImage = 0; |
for (Image imageCourante : listeImages) { |
if(!imageCourante.equals(imagePrincipale)) { |
int nbImageEncours = nbImage; |
vue.ajouterPhoto(imageCourante, creerGestionnaireClic(nbImageEncours, imageCourante)); |
if (!imageCourante.equals(imagePrincipale)) { |
vue.ajouterPhoto(imageCourante, creerGestionnaireClicChangementImagePrincipale(imageCourante)); |
} |
nbImage++; |
} |
64,27 → 68,27 |
} |
protected void gererEvenements() { |
} |
protected ClickHandler creerGestionnaireClic(final int indexImage, final Image imageCourante) { |
protected ClickHandler creerGestionnaireClicGalerieImages(final int indexImage, final Image imageCourante) { |
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) { |
@Override |
public void surClicBoutonSuivant() { |
int index = getIndexElementAffiche() + 1; |
if(index >= listeImages.size()) { |
if (index >= listeImages.size()) { |
index = 0; |
} |
setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue())); |
} |
@Override |
public void surClicBoutonPrecedent() { |
int index = getIndexElementAffiche() - 1; |
if(index < 0) { |
if (index < 0) { |
index = listeImages.size() - 1; |
} |
setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue())); |
96,4 → 100,14 |
}; |
return gestionnaireClic; |
} |
protected ClickHandler creerGestionnaireClicChangementImagePrincipale(final Image imageCourante) { |
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
CacheClient.getInstance().setImageCourante(imageCourante); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementImageValidation()); |
} |
}; |
return gestionnaireClic; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/observations/ObservationImagesVue.java |
---|
1,10 → 1,5 |
package org.tela_botanica.del.client.composants.observations; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.uibinder.client.UiBinder; |
11,7 → 6,6 |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/changementimagevalidation/EvenementChangementImageValidation.java |
---|
New file |
0,0 → 1,23 |
package org.tela_botanica.del.client.navigation.evenement.changementimagevalidation; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementChangementImageValidation extends GwtEvent<GestionnaireEvenementChangementImageValidation> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementImageValidation> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementImageValidation>(); |
public EvenementChangementImageValidation() { |
} |
@Override |
protected void dispatch(GestionnaireEvenementChangementImageValidation handler) { |
handler.onChangementImage(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementImageValidation> getAssociatedType() { |
return TYPE; |
} |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/changementimagevalidation/GestionnaireEvenementChangementImageValidation.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.changementimagevalidation; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementChangementImageValidation extends EventHandler { |
public void onChangementImage(EvenementChangementImageValidation event); |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/ligneProtocole/LigneProtocolePresenteur.java |
---|
27,12 → 27,6 |
this.protocole = protocole; |
setNom(protocole.getNom()); |
Image imageCourante = CacheClient.getInstance().getImageCourante(); |
if (imageCourante == null) { |
// on suppose qu'il y a toujours au moins une image associée à |
// l'observation en cours |
imageCourante = CacheClient.getInstance().getObservationCourante().getImages().get(0); |
} |
MoyenneVotePresenteur votePresenteur = new MoyenneVotePresenteur(imageCourante, protocole, new MoyenneVoteVue(), new VoteProtocoleServiceConcret()); |
votePresenteur.go(vue.getZoneVote()); |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
15,6 → 15,7 |
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur; |
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Observation; |
27,6 → 28,8 |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
57,15 → 60,25 |
* */ |
public interface Vue extends IsWidget { |
public Panel getForum(); |
public Panel getDetailImageObservation(); |
public Panel getFormulaireRechercheEflore(); |
public Panel getVoteProtocole(); |
public Button getBoutonAjoutProposition(); |
public Button getBoutonAjoutCommentaire(); |
public Button getBoutonAjoutPropositionBas(); |
public Button getBoutonAjoutCommentaireBas(); |
public HasWidgets getMetadonnees(); |
public HasWidgets getNouvelleLigneProtocole(); |
public void afficherNomTaxonProbable(String nomTaxon); |
} |
77,8 → 90,7 |
private ObservationService observationService; |
private CacheClient cache = CacheClient.getInstance(); |
public DeterminationPresenteur(Vue vue, ObservationService observationService, ProtocoleService protocoleService) { |
this.vue = vue; |
this.protocoleService = protocoleService; |
87,18 → 99,25 |
public void go(final HasWidgets composite) { |
// TODO afficher une icone de chargement si le chargement devient trop long |
// TODO afficher une icone de chargement si le chargement devient trop |
// long |
// car tout l'écran est asynchrone ici |
Observation observationCourante = cache.getObservationCourante(); |
final Observation observationCourante = cache.getObservationCourante(); |
observationService.getObservation(observationCourante.getId(), new ObservationsCallback() { |
@Override |
public void surRetour(ObservationServiceResultat objetRetour) { |
cache.setImageCourante(cache.getObservationCourante().getImages().get(0)); |
// trouve l'image courante si elle n'est pas deja en cache |
List<Image> listeImages = cache.getObservationCourante().getImages(); |
if (listeImages.size() > 0) { |
CacheClient.getInstance().setImageCourante(listeImages.get(0)); |
} else { |
CacheClient.getInstance().setImageCourante(null); |
} |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante()).go(vue.getDetailImageObservation()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation()); |
chargerEtAjouterLignesVotesProtocole(); |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore()); |
141,15 → 160,15 |
} |
private void calculerEtAfficherVoteDeterminationPlusPopulaire() { |
Observation observation = cache.getObservationCourante(); |
String nomTaxon = observation.getNomRetenu(); |
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations()); |
if (votesOrdonnes.size() > 0) { |
nomTaxon = votesOrdonnes.get(0).getIntituleAssocie(); |
} |
vue.afficherNomTaxonProbable(nomTaxon); |
} |
170,7 → 189,7 |
}; |
vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition); |
vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition); |
ClickHandler clicAjoutCommentaire = new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
200,5 → 219,16 |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() { |
@Override |
public void onChangementImage(EvenementChangementImageValidation event) { |
vue.getDetailImageObservation().clear(); |
vue.getVoteProtocole().clear(); |
new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation()); |
chargerEtAjouterLignesVotesProtocole(); |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservationsPresenteur.java |
---|
239,7 → 239,7 |
} else { |
vue.afficherElementsResultatsTrouves(); |
for (Observation observation : resultats.getObservations()) { |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation); |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation, observation.getImages().get(0)); |
presenteur.go(vue.getZoneObservations()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observations/ObservationPresenteur.java |
---|
47,19 → 47,22 |
private Vue vue; |
private Observation observation; |
private Image imagePrincipale; |
private ObservationDeterminationPresenteur observationDeterminationPresenteur; |
private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
public ObservationPresenteur(Vue vue, Observation observation) { |
public ObservationPresenteur(Vue vue, Observation observation, Image imagePrincipale) { |
this.observation = observation; |
this.vue = vue; |
this.imagePrincipale=imagePrincipale; |
chargerObservation(); |
} |
public void chargerObservation() { |
new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), observation, imagePrincipale).go(vue.getImagesPanel()); |
new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonneesPanel()); |
observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations()); |
observationDeterminationPresenteur.go(vue.getDeterminationsPanel()); |