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; |
} |
} |