/trunk/src/org/tela_botanica/client/modeles/ProjetsListe.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 ProjetsListe extends LinkedHashMap<String, Projet> { |
private int id = 0; |
/** |
* Constructeur sans paramètres |
*/ |
public ProjetsListe() { |
super(); |
} |
/** |
* Constructeur avec paramètre |
* @param taille la taille de la table de hachage |
*/ |
public ProjetsListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste de projets |
* @param dates |
*/ |
public ProjetsListe(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/Projet.java |
---|
New file |
0,0 → 1,72 |
package org.tela_botanica.client.modeles; |
import java.util.Iterator; |
import java.util.Set; |
import com.google.gwt.json.client.JSONObject; |
public class Projet extends aDonnee { |
/** |
* Constructeur vide |
*/ |
public Projet() { |
this.set("mark_contact", false); |
} |
/** |
* Constructeur avec un objet JSON |
* |
* @param image |
*/ |
public Projet(JSONObject liste) { |
// l'objet JSON est une table de hachage |
Set<String> im = liste.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^cpr_", ""); |
if (liste.get(cle).isString() != null) { |
String valeur = liste.get(cle).isString().stringValue(); |
this.set(cleObjet, valeur); |
} else { |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = " "; |
this.set(cleObjet, valeur); |
} |
} |
} |
/** |
* Constructeur avec la fonction à passer en paramètre |
* |
* @param image |
* |
/*public Projets(String fonction) { |
this.set("ce_truk_fonction", fonction); |
this.set("mark_contact", false); |
}*/ |
public String getId() { |
return (String) renvoyerValeurCorrecte("id_projet"); |
} |
public String getNom() { |
return (String) renvoyerValeurCorrecte("nom"); |
} |
/*public String getFonction() { |
String fonction = (String) renvoyerValeurCorrecte("ce_truk_fonction"); |
if (fonction.equals(Valeur.FONCTION_DIRECTEUR)) { |
return "Directeur"; |
} else if (fonction.equals(Valeur.FONCTION_CONSERVATEUR)) { |
return "Conservateur"; |
} else { |
return ""; |
} |
}*/ |
} |
/trunk/src/org/tela_botanica/client/modeles/ProjetsListeAsyncDao.java |
---|
New file |
0,0 → 1,100 |
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.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 ProjetsListeAsyncDao { |
private ProjetsListe projets = null; |
private Rafraichissable rafraichissement = null; |
public ProjetsListeAsyncDao(Rafraichissable r) { |
rafraichissement = r; |
} |
public void obtenirListeProjets() { |
// Appel du service JREST pour avoir toutes les personnes |
RequestBuilder rb = UtilDAO.construireRequete("CoelProjetsListe"); |
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 CoelProjetsListe", 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 |
projets = new ProjetsListe(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 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); |
} |
}); |
} 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"); |
} |
} |
} |