Rev 1918 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles.dao;import org.tela_botanica.client.image.ImageModele;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.objets.Configuration;import org.tela_botanica.client.modeles.objets.ListeObservation;import org.tela_botanica.client.modeles.objets.Observation;import org.tela_botanica.client.modeles.objets.Utilisateur;import org.tela_botanica.client.observation.ObservationModele;import org.tela_botanica.client.util.Util;import com.google.gwt.http.client.Request;import org.tela_botanica.client.util.RequestBuilderWithCredentials;import com.google.gwt.http.client.RequestCallback;import com.google.gwt.http.client.RequestException;import com.google.gwt.http.client.Response;import com.google.gwt.json.client.JSONArray;import com.google.gwt.json.client.JSONObject;import com.google.gwt.json.client.JSONParser;import com.google.gwt.json.client.JSONValue;public class LienImageAsynchroneDAO {private ImageModele iModele = null ;private ObservationModele oModele = null ;private Rafraichissable raf = null ;public LienImageAsynchroneDAO(ImageModele im) {iModele = im;}public LienImageAsynchroneDAO(ObservationModele om) {oModele = om;}/*** Setteur pour le modèle** @param im* le modèle à associer*/public void setIModele(ImageModele im) {iModele = im;}public void obtenirLiaisonsImagesObservations(Rafraichissable r,String id){String paramGet = "id_image="+id ;raf = r ;// et on envoie ça au serveurRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl()+ "/inventoryImageLink/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "/" + paramGet);try {rb.sendRequest(null, new RequestCallback() {@Overridepublic void onError(Request request, Throwable exception) {// TODO Auto-generated method stub}@Overridepublic void onResponseReceived(Request request,Response response) {final ListeObservation observationData ;final JSONValue responseValue = JSONParser.parse(response.getText());JSONArray reponse=null;// si c'est un tableauif ((reponse=responseValue.isArray()) != null) {JSONObject observation;final int taillemax = reponse.size();observationData = new ListeObservation(taillemax);for (int i = 0; i < taillemax; i++) {if ((observation = reponse.get(i).isObject()) != null) {Observation obs= new Observation(observation);observationData.put(obs.getNumeroOrdre(),obs);}}} else {observationData = new ListeObservation(0) ;}// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est// le premier à les recevoir// TODO : ce n'est pas ici qu'on devrait le decider ..raf.rafraichir(observationData,true);}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur){String paramGet = "id_observation="+idObs ;raf = r ;// et on envoie ça au serveurRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl()+ "/inventoryImageLink/" + utilisateur + "/" + paramGet);try {rb.sendRequest(null, new RequestCallback() {@Overridepublic void onError(Request request, Throwable exception) {// TODO Auto-generated method stub}@Overridepublic void onResponseReceived(Request request,Response response) {String baseUrl = Configuration.getImageBaseUrl() ;final JSONValue responseValue = JSONParser.parse(response.getText());// si c'est un tableauif (responseValue.isArray() != null) {final JSONArray reponse = responseValue.isArray();final int taillemax = reponse.size();String imgTab[][] = new String[taillemax][3] ;for(int i = 0 ;i<taillemax ;i++){final JSONObject reponseInt = reponse.get(i).isObject();String idImg = Util.getValeurJsonOuVide(reponseInt, "id_image") ;String X = Util.getValeurJsonOuVide(reponseInt, "hauteur") ;String Y = Util.getValeurJsonOuVide(reponseInt, "largeur") ;imgTab[i][0] = idImg ;imgTab[i][1] = X ;imgTab[i][2] = Y ;}raf.rafraichir(imgTab, false) ;}else{String imgTab[] = new String[0] ;raf.rafraichir(imgTab, false) ;}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void lierImageBaseDeDonnees(String idsImages, String idsObs) {String postData = "";postData += "id_image="+idsImages ;postData += "&id_observation="+idsObs ;postData += "&ce_utilisateur="+Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() ;// et on envoie ça au serveurRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/inventoryImageLink/");try {rb.sendRequest(postData, new RequestCallback() {@Overridepublic void onError(Request request, Throwable exception) {// TODO Auto-generated method stub}@Overridepublic void onResponseReceived(Request request,Response response) {iModele.requeteTerminee();}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void supprimerLienImageObservation(String idImg, String idObs) {String postData = "";postData += "&action=DELETE" ;String identifiant = "" ;identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();// et on envoie ça au serveurRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs);try {rb.sendRequest(postData, new RequestCallback() {@Overridepublic void onError(Request request, Throwable exception) {// TODO Auto-generated method stub}@Overridepublic void onResponseReceived(Request request,Response response) {// quand la requête est éxecutée on le signale au modèle// pour qu'il mette à jour les données// et en notifie le médiateuriModele.requeteTerminee();}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}