5,13 → 5,14 |
import java.util.List; |
|
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
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.rechercheimages.resultats.images.ImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue; |
|
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
|
18,72 → 19,75 |
public class ResultatRechercheImagePresenteur { |
|
private final ResultatRechercheImageVue vue = new ResultatRechercheImageVue(); |
private static ResultatRechercheImagePresenteur instance; |
private List<ImagePresenteur> observationPresenteurs = new ArrayList<ImagePresenteur>(); |
private ImageService imageService; |
|
|
public ResultatRechercheImagePresenteur(ImageService imageService) { |
instance = this; |
this.imageService = imageService; |
} |
|
public void go(HasWidgets composite) { |
composite.add(vue); |
int pas = CacheClient.getInstance().getPasPagination(); |
int pageCourante = CacheClient.getInstance().getPageCouranteRecherche(); |
actualiserImagesEtMoyenneVoteProtocole(pageCourante*pas, (pageCourante+1)*(pas)); |
|
// appel du service d'image pour avoir le nb total d'elements pour la |
// pagination |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
|
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues); |
} |
}; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), 0, CacheClient.getInstance().getPasPagination(), callback); |
|
} |
|
private void actualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
|
private void chargerEtAfficherImages(int premier, int dernier) { |
vue.startChargement(); |
|
|
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
|
|
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
|
CacheClient.getInstance().setImages(imagesRecues.getImages()); |
createPaginationWidget(imagesRecues.getNbTotalImagesPourLaRecherche()); |
vue.nettoyer(); |
|
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
vue.creerPanneauxObservations(imagesRecues.getImages().size()); |
|
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imagesRecues.getImages()) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
} |
|
vue.afficherPanneauxObservation(panneauxImagesAffichees); |
vue.stopChargement(); |
afficherImages(imagesRecues); |
} |
}; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(),premier, dernier , callback); |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
|
} |
|
public void fermerTousPanneauxDetailsObservations() { |
for (ImagePresenteur observationPresenteur : observationPresenteurs) { |
if (observationPresenteur.isDetailsOpen()) { |
observationPresenteur.cacherDetails(); |
} |
private void afficherImages(ImageServiceResultat imageServiceResult) { |
CacheClient.getInstance().setImages(imageServiceResult.getImages()); |
|
vue.nettoyer(); |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
vue.creerPanneauxObservations(imageServiceResult.getImages().size()); |
|
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imageServiceResult.getImages()) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
} |
|
vue.afficherPanneauxObservation(panneauxImagesAffichees); |
vue.stopChargement(); |
} |
|
private void createPaginationWidget(int nbImages) { |
private void creerWidgetPagination(int nbImages) { |
|
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPasPagination()) { |
|
@Override |
public void changerPage(int debut, int fin) { |
showImagePanels(debut, fin); |
CacheClient.getInstance().setPageCouranteRecherche(getPageCourante()); |
chargerEtAfficherImages(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
|
|
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
92,16 → 96,4 |
pagination.go(vue.getPanneauPagination()); |
} |
|
public void showImagePanels(int first, int last) { |
actualiserImagesEtMoyenneVoteProtocole(first, last); |
} |
|
public ResultatRechercheImageVue getView() { |
return vue; |
} |
|
public static ResultatRechercheImagePresenteur getInstance() { |
return instance; |
} |
|
} |