Rev 1293 | Rev 2042 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles.dao;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.objets.Configuration;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;import com.google.gwt.json.client.JSONArray;import com.google.gwt.json.client.JSONParser;import com.google.gwt.json.client.JSONValue;/*** DAO d'accès à l'arbre de mots clés** @author aurelien**/public class MotsClesAsynchroneDAO {private String identifiant = "" ;private String mode = "";public MotsClesAsynchroneDAO() {mode = "images";identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();}public MotsClesAsynchroneDAO(String mode) {this.mode = mode;identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();}/*** Envoie une requete au serveur jrest pour obtenir l'arbre des mots clés** @param r* le rafraichissable qui demande les données*/public void obtenirListeMotsCles(final Rafraichissable r) {// on demande tous les mots clés associés à l'utilisateurRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl()+ "/InventoryKeyWordList/"+mode+"/"+identifiant+"/");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 JSONValue responseValue = JSONParser.parse(response.getText());// si la requête est un succès on reçoit un tableauif (responseValue.isArray() != null) {final JSONArray reponse = responseValue.isArray();// et on met à jour le demandeur des donnéesr.rafraichir(reponse, true);} else {JSONArray vide = new JSONArray();r.rafraichir(vide, true);}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** Envoie requete au serveur jrest pour ajouter un mot clé** @param motcle* le mots clés à ajouter avec son parent et son identifiant*/public void ajouterBaseDeDonnees(String motcle) {if (!motcle.equals("")) {String postData = motcle+"&mode="+mode;// on fait un post asynchroneRequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/InventoryKeyWordList/");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 chosesif (response.getText().equals("OK")) {com.google.gwt.user.client.Window.alert("Le mot clé a été ajouté");return;} else {com.google.gwt.user.client.Window.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** Envoie requete au serveur jrest pour supprimer un mot clé** @param motcle* le mots clés à supprimer*/public void supprimerBaseDeDonnees(String motcle) {if (!motcle.equals("")) {String postData = "";postData += "&action=DELETE";RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/InventoryKeyWordList/"+ mode+"/"+ identifiant+ "/"+ motcle);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 chosesif (response.getText().equals("OK")) {com.google.gwt.user.client.Window.alert("Le mot clé a été supprimé");return;} else {com.google.gwt.user.client.Window.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** Envoie requete au serveur jrest pour modifier un mot clé** @param motcle* le mots clés à modifier avec son parent et son identifiant*/public void modifierBaseDeDonnees(String motcle) {if (!motcle.equals("")) {String postData = "";postData += "&action=modification"+motcle;RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/InventoryKeyWordList/"+mode+"/"+ identifiant);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 chosesif (response.getText().equals("OK")) {com.google.gwt.user.client.Window.alert("Le mot clé a été renommé");return;} else {com.google.gwt.user.client.Window.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());}}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** Envoie requete au serveur jrest pour modifier un mot clé** @param motcle* le mots clés à ajouter avec son ancien parent, son nouveau et* son identifiant*/public void deplacerBaseDeDonnees(String motcle) {if (!motcle.equals("")) {String postData = "";postData += "&action=deplacement"+motcle;RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl()+ "/InventoryKeyWordList/"+mode+"/"+identifiant);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 Auto-generated method stub}});} catch (RequestException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}