Rev 1918 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles.dao;import java.util.Iterator;import org.tela_botanica.client.i18n.Msg;import org.tela_botanica.client.image.ImageModele;import org.tela_botanica.client.modeles.objets.Configuration;import org.tela_botanica.client.modeles.objets.ImageCarnet;import org.tela_botanica.client.modeles.objets.Utilisateur;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;/*** DAO d'accès à une image, n'est utilisé que pour l'écriture et pas pour la* lecture des images qui se fait par paquet** @author aurelien**/public class ImageAsynchroneDAO {ImageModele iModele = null;public ImageAsynchroneDAO(ImageModele im) {iModele = im;}public void setIModele(ImageModele im) {iModele = im;}/*** Met à jour la base de données avec toutes les données d'une image** @param ic* l'image à mettre à jour*/public void SynchroniserBaseDeDonnees(final ImageCarnet ic) {String postData = "";String[][] champsModifiables = ic.obtenirChampsModifiablesImage();for (int i = 0; i < champsModifiables.length; i++) {postData += "&"+champsModifiables[i][0]+"="+champsModifiables[i][1];}// et on envoie une requête asynchroneRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/inventoryImage/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+"/"+ic.getId());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) {// Attention "OK" n'est pas un terme à traduire iciif (response.getText().equals("OK")) {return;} else {com.google.gwt.user.client.Window.alert(Msg.get("probleme-mise-a-jour-donnees"));}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** Met à jour la base de données avec les mots clés associés à l'image** @param ic* l'image à mettre à jour*/public void SynchroniserMotsClesImageBaseDeDonnees(final ImageCarnet ic) {String postData = "";// on récupère les mots clés de l'image et on fabrique le postString motsCles = ic.getMotsCles();String id = ic.getId();postData += "&id_image=" + id + "&id_mot_cle_utilisateur=" + motsCles;// on envoie une requête asynchroneRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,Configuration.getServiceBaseUrl()+ "/inventoryKeyWordImageList/" +Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+ "/");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) {// TODO: les messages ne devraient pas être affichés ici// mais l'architecture par très malléable complique les choses// Attention OK n'est pas un terme à traduire iciif (response.getText().equals("OK")) {com.google.gwt.user.client.Window.alert(Msg.get("mots-cles-appliques")+" : "+iModele.renvoyerChaineMotClesTexte(ic));return;} else {com.google.gwt.user.client.Window.alert(Msg.get("probleme-mise-a-jour-donnees")+", "+Msg.get("serveur-a-repondu")+" "+response.getText());}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** Supprime une image de la base de données** @param ic* l'image à supprimer*/public void supprimerBaseDeDonnees(final ImageCarnet ic) {// le post contient l'action delete pour JREST (qui ne gère pas DELETE// comme une requête à part entière)String postData = "";postData += "&action=DELETE";// on envoie un post avec l'id de l'image à supprimerRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/inventoryImage/"+ iModele.getIdentifiant()+ "/"+ ic.getId());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) {if (response.getText().equals("OK")) {return;} else {com.google.gwt.user.client.Window.alert(Msg.get("probleme-mise-a-jour-donnees")+" : "+response.getText());}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}