1,5 → 1,6 |
package org.tela_botanica.del.client.vues.comparaisoneflore; |
|
import java.util.ArrayList; |
import java.util.List; |
|
import org.tela_botanica.del.client.cache.CacheClient; |
6,13 → 7,18 |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.GestionnaireEvenementComparaisonEflore; |
import org.tela_botanica.del.client.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
|
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.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
32,6 → 38,12 |
public void startChargement(); |
|
public void stopChargement(); |
|
public void afficherAucuneImageTrouvee(); |
|
public HTMLPanel getFormulaireRecherche(); |
|
public void setCurrentIndexImages(int index); |
} |
|
private Vue vue; |
39,7 → 51,9 |
|
private Image imagePrincipale; |
private String nomTaxonComparaison; |
private List<org.tela_botanica.del.client.modeles.Image> imagesEflore; |
private List<org.tela_botanica.del.client.modeles.Image> imagesEflore = new ArrayList<Image>(); |
private int page = 0; |
private int nbImagesPreFetch = 10; |
|
public ComparaisonEflorePresenteur(Vue vue, ImageService imageService) { |
this.vue = vue; |
53,10 → 67,14 |
vue.chargerImagePrincipale(imagePrincipale); |
chargerObservationsEflore(); |
gererEvenements(); |
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRecherche()); |
} |
|
public void chargerObservationsEflore() { |
|
int debut = (page * nbImagesPreFetch) + 1; |
int fin = (page + 1) * nbImagesPreFetch; |
|
vue.startChargement(); |
|
InformationsRecherche informationsRecherche = new InformationsRecherche(); |
67,23 → 85,23 |
@Override |
public void surRetour(ImageServiceResultat imagesRecues) { |
if (imagesRecues == null||imagesRecues.getImages()==null||imagesRecues.getImages().size()==0) { |
vue.stopChargement(); |
vue.afficherAucuneImageTrouvee(); |
} else { |
setImagesEflore(imagesRecues.getImages()); |
vue.chargerImagesEflore(imagesRecues.getImages(), 0); |
addImagesEflore(imagesRecues.getImages()); |
vue.stopChargement(); |
vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages()); |
} |
} |
|
@Override |
public void surErreur(String messageErreur) { |
vue.afficherAucuneImageTrouvee(); |
Window.alert(messageErreur); |
|
} |
|
}; |
|
imageService.getImagesParTaxon(informationsRecherche, 1, 100, callback); |
imageService.getImagesParTaxon(informationsRecherche, debut, fin, callback); |
|
} |
|
100,17 → 118,33 |
|
@Override |
public void onClick(ClickEvent event) { |
|
if (vue.getCurrentIndexImages() == imagesEflore.size() - 1) { |
page += 1; |
vue.setCurrentIndexImages(vue.getCurrentIndexImages()+1); |
chargerObservationsEflore(); |
} else { |
vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages() + 1); |
} |
} |
}); |
|
BusEvenementiel.getInstance().addHandler(EvenementComparaisonEflore.TYPE, new GestionnaireEvenementComparaisonEflore() { |
|
@Override |
public void onComparaisonEflore(EvenementComparaisonEflore event) { |
nomTaxonComparaison = event.getTaxonDemande(); |
chargerObservationsEflore(); |
} |
}); |
} |
|
public List<org.tela_botanica.del.client.modeles.Image> getImagesEflore() { |
return imagesEflore; |
} |
|
public void setImagesEflore(List<org.tela_botanica.del.client.modeles.Image> imagesEflore) { |
this.imagesEflore = imagesEflore; |
public void addImagesEflore(List<org.tela_botanica.del.client.modeles.Image> imagesEflore) { |
this.imagesEflore.addAll(imagesEflore); |
} |
|
} |