New file |
0,0 → 1,269 |
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.Utilisateur; |
import org.tela_botanica.client.observation.ObservationMediateur; |
import org.tela_botanica.client.observation.ObservationModele; |
|
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestBuilder; |
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; |
import com.google.gwt.user.client.Window; |
|
/** |
* DAO d'accès à l'arbre de mots clés |
* |
* @author aurelien |
* |
*/ |
public class MotsClesAsynchroneDAO { |
|
/** |
* Le modele associé au DAO |
*/ |
private ImageModele iModele = null; |
|
private ObservationModele oModele = null ; |
|
private String identifiant = "" ; |
|
private String mode = ""; |
|
public MotsClesAsynchroneDAO(ImageModele im) { |
iModele = im; |
mode = "images"; |
identifiant = im.getIdentifiant(); |
} |
|
public MotsClesAsynchroneDAO(ObservationModele om) { |
oModele = om; |
mode = "obs"; |
identifiant = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte(); |
} |
|
|
|
/** |
* Setteur pour le modèle |
* |
* @param im |
* le modèle à associer |
*/ |
public void setIModele(ImageModele im) { |
iModele = im; |
} |
|
/** |
* 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'utilisateur |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/"+mode+"/"+identifiant+"/"); |
|
try { |
rb.sendRequest(null, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
public 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 tableau |
if (responseValue.isArray() != null) { |
|
final JSONArray reponse = responseValue.isArray(); |
// et on met à jour le demandeur des données |
r.rafraichir(reponse, true); |
} else { |
JSONArray vide = new JSONArray(); |
r.rafraichir(vide, true); |
} |
|
} |
|
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.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 asynchrone |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/"); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
public void onResponseReceived(Request request, |
Response response) { |
|
// si on reçoit une erreur d'ajout, on affiche un |
// message d'erreur |
if (response.getText().equals("ERROR")) { |
Window |
.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," |
+ "nous vous invitons à recharger la page. "); |
} |
|
} |
|
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.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"; |
|
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/" |
+ mode+"/" |
+ identifiant |
+ "/" |
+ motcle); |
|
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
public void onResponseReceived(Request request, |
Response response) { |
if (response.equals("ERROR")) { |
Window |
.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," |
+ "nous vous invitons à recharger la page. "); |
} |
} |
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.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; |
|
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/"+mode+"/"+ identifiant); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
public void onResponseReceived(Request request, |
Response response) { |
// TODO Auto-generated method stub |
|
} |
|
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.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; |
|
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/"+mode+"/"+identifiant); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
|
} |
|
public void onResponseReceived(Request request, |
Response response) { |
// TODO Auto-generated method stub |
|
} |
|
}); |
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
|
} |
|
} |