Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 146 → Rev 147

/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");
}
}
}