/trunk/src/org/tela_botanica/client/Modele.java |
---|
5,12 → 5,12 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.PersonnesAsyncDao; |
import org.tela_botanica.client.modeles.ProjetsListe; |
import org.tela_botanica.client.modeles.ProjetsListeAsyncDao; |
import org.tela_botanica.client.modeles.PersonneAsyncDao; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.ProjetAsyncDao; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.PublicationListeAsyncDao; |
import org.tela_botanica.client.modeles.PublicationAsyncDao; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureAPersonne; |
import org.tela_botanica.client.modeles.StructureAPersonneAsyncDao; |
46,8 → 46,8 |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListePublication((PublicationListe) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof PersonneListe) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListePersonnes((PersonneListe) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof ProjetsListe) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeProjets((ProjetsListe) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof ProjetListe) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeProjets((ProjetListe) nouvelleDonnees); |
} |
} |
67,7 → 67,7 |
// pour obtenir la liste de personne et la fournir à des éléments spécifiques |
public void obtenirListePersonnes(Rafraichissable r) { |
// Lance le service JREST associé au personne via la class PersonneListeAsyncDAO |
PersonnesAsyncDao plDao = new PersonnesAsyncDao(r); |
PersonneAsyncDao plDao = new PersonneAsyncDao(r); |
plDao.obtenirListePersonnes(); |
} |
153,14 → 153,14 |
//+----------------------------------------------------------------------------------------------------------------+ |
public void obtenirListeProjets () { |
ProjetsListeAsyncDao projetsDao = new ProjetsListeAsyncDao(this); |
projetsDao.obtenirListeProjets(); |
ProjetAsyncDao projetsDao = new ProjetAsyncDao(this); |
projetsDao.selectionner(); |
} |
public void supprimerPersonne(Rafraichissable vue, String utilisateurId, |
String idStr) { |
PersonnesAsyncDao personneDao = new PersonnesAsyncDao(vue); |
PersonneAsyncDao personneDao = new PersonneAsyncDao(vue); |
personneDao.supprimer(vue, utilisateurId, idStr); |
} |
171,12 → 171,12 |
public void obtenirListePersonnes() { |
// Lance le service JREST associé au personne via la class PersonneListeAsyncDAO |
PersonnesAsyncDao plDao = new PersonnesAsyncDao(this); |
PersonneAsyncDao plDao = new PersonneAsyncDao(this); |
plDao.obtenirListePersonnes(); |
} |
public void selectionnerPersonne(Rafraichissable vue, String personneId, String projetId, String nomComplet) { |
PersonnesAsyncDao pDao = new PersonnesAsyncDao(vue); |
PersonneAsyncDao pDao = new PersonneAsyncDao(vue); |
pDao.selectionner(personneId, projetId, nomComplet); |
} |
185,17 → 185,17 |
//+----------------------------------------------------------------------------------------------------------------+ |
public void obtenirListePublications() { |
PublicationListeAsyncDao lsDao = new PublicationListeAsyncDao(this); |
PublicationAsyncDao lsDao = new PublicationAsyncDao(this); |
lsDao.obtenirListePublication(); |
} |
public void modifierPublication(String utilisateurId, Publication publi) { |
PublicationListeAsyncDao pDao = new PublicationListeAsyncDao(this); |
PublicationAsyncDao pDao = new PublicationAsyncDao(this); |
pDao.modifierPublication(this, utilisateurId, publi); |
} |
public void ajouterPublication(String utilisateurId, Publication publi) { |
PublicationListeAsyncDao pDao = new PublicationListeAsyncDao(this); |
PublicationAsyncDao pDao = new PublicationAsyncDao(this); |
pDao.ajouterPublication(this, utilisateurId, publi); |
} |
209,7 → 209,7 |
idPubs += ","; |
} |
} |
PublicationListeAsyncDao pDao = new PublicationListeAsyncDao(this); |
PublicationAsyncDao pDao = new PublicationAsyncDao(this); |
pDao.supprimerPublication(this, utilisateurId, idPubs); |
} |
/trunk/src/org/tela_botanica/client/modeles/PublicationListeAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/PersonnesAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ProjetsListeAsyncDao.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/ProjetsListe.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/PublicationAsyncDao.java |
---|
New file |
0,0 → 1,193 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.Modele; |
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.JSONObject; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.Window; |
public class PublicationAsyncDao { |
private static final String SERVICE_NOM = "CoelPublication"; |
private PublicationListe publications = null; |
private Rafraichissable rafraichissement = null; |
public PublicationAsyncDao(Rafraichissable r) { |
rafraichissement = r ; |
} |
public void obtenirListePublication() { |
// Demande de toutes les structures |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url+SERVICE_NOM+"/"); |
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) { |
Boolean defaut = true; |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
publications = new PublicationListe(reponse); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(publications); |
// Tout c'est bien déroulé, on courcircuite l'affichage par défaut |
defaut = false; |
} |
} |
if (defaut == true) { |
publications = new PublicationListe(0); |
rafraichissement.rafraichir(publications); |
} |
} |
}); |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
public void modifierPublication(final Rafraichissable r, String utilisateurId, Publication pubAModifier) { |
// Demande de toutes les structures |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"+pubAModifier.getId()); |
try { |
rb.sendRequest(pubAModifier.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, Response response) { |
Boolean defaut = true; |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
publications = new PublicationListe(reponse); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(publications); |
// Tout c'est bien déroulé, on courcircuite l'affichage par défaut |
defaut = false; |
} |
} |
if (defaut == true) { |
publications = new PublicationListe(0); |
rafraichissement.rafraichir(publications); |
} |
} |
}); |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
public void ajouterPublication(Modele modele, String utilisateurId, Publication pubAModifier) { |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"); |
try { |
rb.sendRequest(pubAModifier.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO Auto-generated method stub |
} |
public void onResponseReceived(Request request, Response response) { |
Boolean defaut = true; |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
publications = new PublicationListe(reponse); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(publications); |
// Tout c'est bien déroulé, on courcircuite l'affichage par défaut |
defaut = false; |
} |
} |
if (defaut == true) { |
publications = new PublicationListe(0); |
rafraichissement.rafraichir(publications); |
} |
} |
}); |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
public void supprimerPublication(Modele modele, String utilisateurId, |
String idPubs) { |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"+utilisateurId+"/"+idPubs); |
try { |
rb.sendRequest("action=DELETE", new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
GWT.log("Erreur dans la requête de suppression", exception); |
} |
public void onResponseReceived(Request request, Response response) { |
Boolean defaut = true; |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
publications = new PublicationListe(reponse); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(publications); |
// Tout c'est bien déroulé, on courcircuite l'affichage par défaut |
defaut = false; |
} |
} |
if (defaut == true) { |
publications = new PublicationListe(0); |
rafraichissement.rafraichir(publications); |
} |
} |
}); |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java |
---|
1,10 → 1,5 |
package org.tela_botanica.client.modeles; |
/** |
* Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour |
* |
*/ |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
17,13 → 12,17 |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONBoolean; |
import com.google.gwt.json.client.JSONNull; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.json.client.JSONValue; |
/** |
* Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour |
* |
*/ |
public class UtilisateurAsyncDao { |
private static final String SERVICE_NOM = "CoelUtilisateur"; |
private Utilisateur utilisateur = null; |
private String urlServiceBase = null; |
private Rafraichissable rafraichissement = null; |
43,7 → 42,7 |
*/ |
public void getEtatUtilisateur() { |
// Recherche identifiant utilisateur identifie |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/") ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
75,7 → 74,7 |
* @param identifiant de l'utilisateur à déconnecter. |
*/ |
public void deconnecterUtilisateur() { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getId()) ; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/"+utilisateur.getId()) ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
112,7 → 111,7 |
public void connecterUtilisateur () { |
String login = utilisateur.getLogin(); |
String password = utilisateur.getMotDePasse(); |
String url = urlServiceBase+"CoelUtilisateur/"; |
String url = urlServiceBase+SERVICE_NOM+"/"; |
if (login != null & password != null) { |
url = url+login+"/"+password; |
/trunk/src/org/tela_botanica/client/modeles/ProjetListe.java |
---|
New file |
0,0 → 1,90 |
package org.tela_botanica.client.modeles; |
import java.util.LinkedHashMap; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO |
* La clé est le nom de l'entite + le nom de l'entite parente |
* |
* @author david delon |
* |
*/ |
public class ProjetListe extends LinkedHashMap<String, Projet> { |
private int id = 0; |
/** |
* Constructeur sans paramètres |
*/ |
public ProjetListe() { |
super(); |
} |
/** |
* Constructeur avec paramètre |
* @param taille la taille de la table de hachage |
*/ |
public ProjetListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste de projets |
* @param dates |
*/ |
public ProjetListe(JSONArray projetsListe) { |
super(projetsListe.size()); |
final int taillemax = projetsListe.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject projetCourant = projetsListe.get(i).isObject() ; |
if (projetCourant != null) { |
Projet projet = new Projet(projetCourant); |
this.put(projet.getId(), projet); |
} |
} |
} |
/*public PersonneListe(JSONString listeId, JSONArray listePersonnes) { |
super(listePersonnes.size()); |
this.setId(Integer.parseInt(listeId.stringValue())); |
//this.constuireObjet(listePersonnes); |
}*/ |
/*private void constuireObjet(JSONArray liste) |
{ |
final int taillemax = liste.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject listeValeur = liste.get(i).isObject() ; |
if (listeValeur != null) { |
Valeur valeur = new Valeur(listeValeur); |
this.put(valeur.getId(), valeur); |
} |
} |
}*/ |
/** |
* @param id l'identifiant à définir |
*/ |
public void setId(int id) { |
this.id = id; |
} |
/** |
* @return l'identifiant de la liste |
*/ |
public Integer getId() { |
return id; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/PersonneAsyncDao.java |
---|
New file |
0,0 → 1,255 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.util.UtilDAO; |
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; |
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.http.client.URL; |
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 PersonneAsyncDao { |
private static final String SERVICE_NOM = "CoelPersonne"; |
private PersonneListe personnes = null; |
private Rafraichissable rafraichissement = null; |
public PersonneAsyncDao(Rafraichissable r) { |
rafraichissement = r; |
} |
// TODO : utiliser à la place la méthode sélectionner |
public void obtenirDetailPersonne(String personneId) { |
//RequestBuilder rb = UtilDAO.construireRequete("CoelPersonneListe"); |
Window.alert("lalal"); |
} |
// TODO : utiliser à la place la méthode sélectionner |
public void obtenirListePersonnes() { |
Integer idProjet = null; |
if (Registry.get(RegistreId.PROJET) != null) { |
idProjet = Integer.parseInt((String) Registry.get(RegistreId.PROJET)); |
} |
obtenirListePersonnes(idProjet); |
} |
// TODO : utiliser à la place la méthode sélectionner |
public void obtenirListePersonnes(Integer idProjet) { |
// Appel du service JREST pour avoir toutes les personnes |
String[] parametres = null; |
if (idProjet != null) { |
parametres = new String[2]; |
parametres[0] = "*"; |
parametres[1] = idProjet.toString(); |
} |
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
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 "+SERVICE_NOM+" (obtenir)", e); |
Window.alert("Une erreur s'est produite lors de l'accès aux données"); |
} |
} |
public void selectionner(String personneId, String projetId, String nomComplet) { |
// Ajout des paramètres et données à selectionner dans l'URL |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
SERVICE_NOM + "/" + |
(personneId == null ? "*" : personneId) + "/" + |
(projetId == null ? "*" : projetId) + "/" + |
(nomComplet == null ? "*" : URL.encodeComponent(nomComplet)) + "/" + |
""; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url); |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (selection)", exception); |
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) { |
// 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 { |
if (response.getText().length() != 0 && response.getText() != null) { |
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 ListeInstitution |
Information info = new Information("liste_personne"); |
PersonneListe personnes = new PersonneListe(reponse); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(info); |
} else { |
GWT.log(url+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
GWT.log(url, null); |
if (response.getText().length() == 0) { |
GWT.log("\tLa réponse a une taille de 0", null); |
} |
if (response.getText() == null) { |
GWT.log("\tLa réponse vaul null", null); |
} |
} |
} |
} |
}); |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (selection)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
public void supprimer(final Rafraichissable r, String utilisateurId, String structureId) { |
// Ajout des paramètres et données à supprimer dans l'URL |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
SERVICE_NOM + "/" + |
utilisateurId + "/" + |
structureId + |
""; |
// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url); |
String postDonnees = "action=DELETE"; |
try { |
rb.sendRequest(postDonnees, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception); |
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) { |
// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanisme d'erreur HTTP |
if (response.getStatusCode() != 200) { |
onErrorHTTP(request, response); |
} else { |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_personne", responseValue.isString().stringValue()); |
r.rafraichir(info); |
} else { |
GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} else { |
GWT.log(url, null); |
if (response.getText().length() == 0) { |
GWT.log("\tLa réponse a une taille de 0", null); |
} |
if (response.getText() == null) { |
GWT.log("\tLa réponse vaul null", null); |
} |
} |
} |
} |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java |
---|
17,17 → 17,22 |
import com.google.gwt.json.client.JSONValue; |
public class ValeurListeAsyncDao { |
private static final String SERVICE_NOM = "CoelValeurListe"; |
private Rafraichissable rafraichissement = null; |
private Rafraichissable vue = null; |
public ValeurListeAsyncDao(Rafraichissable r) { |
rafraichissement = r; |
public ValeurListeAsyncDao() { |
// TODO Auto-generated constructor stub |
} |
public ValeurListeAsyncDao(Rafraichissable vueARafraichir) { |
vue = vueARafraichir; |
} |
public void obtenirListe(Integer cle) { |
// Demande de toutes les structures |
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
url = url+"CoelValeurListe/id/"+cle.toString(); |
url = url+SERVICE_NOM+"/id/"+cle.toString(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url); |
//GWT.log(url, null); |
try { |
51,7 → 56,7 |
// Transformation du tableau JSON réponse en Liste |
ValeurListe liste = new ValeurListe(listeId, listeValeurs); |
// et on met à jour le demandeur des données |
rafraichissement.rafraichir(liste); |
vue.rafraichir(liste); |
} catch (NullPointerException e) { |
e.printStackTrace(); |
} |
63,8 → 68,4 |
e.printStackTrace(); |
} |
} |
public ValeurListeAsyncDao() { |
// TODO Auto-generated constructor stub |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/StructureAsyncDao.java |
---|
19,7 → 19,7 |
public class StructureAsyncDao { |
private static final String SERVICE_NOM = "CoelStructureListe"; |
private static final String SERVICE_NOM = "CoelStructure"; |
public void selectionner(final Rafraichissable vue, String idUtilisateur, final String projetId, final String structureId) { |
// Ajout des paramètres et données à selectionner dans l'URL |
35,7 → 35,7 |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service CoelStructureListe (selection)", exception); |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (selection)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
133,7 → 133,7 |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service CoelStructureListe (ajout)", exception); |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (ajout)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
174,7 → 174,7 |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service CoelProjetsListe", e); |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (ajouter)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
196,7 → 196,7 |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service CoelStructureListe (suppression)", exception); |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
237,7 → 237,7 |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service CoelProjetsListe", e); |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
312,7 → 312,7 |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service CoelStructureListe (modif)", exception); |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (modif)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
353,7 → 353,7 |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service CoelProjetsListe", e); |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (modif)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ProjetAsyncDao.java |
---|
New file |
0,0 → 1,89 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.util.UtilDAO; |
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; |
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; |
public class ProjetAsyncDao { |
private static final String SERVICE_NOM = "CoelProjet"; |
private ProjetListe projets = null; |
private Rafraichissable rafraichissement = null; |
public ProjetAsyncDao(Rafraichissable r) { |
rafraichissement = r; |
} |
public void selectionner() { |
// Appel du service JREST pour avoir toutes les personnes |
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM); |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (selectionner)", exception); |
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) { |
// 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 ProjetListe(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); |
Info.display("Erreur DAO", "Échec du traitement des données des projets."); |
} |
} |
} |
// Quelque soit l'issue, il faut retourner une liste vide. |
if (projets == null) { |
projets = new ProjetListe(); |
} |
// Mise à jour du demandeur des données |
rafraichissement.rafraichir(projets); |
} |
}); |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (selectionner)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
13,7 → 13,7 |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetsListe; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.Structure; |
502,7 → 502,7 |
((Modele) Registry.get(RegistreId.MODELE)).obtenirListeProjets(); |
} |
public void afficherListeProjets(ProjetsListe projets) { |
public void afficherListeProjets(ProjetListe projets) { |
((MenuPanneauVue) Registry.get(RegistreId.PANNEAU_OUEST)).rafraichir(projets); |
} |
/trunk/src/org/tela_botanica/client/Coel.java |
---|
37,5 → 37,6 |
// J'appelle directement la page où je travaille |
Mediateur mediat = Registry.get(RegistreId.MEDIATEUR); |
mediat.clicMenu("Institutions"); |
//mediat.clicAjouterStructure(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/MenuPanneauVue.java |
---|
10,7 → 10,7 |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.modeles.Menu; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetsListe; |
import org.tela_botanica.client.modeles.ProjetListe; |
import com.extjs.gxt.ui.client.Events; |
import com.extjs.gxt.ui.client.Registry; |
46,12 → 46,12 |
public void rafraichir(Object nouvelleDonnees) { |
if (nouvelleDonnees instanceof Menu) { |
afficherMenu((Menu) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof ProjetsListe) { |
afficherProjets((ProjetsListe) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof ProjetListe) { |
afficherProjets((ProjetListe) nouvelleDonnees); |
} |
} |
private void afficherProjets(ProjetsListe projets) { |
private void afficherProjets(ProjetListe projets) { |
Collection<Projet> valeursProjets = projets.values(); |
Iterator it = valeursProjets.iterator(); |
/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java |
---|
1389,7 → 1389,6 |
}); |
cp.add(grillePersonnel); |
personnelOnglet.add(cp); |