/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
13,6 → 13,7 |
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.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Panel; |
37,6 → 38,12 |
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; |
54,8 → 61,10 |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues, 0, CacheClient.getInstance().getPasPagination()); |
requeteEnCours = false; |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), 0, CacheClient.getInstance().getPasPagination(), callback); |
} |
68,10 → 77,11 |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
afficherImages(imagesRecues, premier, dernier); |
requeteEnCours = false; |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
} |
80,13 → 90,6 |
List<Image> images = imageServiceResult.getImages(); |
// verifie si le nb d'images renvoyes par le service est correct sinon |
// coupe la liste d'images |
int taille = dernier - premier; |
if (images.size() > taille) { |
images = imageServiceResult.getImages().subList(0, taille); |
} |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
vue.creerPanneauxObservations(imageServiceResult.getImages().size()); |
108,7 → 111,9 |
this.paginationBasPresenteur = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
chargerEtAfficherImages(debut, fin); |
if(!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
129,7 → 134,9 |
@Override |
public void changerPage(int debut, int fin) { |
chargerEtAfficherImages(debut, fin); |
if(!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ImageServiceConcret.java |
---|
14,9 → 14,9 |
//RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"ImagesEflore"); |
//adresse ajoutee temporairement le temps de faire fonctionner le service d'images eflore |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Observations"); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Images?nom_taxon="+taxon); |
try { |
rb.sendRequest("nom_taxon="+taxon, callback); |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
// TODO: handle exception |
} |
24,9 → 24,9 |
@Override |
public void getImagesParTaxon(InformationsRecherche infos, int debut, int fin, ImagesParTaxonCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Observations"); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Images"+assemblerChaineRequete(infos, debut, fin)); |
try { |
rb.sendRequest(assemblerChaineRequete(infos, debut, fin), callback); |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
// TODO: handle exception |
} |
34,7 → 34,7 |
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin) { |
String chaineRequete = "&debut="+debut+"&limite="+(fin-debut); |
String chaineRequete = "?debut="+debut+"&limite="+(fin-debut); |
if(infos != null && infos.getTaxon() != null && !infos.getTaxon().trim().isEmpty()) { |
chaineRequete = "nom_taxon="+infos.getTaxon()+chaineRequete; |
} |
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationPresenteur.java |
---|
65,7 → 65,7 |
public void changerPas(int pas) { |
this.pas = pas; |
actualiserNbPage(); |
changerPage(pas * pageCourante, pas * (pageCourante + 1)); |
changerPage(pas * (pageCourante -1), pas * pageCourante); |
switch (pas) { |
case 5: |
vue.getSelecteurPas().setSelectedIndex(0); |
176,7 → 176,7 |
public void onClick(ClickEvent event) { |
Button boutonCourant = (Button) event.getSource(); |
pageCourante = Integer.parseInt(boutonCourant.getText()); |
int debut = Integer.parseInt(boutonCourant.getText()) * pas; |
int debut = (Integer.parseInt(boutonCourant.getText()) - 1) * pas; |
int fin = (debut + pas); |
setBoutonActif(); |
changerPage(debut, fin); |
193,7 → 193,7 |
public void pageSuivante() { |
if (pageCourante < nbPage - 1) { |
pageCourante++; |
int debut = pageCourante * pas; |
int debut = (pageCourante -1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
207,7 → 207,7 |
public void pagePrecedente() { |
if (pageCourante > 1) { |
pageCourante--; |
int debut = pageCourante * pas; |
int debut = (pageCourante -1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
/trunk/src/org/tela_botanica/del/client/modeles/ImageServiceResultat.java |
---|
27,11 → 27,19 |
int nbResultats = tableauObs.size(); |
for (int i = 0; i < nbResultats; i++) { |
JSONObject observationJson = tableauObs.get(i).isObject(); |
JSONObject imageJson = tableauObs.get(i).isObject(); |
Image image = new Image(); |
String idImage = "1"+imageJson.get("id_image").isString().stringValue(); |
image.setIdImage(idImage); |
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg"); |
image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg"); |
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg"); |
JSONObject observationJson = imageJson.get("observation").isObject(); |
Observation observation = new Observation(); |
observation.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+ |
" "+observationJson.get("nom_utilisateur").isString().stringValue()); |
" "+observationJson.get("nom_utilisateur").isString().stringValue()); |
observation.setDate(observationJson.get("date_observation").isString().stringValue()); |
observation.setFamille(observationJson.get("famille").isString().stringValue()); |
observation.setId(observationJson.get("id_observation").isString().stringValue()); |
48,20 → 56,8 |
propositionDetermination.setEspece(observationJson.get("nom_ret").isString().stringValue()); |
observation.addImageCelValidationData(propositionDetermination); |
JSONArray tableauImagesObs = observationJson.get("images").isArray(); |
int nbImages = tableauImagesObs.size(); |
for (int j = 0; j < nbImages; j++) { |
JSONObject imageJson = tableauImagesObs.get(j).isObject(); |
Image image = new Image(); |
String idImage = "1"+imageJson.get("id_image").isString().stringValue(); |
image.setIdImage(idImage); |
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg"); |
image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg"); |
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg"); |
image.setObservation(observation); |
images.add(image); |
} |
image.setObservation(observation); |
images.add(image); |
} |
} |