42,15 → 42,7 |
private Vue vue; |
private List<ImagePresenteur> ImagePresenteurs = new ArrayList<ImagePresenteur>(); |
private ImageService imageService; |
private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur; |
|
/** |
* Ceci sert à éviter que les deux présenteurs paginations fassent deux |
* requêtes par changement de page En attendant d'en discuter avec les |
* autres |
*/ |
private boolean requeteEnCours = false; |
|
public ResultatRechercheImagePresenteur(ImageService imageService, Vue vue) { |
this.vue = vue; |
this.imageService = imageService; |
60,6 → 52,11 |
composite.add(vue.asWidget()); |
vue.startChargement(); |
|
rechercherImagesEtCreerWidgetPagination(); |
|
} |
|
public void rechercherImagesEtCreerWidgetPagination() { |
// appel du service d'image pour avoir le nb total d'elements pour la |
// pagination |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
66,13 → 63,12 |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues, 0, CacheClient.getInstance().getPasPagination()); |
requeteEnCours = false; |
int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination(); |
int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination(); |
afficherImages(imagesRecues, debut, fin); |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), 0, CacheClient.getInstance().getPasPagination(), callback); |
|
} |
|
private void chargerEtAfficherImages(final int premier, final int dernier) { |
83,10 → 79,8 |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
afficherImages(imagesRecues, premier, dernier); |
requeteEnCours = false; |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
|
} |
113,28 → 107,18 |
|
private void creerWidgetPagination(int nbImages) { |
|
this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
PaginationPresenteur imagesPaginationPresenteurHaut = creerPresenteurPagination(nbImages); |
PaginationPresenteur imagesPaginationPresenteurBas = creerPresenteurPagination(nbImages); |
imagesPaginationPresenteurHaut.go(vue.getPanneauPaginationHaut()); |
imagesPaginationPresenteurBas.go(vue.getPanneauPagination()); |
} |
|
public PaginationPresenteur creerPresenteurPagination(int nbImages) { |
PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheImage()) { |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
public void chargerElements(int debut, int fin) { |
|
this.paginationHautPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
|
@Override |
public void changerPage(int debut, int fin) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
chargerEtAfficherImages(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
|
142,9 → 126,7 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
|
}; |
this.paginationBasPresenteur.go(vue.getPanneauPagination()); |
this.paginationHautPresenteur.go(vue.getPanneauPaginationHaut()); |
return imagesPaginationPresenteur; |
} |
} |