New file |
0,0 → 1,248 |
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 serveur |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() |
+ "/inventoryImageLink/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "/" + paramGet); |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
@Override |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
@Override |
public void onResponseReceived(Request request, |
Response response) { |
|
final ListeObservation observationData ; |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
|
JSONArray reponse=null; |
|
// si c'est un tableau |
if ((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 block |
e.printStackTrace(); |
} |
} |
|
public void obtenirLiaisonsObservationsImages(Rafraichissable r,String idObs, String utilisateur) |
{ |
String paramGet = "id_observation="+idObs ; |
raf = r ; |
|
// et on envoie ça au serveur |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() |
+ "/inventoryImageLink/" + utilisateur + "/" + paramGet); |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
@Override |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
@Override |
public void onResponseReceived(Request request, |
Response response) { |
|
String baseUrl = Configuration.getImageBaseUrl() ; |
|
final JSONValue responseValue = JSONParser.parse(response |
.getText()); |
// si c'est un tableau |
if (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 block |
e.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 serveur |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl() |
+ "/inventoryImageLink/"); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
@Override |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
@Override |
public void onResponseReceived(Request request, |
Response response) { |
|
iModele.requeteTerminee(); |
|
} |
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
|
public void supprimerLienImageObservation(String idImg, String idObs) { |
|
String postData = ""; |
|
postData += "&action=DELETE" ; |
String identifiant = "" ; |
|
identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte(); |
|
// et on envoie ça au serveur |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl() |
+ "/inventoryImageLink/"+identifiant+"/"+idImg+"/"+idObs); |
|
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
@Override |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
@Override |
public 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édiateur |
iModele.requeteTerminee(); |
|
} |
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
} |