4,7 → 4,9 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.util.UtilDAO; |
|
import com.extjs.gxt.ui.client.GXT; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestBuilder; |
17,9 → 19,7 |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.Window; |
|
|
public class ProjetsListeAsyncDao { |
|
|
private ProjetsListe projets = null; |
private Rafraichissable rafraichissement = null; |
29,72 → 29,64 |
} |
|
public void obtenirListeProjets() { |
|
// Appel du service JREST pour avoir toutes les personnes |
RequestBuilder rb = UtilDAO.construireRequete("CoelProjetsListe"); |
|
// Appel du service JREST pour avoir toutes les personnes |
RequestBuilder rb = UtilDAO.construireRequete("CoelProjetsListe"); |
try { |
rb.sendRequest(null, new RequestCallback() { |
|
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 |
* */ |
// Gestion de l'exception lorsque la requête ne se termine pas correctement |
GWT.log("Erreur à l'exécution du service CoelProjetsListe", exception); |
Window.alert("Une erreur s'est produite lors de l'accès aux données"); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
|
|
public void onErrorHTTP(Request request, Response reponse) { |
// Gestion des erreurs HTTP renvoyé par Apache ou JRest |
Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray()); |
GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null); |
Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString()); |
} |
|
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 { |
// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP |
if (response.getStatusCode() != 200) { |
onErrorHTTP(request, response); |
} else { |
// 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 |
projets = new ProjetsListe(reponse); |
|
} |
|
} |
catch (JSONException e) { |
|
} 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 projets."); |
} |
} |
|
if (projets == null) { |
|
// Si la requete est vide, il faut toutefois retourner une liste, vide. |
projets = new ProjetsListe(); |
} |
|
// On met à jour le demandeur des données |
rafraichissement.rafraichir(projets); |
|
} |
|
// Si la requete est vide, il faut toutefois retourner une liste, vide. |
if (projets == null) { |
projets = new ProjetsListe(); |
} |
|
// On met à jour le demandeur des données |
rafraichissement.rafraichir(projets); |
} |
|
}); |
|
} 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"); |
// 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"); |
} |
|
|
} |
|
} |
} |