New file |
0,0 → 1,99 |
package org.tela_botanica.client.modeles; |
|
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
|
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
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.JSONException; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.Window; |
|
|
public class PersonneListeAsyncDao { |
|
|
private PersonneListe personnes = null; |
private Rafraichissable rafraichissement = null; |
|
public PersonneListeAsyncDao(Rafraichissable r) { |
rafraichissement = r; |
} |
|
public void obtenirListePersonnes() { |
|
// Appel du service JREST pour avoir toutes les personnes |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url+"CoelPersonneListe/"); |
|
try { |
rb.sendRequest(null, new RequestCallback() { |
|
public void onError(Request request, Throwable exception) { |
/* |
* Gestion de l'exception lorsque la requête ne se termine pas correctement |
* */ |
GWT.log("Erreur à l'exécution du service CoelPersonneListe", exception); |
Window.alert("Une erreur s'est produite lors de l'accès aux données"); |
} |
|
public void onResponseReceived(Request request, Response response) { |
|
/* |
* La requête doit renvoyer une chaîne de caratères, parsable avec JSON |
* Si ce n'est pas le cas, on log une erreur |
* */ |
|
if (!response.getText().equals("")) { |
|
try { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
|
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
|
final JSONArray reponse = responseValue.isArray(); |
|
// Transformation du tableau JSON réponse en ListePersonnes |
personnes = new PersonneListe(reponse); |
} |
|
} |
catch (JSONException e) { |
|
// Cette exception est levée si la chaîne de caractère n'a pu être parsée par JSON |
GWT.log("ERREUR parsing JSON", e); |
Window.alert("Une erreur s'est produite lors de la récupération des personnes."); |
} |
} |
|
if (personnes == null) { |
|
// Si la requete est vide, il faut toutefois retourner une liste, vide. |
personnes = new PersonneListe(); |
} |
|
// On met à jour le demandeur des données |
rafraichissement.rafraichir(personnes); |
|
} |
}); |
|
} catch (RequestException e) { |
|
// Erreur à la création de la requête : url non-valide? |
GWT.log("Erreur à la création de la requete pour CoelPersonneListe", e); |
Window.alert("Une erreur s'est produite lors de l'accès aux données"); |
} |
|
|
} |
|
} |