2,6 → 2,8 |
|
import java.util.List; |
|
import org.tela_botanica.del.client.composants.fenetreOverlayDefilante.FenetreOverlayDefilantePresenteur; |
import org.tela_botanica.del.client.composants.fenetreOverlayDefilante.FenetreOverlayDefilanteVue; |
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; |
11,6 → 13,7 |
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.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
33,6 → 36,8 |
private Observation observation; |
|
private Image imagePrincipale; |
|
private List<Image> listeImages; |
|
public ObservationImagesPresenteur(Vue vue, Observation observation) { |
this.observation = observation; |
43,23 → 48,20 |
|
vue.chargerInformationsObservation(observation); |
|
List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages(); |
listeImages = observation.getImages(); |
|
if (images != null && images.size() > 0) { |
imagePrincipale = images.get(0); |
if (listeImages != null && listeImages.size() > 0) { |
imagePrincipale = listeImages.get(0); |
vue.chargerImagePrincipale(imagePrincipale); |
} |
|
for (final org.tela_botanica.del.client.modeles.Image imageCourante : images) { |
if (imageCourante != imagePrincipale) { |
|
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(imageCourante, new DetailImageVue())); |
} |
}; |
vue.ajouterPhoto(imageCourante, gestionnaireClic); |
int nbImage = 0; |
for (final org.tela_botanica.del.client.modeles.Image imageCourante : listeImages) { |
if(!imageCourante.equals(imagePrincipale)) { |
int nbImageEncours = nbImage; |
vue.ajouterPhoto(imageCourante, creerGestionnaireClic(nbImageEncours, imageCourante)); |
} |
nbImage++; |
} |
} |
|
70,10 → 72,35 |
} |
|
protected void gererEvenements() { |
vue.getPhotoPrincipale().addClickHandler(new ClickHandler() { |
vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClic(0, listeImages.get(0))); |
} |
|
protected ClickHandler creerGestionnaireClic(final int indexImage, final Image imageCourante) { |
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(imagePrincipale, new DetailImageVue())); |
FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) { |
|
@Override |
public void surClicBoutonSuivant() { |
int index = getIndexElementAffiche() + 1; |
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) { |
index = listeImages.size() - 1; |
} |
setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue())); |
} |
}; |
presenteurGalerie.ouvrirFenetreModaleDefilante(indexImage, new DetailImagePresenteur(imageCourante, new DetailImageVue())); |
} |
}); |
}; |
return gestionnaireClic; |
} |
} |