16,172 → 16,181 |
import com.google.gwt.json.client.JSONValue; |
|
/** |
* Data Object Access communiquant avec le serveur jrest fournissant la liste des images |
* répondant à des critères donné |
* Data Object Access communiquant avec le serveur jrest fournissant la liste |
* des images répondant à des critères donné |
* |
* @author aurelien |
* |
* |
*/ |
public class ListeImageAsynchroneDAO { |
|
|
/** |
* Le modèle associé au DAO |
*/ |
ImageModele iModele = null ; |
|
public ListeImageAsynchroneDAO(ImageModele im) |
{ |
iModele = im ; |
ImageModele iModele = null; |
|
public ListeImageAsynchroneDAO(ImageModele im) { |
iModele = im; |
} |
|
|
/** |
* Setteur pour le modèle |
* @param im le modèle à associer |
* |
* @param im |
* le modèle à associer |
*/ |
public void setIModele(ImageModele im) |
{ |
iModele = im ; |
public void setIModele(ImageModele im) { |
iModele = im; |
} |
|
|
/** |
* Envoie une requete au serveur jrest pour obtenir une liste d'images correspondant à des critères demandés |
* @param r le rafraichissable qui a demandé les données |
* @param criteres un tableau contenant les critères de selections |
* Envoie une requete au serveur jrest pour obtenir une liste d'images |
* correspondant à des critères demandés |
* |
* @param r |
* le rafraichissable qui a demandé les données |
* @param criteres |
* un tableau contenant les critères de selections |
*/ |
public void ObtenirListeImages(final Rafraichissable r, String[][] criteres) |
{ |
|
String requete = "" ; |
|
public void ObtenirListeImages(final Rafraichissable r, String[][] criteres) { |
|
String requete = ""; |
|
// on construit les paramètres du get |
if(criteres != null) |
{ |
if (criteres != null) { |
for (int i = 0; i < criteres.length; i++) { |
|
if(!criteres[i][1].equals("")) |
{ |
if(i!= 0) |
{ |
|
if (!criteres[i][1].equals("")) { |
if (i != 0) { |
requete += "&"; |
} |
requete += criteres[i][0]+"="+criteres[i][1] ; |
|
requete += criteres[i][0] + "=" + criteres[i][1]; |
|
} |
} |
} |
|
|
// on envoie le get asynchrone |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,iModele.getConfig().getServiceBaseUrl()+"/InventoryImageList/"+iModele.getIdentifiant()+"/"+requete) ; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, iModele |
.getConfig().getServiceBaseUrl() |
+ "/InventoryImageList/" |
+ iModele.getIdentifiant() |
+ "/" |
+ requete); |
try { |
rb.sendRequest(null , new RequestCallback() { |
|
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 ListeImageCarnet photoData ; |
public void onResponseReceived(Request request, |
Response response) { |
|
final JSONValue responseValue = JSONParser.parse(response.getText()); |
final ListeImageCarnet photoData; |
|
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(); |
photoData = new ListeImageCarnet(taillemax); |
|
|
// on le parcourt |
for (int j = 0; j < taillemax ; j++) { |
|
JSONObject image = (JSONObject)reponse.get(j) ; |
|
ImageCarnet im = new ImageCarnet(image) ; |
|
// et on en extrait les données pour construire la liste d'image |
photoData.put(im.getOrdre(),im) ; |
|
for (int j = 0; j < taillemax; j++) { |
|
JSONObject image = (JSONObject) reponse.get(j); |
|
ImageCarnet im = new ImageCarnet(image); |
|
// et on en extrait les données pour construire la |
// liste d'image |
photoData.put(im.getOrdre(), im); |
|
} |
} |
else |
{ |
} else { |
// si c'est un objet alors il n'y a qu'une réponse |
if(responseValue.isObject() != null) |
{ |
if (responseValue.isObject() != null) { |
photoData = new ListeImageCarnet(1); |
ImageCarnet im = new ImageCarnet(responseValue.isObject()) ; |
// on crée une liste de 1 élement auquel on ajoute ce qui a été reçu |
photoData.put(im.getOrdre(),im) ; |
} |
else |
{ |
ImageCarnet im = new ImageCarnet(responseValue |
.isObject()); |
// on crée une liste de 1 élement auquel on ajoute |
// ce qui a été reçu |
photoData.put(im.getOrdre(), im); |
} else { |
// sinon on crée une liste vide |
photoData = new ListeImageCarnet(0) ; |
photoData = new ListeImageCarnet(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 |
|
// 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 |
r.rafraichir(photoData,true); |
r.rafraichir(photoData, true); |
} |
}) ; |
|
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
|
|
/** |
* Met à jour les valeurs d'une liste d'image donnée dans la base de données |
* @param li la liste d'image à synchroniser avec la base |
* |
* @param li |
* la liste d'image à synchroniser avec la base |
*/ |
public void SynchroniserBaseDeDonnees(ListeImageCarnet li) |
{ |
public void SynchroniserBaseDeDonnees(ListeImageCarnet li) { |
// on parcourt toute la liste d'image |
for(Iterator<String> listIt = li.keySet().iterator() ; listIt.hasNext() ;) |
{ |
String postData = "" ; |
|
ImageCarnet enCours = li.get(listIt.next()) ; |
|
for (Iterator<String> listIt = li.keySet().iterator(); listIt.hasNext();) { |
String postData = ""; |
|
ImageCarnet enCours = li.get(listIt.next()); |
|
// pour chaque image on extrait les informations |
for(Iterator<String> imgIt = enCours.keySet().iterator();imgIt.hasNext();) |
{ |
for (Iterator<String> imgIt = enCours.keySet().iterator(); imgIt |
.hasNext();) { |
// qu'on place dans le poste |
String key = imgIt.next() ; |
String valeur = enCours.renvoyerValeurCorrecte(key) ; |
valeur.replaceAll("'", "\'") ; |
postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ; |
|
String key = imgIt.next(); |
String valeur = enCours.renvoyerValeurCorrecte(key); |
valeur.replaceAll("'", "\'"); |
postData += "&" + key + "=" |
+ enCours.renvoyerValeurCorrecte(key); |
|
} |
|
// on fait un post asynchrone et on les envoie à jrest |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/inventoryImage/"+iModele.getIdentifiant()+"/") ; |
|
|
// on fait un post asynchrone et on les envoie à jrest |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, iModele |
.getConfig().getServiceBaseUrl() |
+ "/inventoryImage/" + iModele.getIdentifiant() + "/"); |
|
try { |
rb.sendRequest(postData, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
|
|
} |
|
public void onResponseReceived(Request request, |
Response response) { |
|
if(response.getText().equals("OK")) |
{ |
return ; |
|
if (response.getText().equals("OK")) { |
return; |
} else { |
com.google.gwt.user.client.Window |
.alert("Problème lors de la mise à jour des données"); |
} |
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(); |
188,50 → 197,54 |
} |
} |
} |
|
|
/** |
* Supprime des image sur le serveur par rapport à leur identifant |
* @param ids un tableau d'identifiants d'images à supprimer |
* Supprime des image sur le serveur par rapport à leur identifant |
* |
* @param ids |
* un tableau d'identifiants d'images à supprimer |
*/ |
public void supprimerBaseDeDonnees(String[] ids) |
{ |
String postData = "" ; |
// on fait un delete dans le post (jrest ne gère pas delete comme une action à part entière) |
postData += "&action=DELETE" ; |
|
String uid = "" ; |
|
public void supprimerBaseDeDonnees(String[] ids) { |
String postData = ""; |
// on fait un delete dans le post (jrest ne gère pas delete comme une |
// action à part entière) |
postData += "&action=DELETE"; |
|
String uid = ""; |
|
// on concatène les ids |
for (int i = 0; i < ids.length; i++) { |
|
uid += ids[i]+"," ; |
|
uid += ids[i] + ","; |
} |
|
|
// et on envoie ça au serveur |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/inventoryImageList/"+iModele.getIdentifiant()+"/"+uid) ; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, iModele |
.getConfig().getServiceBaseUrl() |
+ "/inventoryImageList/" + iModele.getIdentifiant() + "/" + uid); |
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) { |
|
|
// quand la requête est éxecutée on le signale au modèle poru qu'il mette à jour les données |
public void onResponseReceived(Request request, |
Response response) { |
|
// quand la requête est éxecutée on le signale au modèle |
// poru qu'il mette à jour les données |
// et en notifie le médiateur |
iModele.requeteTerminee() ; |
|
} |
}) ; |
|
iModele.requeteTerminee(); |
|
} |
}); |
|
} catch (RequestException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
|
|
} |