New file |
0,0 → 1,181 |
package org.tela_botanica.client.modeles.dao; |
|
import java.util.Iterator; |
|
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 asynchrone |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl() |
+ "/inventoryImage/" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+"/"+ic.getId()); |
|
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) { |
|
if (response.getText().equals("OK")) { |
return; |
} else { |
com.google.gwt.user.client.Window |
.alert("Problème lors de la mise à jour des données"); |
} |
} |
|
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.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 post |
String motsCles = ic.getMotsCles(); |
String id = ic.getId(); |
postData += "&id_image=" + id + "&id_mot_cle_utilisateur=" + motsCles; |
|
// on envoie une requête asynchrone |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, |
Configuration.getServiceBaseUrl() |
+ "/inventoryKeyWordImageList/" +Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+ "/"); |
|
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) { |
|
// TODO: les messages ne devraient pas être affichés ici |
// mais l'architecture par très malléable complique les choses |
if (response.getText().equals("OK")) { |
com.google.gwt.user.client.Window |
.alert("Les mots clés suivants ont bien été appliqués : "+iModele.renvoyerChaineMotClesTexte(ic)); |
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 block |
e.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 à supprimer |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, Configuration.getServiceBaseUrl() |
+ "/inventoryImage/" |
+ iModele.getIdentifiant() |
+ "/" |
+ ic.getId()); |
|
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) { |
|
if (response.getText().equals("OK")) { |
|
return; |
} else { |
com.google.gwt.user.client.Window |
.alert("Problème lors de la mise à jour des données : "+response.getText()); |
} |
} |
|
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
} |