Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 747 → Rev 748

/trunk/src/org/tela_botanica/client/http/JsonRestRequestBuilder.java
22,5 → 22,10
}
return requeteSortie;
}
public Request envoyerRequeteSuppression(RequestCallback retour) {
Request requeteSortie = envoyerRequete("action=DELETE", retour);
return requeteSortie;
}
 
}
/trunk/src/org/tela_botanica/client/Modele.java
172,18 → 172,18
 
public void supprimerPersonne(Rafraichissable vueARafraichir, String idStr) {
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir);
personneDao.supprimer(vueARafraichir, idStr);
personneDao.supprimer(idStr);
}
public void ajouterPersonne(Rafraichissable vue, Personne personne) {
PersonneAsyncDao personneDao = new PersonneAsyncDao(vue);
personneDao.ajouter(vue, personne);
personneDao.ajouter(personne);
}
public void modifierPersonne(Rafraichissable vueARafraichir, Personne personne) {
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir);
personneDao.modifier(vueARafraichir, personne);
personneDao.modifier(personne);
}
//+----------------------------------------------------------------------------------------------------------------+
/trunk/src/org/tela_botanica/client/modeles/StructureConservation.java
7,21 → 7,13
 
public class StructureConservation extends aDonnee {
private static final long serialVersionUID = -4556005804101933910L;
 
public static final String PREFIXE = "csc";
 
/**
* Constructeur vide
*
*/
public StructureConservation() {
 
}
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public StructureConservation(JSONObject conservation) {
// L'objet JSON est une table de hachage
Set<String> im = conservation.keySet();
43,6 → 35,11
}
}
 
@Override
protected String getPrefixe() {
return PREFIXE;
}
// FORMATION
public String getFormation() {
return renvoyerValeurCorrecte("mark_formation");
/trunk/src/org/tela_botanica/client/modeles/Structure.java
10,28 → 10,22
 
public class Structure extends aDonnee {
private static final long serialVersionUID = -5623886668593288218L;
 
public static final String PREFIXE = "cs";
public static final String URL_SITE = "WEB";
public static final String URL_LOGO = "LOGO";
private BaseModelData urls = null;
private StructureAPersonneListe personnel = null;
private StructureValorisation valorisation = null;
private StructureConservation conservation = null;
/**
* Constructeur vide
*
*/
public Structure() {
// Constructions du tableau des urls interne
urls = new BaseModelData();
}
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public Structure(JSONObject institution) {
// Constructions du tableau des urls interne
urls = new BaseModelData();
60,6 → 54,11
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
public String getId() {
return renvoyerValeurCorrecte("id_structure");
}
/trunk/src/org/tela_botanica/client/modeles/CollectionBotanique.java
6,6 → 6,9
import com.google.gwt.json.client.JSONObject;
 
public class CollectionBotanique extends aDonnee {
 
private static final long serialVersionUID = -6659148189825855729L;
public static final String PREFIXE = "ccb";
public CollectionBotanique() {
32,6 → 35,11
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
// ID
public String getId() {
return renvoyerValeurCorrecte("id_collection");
55,4 → 63,5
public void setType(String type) {
this.set("ce_truk_type", type);
}
}
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
1,13 → 1,10
package org.tela_botanica.client.modeles;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
29,7 → 26,9
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 3527760464061629791L;
 
protected abstract String getPrefixe();
/**
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
* cette fonction qui retire les charactères nuls qui font planter
180,7 → 179,7
if (valeurs.length > 0) {
if (valeurs[0].contains("##")) {
// Les champs sont typés, on en fait une Map
HashMap mapValeurs = new HashMap();
HashMap<String,String> mapValeurs = new HashMap<String,String>();
for (int i = 0; i < valeurs.length; i++) {
String typeEtValeur[] = valeurs[i].split("##");
mapValeurs.put(typeEtValeur[1], typeEtValeur[0]);
190,7 → 189,7
else {
//Les champs ne sont pas typés, on en fait une Liste
LinkedList listeValeurs = new LinkedList<String>();
LinkedList<String> listeValeurs = new LinkedList<String>();
for (int i = 0; i < valeurs.length; i++) {
if ((valeurs[i]!=null)&&(!valeurs[i].equals(""))) {
listeValeurs.add(valeurs[i]);
387,25 → 386,24
}
/**
* Renvoie une chaine de caractère formatée et encodée pour POST avec toutes les propriétés du modèle
* Renvoie une chaîne de caractère formatée et encodée pour POST avec toutes les propriétés du modèle
* */
public String obtenirChaineJSON() {
public String obtenirChainePOST() {
String post = "";
String chaineJSON = "";
FastMap<?> proprietees = (FastMap<?>) getProperties();
Collection<String> cles = proprietees.keySet();
Iterator<String> it = cles.iterator();
FastMap hmProperties = (FastMap) getProperties();
Collection<String> keys = hmProperties.keySet();
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key = it.next();
chaineJSON += "cp_" + key + "=" + hmProperties.get(key);
String cle = it.next();
post += getPrefixe() + "_" + cle + "=" + proprietees.get(cle);
if (it.hasNext()) {
chaineJSON += "&";
post += "&";
}
}
URL.encode(chaineJSON);
return chaineJSON;
URL.encode(post);
return post;
}
}
/trunk/src/org/tela_botanica/client/modeles/Publication.java
7,29 → 7,16
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.user.client.Window;
 
public class Publication extends aDonnee {
 
/**
* Préfixe à retirer pour construire les noms des clés
* et à rajouter lors de la transformation en requête
*/
private static String prefixe = "cpu_";
private static final long serialVersionUID = 4142843068041690126L;
 
private static final String PREFIXE = "cpu";
/**
* Constructeur vide
*
*/
public Publication() {
public Publication() {
}
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public Publication(JSONObject publication) {
// l'objet JSON est une table de hachage
Set<String> im = publication.keySet();
39,18 → 26,23
// 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("^"+prefixe, "");
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
// Valeur vide par défaut
String valeur = "";
if (publication.get(cle).isString() != null) {
String valeur = publication.get(cle).isString().stringValue();
valeur = publication.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = " ";
this.set(cleObjet, valeur);
}
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
public Publication(String nom_complet, String uri, String auteur, String idAuteur, String collection, String titre, String editeur,
String dateParution, String indicationNvt, String fascicule, String pages) {
this.set("fmt_nom_complet", nom_complet);
155,7 → 147,7
if(cle.equals("id_auteur")) {
reqString += "&"+"cpuap_id_personne="+URL.encode((String)clesValeurs.get(cle));
} else {
reqString += "&"+prefixe+cle+"="+URL.encode((String)renvoyerValeurCorrecte(cle));
reqString += "&"+PREFIXE+cle+"="+URL.encode(renvoyerValeurCorrecte(cle));
}
}
GWT.log(reqString, null);
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonne.java
8,6 → 8,8
public class PublicationAPersonne extends aDonnee {
 
private static final long serialVersionUID = 7769105365939978129L;
private static final String PREFIXE = "cpuap";
 
public PublicationAPersonne(JSONObject pubAPersListe) {
// l'objet JSON est une table de hachage
18,17 → 20,27
// 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("^"+PREFIXE+"_", "");
// Valeur vide par défaut
String valeur = "";
if (pubAPersListe.get(cle).isString() != null) {
String valeur = pubAPersListe.get(cle).isString().stringValue();
this.set(cle, valeur);
valeur = pubAPersListe.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = " ";
this.set(cle, valeur);
this.set(cleObjet, valeur);
}
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
 
public String getIdAuteur() {
return renvoyerValeurCorrecte("cp_id_personne");
}
public String getNomCompletAuteur() {
return renvoyerValeurCorrecte("cp_fmt_nom_complet");
}
41,11 → 53,7
return renvoyerValeurCorrecte("cp_prenom");
}
public String getIdAuteur() {
return renvoyerValeurCorrecte("cp_id_personne");
}
public String getPublication() {
return renvoyerValeurCorrecte("cpuap_id_publication");
return renvoyerValeurCorrecte("id_publication");
}
}
/trunk/src/org/tela_botanica/client/modeles/Personne.java
1,8 → 1,6
package org.tela_botanica.client.modeles;
 
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
 
9,29 → 7,21
import org.tela_botanica.client.util.UtilString;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONObject;
 
public class Personne extends aDonnee {
 
private static final long serialVersionUID = -6974716696155349332L;
 
public static final String PREFIXE = "cp";
public static final String TELEPHONE_FIXE = "FIX";
public static final String TELEPHONE_GSM = "GSM";
public static final String TELEPHONE_FAX = "FAX";
/**
* Constructeur vide
*/
public Personne() {
}
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public Personne(JSONObject liste) {
// l'objet JSON est une table de hachage
Set<String> im = liste.keySet();
60,6 → 50,11
this.set("courriel_princ", this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1));
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
// ID PERSONNE
public String getId() {
return renvoyerValeurCorrecte("id_personne");
161,9 → 156,7
public String getString(String champ) {
return String.valueOf(renvoyerValeurCorrecte(champ));
}
public void setNaissanceDate(Date naissanceDate) {
196,10 → 189,7
fmtNomComplet += suffixe;
}
this.set("fmt_nom_complet", UtilString.ucFirst(fmtNomComplet));
}
 
}
/trunk/src/org/tela_botanica/client/modeles/PersonneListe.java
76,7 → 76,6
}
public int[] getPageTable() {
int[] page = new int[4];
//nombre de pages au total
99,8 → 98,7
* en cours
* @return le nombre de pages
*/
public int calculerNbPages()
{
public int calculerNbPages() {
// A cause de la betise de java pour les conversion implicite on fait quelques conversions manuellement
// pour eviter qu'il arrondisse mal la division
// nombre de pages = (nombre d'element / taille de la page) arrondie à l'entier superieur
115,7 → 113,6
@Override
public void changerNumeroPage(int pageCourante) {
currentPage = pageCourante;
selectionnerPersonne();
}
122,7 → 119,6
 
@Override
public void changerTaillePage(int nouvelleTaillePage) {
nbElementsPage = nouvelleTaillePage;
selectionnerPersonne();
}
132,7 → 128,6
selectionnerPersonne();
}
public void setPageCourante(int pageCourante) {
this.currentPage = pageCourante;
}
141,11 → 136,9
this.nbElementsPage = taillePage;
}
public void selectionnerPersonne() {
Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerPersonne(vueARafraichir, null, null, currentPage, nbElementsPage);
}
}
/trunk/src/org/tela_botanica/client/modeles/PublicationAsyncDao.java
23,7 → 23,7
}
 
public void selectionnerPublication(final String publicationId, String projetId, String nomComplet) {
// Ajout des paramètres et données à selectionner dans l'URL
// Ajout des paramètres et données à sélectionner dans l'URL
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
SERVICE_NOM + "/" +
(projetId == null ? "*" : projetId) + "/" +
38,7 → 38,7
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, reception d'un objet ou d'un tableau
// Si la requête est un succès, réception d'un objet ou d'un tableau
if (responseValue.isObject() != null) {
final JSONObject reponse = responseValue.isObject();
// Transformation du tableau JSON réponse en ListeInstitution
78,11 → 78,11
});
}
 
public void ajouterPublication(String utilisateurId, Publication pubAAjouter) {
public void ajouterPublication(String utilisateurId, Publication publication) {
 
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/";
JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url);
String postDonneesEncodees = pubAAjouter.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId;
String postDonneesEncodees = publication.toReqString()+"&cmhl_ce_modifier_par="+utilisateurId;
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
96,7 → 96,7
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.POST, url+SERVICE_NOM+"/"+utilisateurId+"/"+idPubs);
 
rb.envoyerRequete("action=DELETE", new JsonRestRequestCallback() {
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "suppression_publication");
106,7 → 106,7
private void traiterReponse(JSONValue reponseValeur, String type) {
Information info = new Information(type);
// Si la requête est un succès, reception d'une chaine
// Si la requête est un succès, réception d'une chaîne
if (reponseValeur.isString() != null) {
info.setDonnee(reponseValeur.isString().stringValue());
} else {
/trunk/src/org/tela_botanica/client/modeles/StructureValorisation.java
3,26 → 3,17
import java.util.Iterator;
import java.util.Set;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONObject;
 
public class StructureValorisation extends aDonnee {
private static final long serialVersionUID = 8906713360999774621L;
 
public static final String PREFIXE = "csv";
 
/**
* Constructeur vide
*
*/
public StructureValorisation() {
 
}
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public StructureValorisation(JSONObject valorisation) {
// L'objet JSON est une table de hachage
Set<String> im = valorisation.keySet();
44,6 → 35,11
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
// ACTION
public String getAction() {
return renvoyerValeurCorrecte("mark_action");
161,5 → 157,4
this.set("visite_avec_motif", vam);
}
}
/trunk/src/org/tela_botanica/client/modeles/Collection.java
36,6 → 36,11
}
}
 
@Override
protected String getPrefixe() {
return PREFIXE;
}
// BOTANIQUE
public CollectionBotanique getBotanique() {
return botanique;
197,6 → 202,5
// STRUCTURE VILLE
public String getStructureVille() {
return renvoyerValeurCorrecte("structure_ville");
}
}
}
/trunk/src/org/tela_botanica/client/modeles/Valeur.java
7,11 → 7,10
 
public class Valeur extends aDonnee {
/**
* Constructeur avec un objet JSON
*
* @param image
*/
private static final long serialVersionUID = 2278245640718653819L;
 
public static final String PREFIXE = "cmlv";
 
public Valeur(JSONObject liste) {
// l'objet JSON est une table de hachage
Set<String> im = liste.keySet();
21,7 → 20,7
// 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("^cmlv_", "");
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
if (liste.get(cle).isString() != null) {
String valeur = liste.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
40,6 → 39,11
this.set("description", description);
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
/** Accesseur à l'identifiant de la valeur.
*
* @return String l'identifiant de la valeur.
66,7 → 70,7
/** Accesseur à la description de la valeur.
*
* @return String la descripion de la valeur.
* @return String la description de la valeur.
*/
public String getDescription() {
return (String) renvoyerValeurCorrecte("description");
/trunk/src/org/tela_botanica/client/modeles/Projet.java
6,18 → 6,15
import com.google.gwt.json.client.JSONObject;
 
public class Projet extends aDonnee {
/**
* Constructeur vide
*/
private static final long serialVersionUID = 6733053168274995082L;
 
private static final String PREFIXE = "cpr";
 
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();
27,7 → 24,7
// 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_", "");
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
if (liste.get(cle).isString() != null) {
String valeur = liste.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
39,15 → 36,10
}
}
/**
* 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);
}*/
@Override
protected String getPrefixe() {
return PREFIXE;
}
public String getId() {
return (String) renvoyerValeurCorrecte("id_projet");
56,17 → 48,5
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/PublicationAPersonneAsyncDao.java
4,6 → 4,7
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.http.JsonRestRequestCallback;
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;
25,23 → 26,14
this.vueARafraichir = vueARafraichir;
}
public void selectionnerAuteurAPublication(String projetId, String idAuteurs,
String role, String idPublication) {
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() +
SERVICE_NOM + "/" +
(projetId == null ? "*" : projetId) + "/" +
(idAuteurs == null ? "*" : idAuteurs) + "/" +
(idPublication == null ? "*" : idPublication) + "/" +
"";
url = URL.encode(url);
JsonRestRequestBuilder rb = new JsonRestRequestBuilder(RequestBuilder.GET, url);
public void selectionnerAuteurAPublication(String projetId, String idAuteurs, String role, String idPublication) {
String[] parametres = {projetId, idAuteurs, idPublication};
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, reception d'un objet ou d'un tableau
// Si la requête est un succès, réception d'un objet ou d'un tableau
if (responseValue.isObject() != null) {
final JSONObject reponse = responseValue.isObject();
// Transformation du tableau JSON réponse en ListeInstitution
64,8 → 56,7
});
}
public void ajouterAuteur(String utilisateurid, String idAuteurs,
String role, String idPublication) {
public void ajouterAuteur(String utilisateurid, String idAuteurs, String role, String idPublication) {
 
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/";
// auteur 2360
84,8 → 75,7
}
 
public void modifierAuteur(String utilisateurid, String idAuteurs,
String idPublication) {
public void modifierAuteur(String utilisateurid, String idAuteurs, String idPublication) {
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl()+SERVICE_NOM+"/"
+idPublication+"/"
+idAuteurs+"/"
105,7 → 95,7
private void traiterReponse(JSONValue reponseValeur, String type) {
Information info = new Information(type);
// Si la requête est un succès, reception d'une chaine
// Si la requête est un succès, réception d'une chaîne
if (reponseValeur.isBoolean() != null) {
info.setDonnee(reponseValeur.isBoolean().booleanValue());
} else if (reponseValeur.isString() != null) {
/trunk/src/org/tela_botanica/client/modeles/Utilisateur.java
1,6 → 1,5
package org.tela_botanica.client.modeles;
 
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
 
8,16 → 7,15
 
public class Utilisateur extends aDonnee {
 
private static final long serialVersionUID = -4016615552202089985L;
public static final String PREFIXE = "cp";
public Utilisateur(String id, boolean identifie) {
set("id_personne", id);
set("identifie", identifie);
}
 
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public Utilisateur(JSONObject utilisateur) {
// l'objet JSON est une table de hachage
Set<String> im = utilisateur.keySet();
27,18 → 25,23
// 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("^cp_", "");
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
// Valeur est vide par défaut
String valeur = "";
if (utilisateur.get(cle).isString() != null) {
String valeur = utilisateur.get(cle).isString().stringValue();
valeur = utilisateur.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = " ";
this.set(cleObjet, valeur);
}
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
public void setId(String id) {
set("id_personne", id);
}
/trunk/src/org/tela_botanica/client/modeles/PersonneAsyncDao.java
4,302 → 4,116
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.http.JsonRestRequestCallback;
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.json.client.JSONArray;
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 String utilisateurId = null;
private Rafraichissable vueARafraichir = null;
public PersonneAsyncDao(Rafraichissable vue) {
vueARafraichir = vue;
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
 
public void selectionner(String personneId, String projetId, String nomComplet, final int pageCourante, final int nbElements) {
String[] parametres = {personneId, projetId, nomComplet};
// Ajout des paramètres et données à selectionner dans l'URL
String[] parametres = new String[3];
parametres[0] = (personneId == null ? "*" : personneId);
parametres[1] = (projetId == null ? "*" : projetId);
parametres[2] = (nomComplet == null ? "*" : nomComplet);
HashMap<String, String> hmRestrictions = new HashMap<String, String>();
hmRestrictions.put("start", String.valueOf(pageCourante));
HashMap<String, String> restrictions = new HashMap<String, String>();
restrictions.put("start", String.valueOf(pageCourante));
if (nbElements != -1) {
hmRestrictions.put("limit", String.valueOf(nbElements));
restrictions.put("limit", String.valueOf(nbElements));
}
final RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, hmRestrictions, "GET");
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);
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions, "GET");
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
// Si la requête est un succès, réception 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;
if (reponse.get(0).isArray() != null) {
personnes = new PersonneListe(reponse);
} 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;
if (reponse.get(0).isArray() != null) {
personnes = new PersonneListe(reponse);
} else {
personnes = new PersonneListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
}
personnes.setTaillePage(nbElements);
personnes.setPageCourante(pageCourante);
info.setDonnee(0, personnes);
// et on met à jour le demandeur des données
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
}
} else {
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);
}
}
personnes = new PersonneListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
}
personnes.setTaillePage(nbElements);
personnes.setPageCourante(pageCourante);
info.setDonnee(0, personnes);
// et on met à jour le demandeur des données
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), 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 structureId) {
String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
// Ajout des paramètres et données à supprimer dans l'URL
String[] parametres = new String[2];
parametres[0] = utilisateurId;
parametres[1] = structureId;
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
try {
rb.sendRequest("action=DELETE", 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 supprimer(String structureId) {
String[] parametres = {utilisateurId, structureId};
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue.isString() != null) {
Information info = new Information("suppression_personne", responseValue.isString().stringValue());
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
 
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);
//Affichage des informations de débug
final JSONValue reponseEnteteDeboguage = JSONParser.parse(reponse.getHeader("X-DebugJrest-Data"));
if (reponseEnteteDeboguage.isArray() != null) {
info.setDeboguages(reponseEnteteDeboguage.isArray());
}
GWT.log("DEBOGUAGE:\n"+info.getDeboguages().toString(), null);
Info.display("Une erreur s'est produite lors de la suppression - Err. "+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.");
}
}
});
}
public void ajouter(final Rafraichissable vue, Personne personne) {
String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
// Ajout des paramètres et données à supprimer dans l'URL
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM + "/", null, null, "POST");
try {
String strChaineJson = personne.obtenirChaineJSON();
strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
rb.sendRequest(strChaineJson, new RequestCallback() {
public void ajouter(Personne personne) {
String postDonneesEncodees = personne.obtenirChainePOST();
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
 
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 + " (ajout)", exception);
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue.isString() != null) {
Information info = new Information("ajout_personne", responseValue.isString().stringValue());
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
 
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("ajout_personne", responseValue.isString().stringValue());
vue.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 vaut null", null);
}
}
}
}});
}
catch (RequestException e) {
GWT.log("Exception", e);
}
}
});
}
public void modifier(final Rafraichissable vue, Personne personne) {
public void modifier(Personne personne) {
String postDonneesEncodees = personne.obtenirChainePOST();
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
String utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
String[] parametres = new String [1];
parametres[0] = personne.getId();
// Ajout des paramètres et données à supprimer dans l'URL
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
try {
String strChaineJson = personne.obtenirChaineJSON();
strChaineJson += "&cmhl_ce_modifier_par=" + utilisateurId;
rb.sendRequest(strChaineJson, 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 + " (ajout)", exception);
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête.");
String[] parametres = {personne.getId()};
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, "POST");
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
// Si la requête est un succès, reception d'une chaine
if (responseValue.isString() != null) {
Information info = new Information("modification_personne", responseValue.isString().stringValue());
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
 
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
Information info = new Information("modification_personne", responseValue.isString().stringValue());
if (responseValue.isString() != null) {
vue.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 vaut null", null);
}
}
}
}});
}
catch (RequestException e) {
GWT.log("Exception", e);
}
 
}
});
}
}
/trunk/src/org/tela_botanica/client/modeles/StructureAPersonne.java
6,18 → 6,18
import com.google.gwt.json.client.JSONObject;
 
public class StructureAPersonne extends aDonnee {
 
private static final long serialVersionUID = -7265602594281982891L;
 
public static final String PREFIXE = "csap";
public static final String FONCTION_DIRECTEUR = "2028";
public static final String FONCTION_CONSERVATEUR = "2029";
public static final String FONCTION_TECHNICIEN = "2030";
public static final String ROLE_ADMIN = "2026";
public static final String ROLE_EQUIPE = "2027";
public static final String PREFIXE = "csap";
public static final String ETAT_AJOUTE = "A";
/**
* Constructeur vide
*
*/
public StructureAPersonne() {
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet
set("contact", false);
26,11 → 26,6
set("travail", 0);
}
/**
* Constructeur avec un objet JSON
*
* @param
*/
public StructureAPersonne(JSONObject personnel) {
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet
set("contact", false);
119,6 → 114,11
set("etat", codeEtat);
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
// ID
/** Génère un identifiant de StructureAPersonne.
*
/trunk/src/org/tela_botanica/client/util/UtilDAO.java
4,115 → 4,92
import java.util.Iterator;
 
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.modeles.Configuration;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.URL;
 
/**
* @author Gréguoire DUCHÉ <greguoire@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @description La classe utilDAO fournit des méthodes communes pour les outils DAO
* */
public class UtilDAO {
/**
* @author greg
* @description La classe utilDAO fournit des méthodes communes pour les outils DAO
* */
private static String baseUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
 
public static JsonRestRequestBuilder construireRequete(String nomService) {
return construireRequete(nomService, null, null, "GET");
}
/**
* @author greg
* @description La classe construireRequete permet de revonyer un object RequestBuilder pour le service JREST
* @param nomService String le nom du service JREST
* @param strParametres String le paramètre pour le service
*/
public static JsonRestRequestBuilder construireRequetePost(String nomService) {
return construireRequete(nomService, null, null, "POST");
}
public static RequestBuilder construireRequete(String nomService, String strParametres) {
String[] arrParametres = {strParametres};
return construireRequete(nomService, arrParametres);
public static JsonRestRequestBuilder construireRequete(String nomService, String parametre) {
String[] parametres = {parametre};
return construireRequete(nomService, parametres);
}
/**
*
* @param nomService
* @param arrParametres
* @return
*/
public static RequestBuilder construireRequete(String nomService, String[] arrParametres) {
return construireRequete(nomService, arrParametres, "GET");
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres) {
return construireRequete(nomService, parametres, "GET");
}
public static RequestBuilder construireRequete(String nomService, String[] arrParametres, String typeRequete) {
HashMap<String, String> hmRestrictions = null;
return construireRequete(nomService, arrParametres, hmRestrictions, typeRequete);
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, String typeRequete) {
return construireRequete(nomService, parametres, null, typeRequete);
}
public static RequestBuilder construireRequete(String nomService, HashMap<String, String> hmRestrictions) {
return construireRequete(nomService, hmRestrictions, "GET");
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions) {
return construireRequete(nomService, restrictions, "GET");
}
public static RequestBuilder construireRequete(String nomService, HashMap<String, String> hmRestrictions, String typeRequete) {
 
public static JsonRestRequestBuilder construireRequete(String nomService, HashMap<String, String> restrictions, String typeRequete) {
return construireRequete( nomService, null, restrictions, typeRequete);
}
public static JsonRestRequestBuilder construireRequete(String nomService, String[] parametres, HashMap<String, String> restrictions, String typeRequete) {
String restrictionsUrl = construireUrlParametres(restrictions);
String parametresUrl = construireUrlChemin(parametres);
String[] arrParametres = null;
return construireRequete( nomService, arrParametres, hmRestrictions, typeRequete);
String urlComplete = baseUrl + nomService + parametresUrl + restrictionsUrl;
String urlCompleteEncodee = URL.encode(urlComplete);
JsonRestRequestBuilder jrrb;
if (typeRequete.equals("GET")) {
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.GET, urlCompleteEncodee);
} else {
jrrb = new JsonRestRequestBuilder(JsonRestRequestBuilder.POST, urlCompleteEncodee);
}
return jrrb;
}
public static RequestBuilder construireRequete(String nomService, String[] arrParametres, HashMap<String, String> hmRestrictions, String typeRequete) {
String restrictions = "";
//Les restrictions sont ajoutées en paramètres GET
if ((hmRestrictions!=null)&&(hmRestrictions.size() > 0)) {
Iterator<String> itRestrictions = hmRestrictions.keySet().iterator();
while (itRestrictions.hasNext()) {
String cle = itRestrictions.next();
restrictions += cle + "=" + hmRestrictions.get(cle);
private static String construireUrlParametres(HashMap<String, String> parametres) {
String parametresUrl = "";
if (parametres != null && parametres.size() > 0) {
parametresUrl = "?";
Iterator<String> iterateur = parametres.keySet().iterator();
while (iterateur.hasNext()) {
String cle = iterateur.next();
parametresUrl += cle + "=" + parametres.get(cle);
if (itRestrictions.hasNext()) {
restrictions = restrictions + "&";
if (iterateur.hasNext()) {
parametresUrl = parametresUrl + "&";
}
}
restrictions = "?" + restrictions;
}
String strParametres = "/";
if (arrParametres != null) {
for (int i=0; i < arrParametres.length; i++) {
if (arrParametres[i] != null) {
strParametres += arrParametres[i]+ "/";
}
return parametresUrl;
}
private static String construireUrlChemin(String[] morceauxDuChemin) {
String cheminUrl = "";
if (morceauxDuChemin != null && morceauxDuChemin.length > 0) {
cheminUrl = "/";
for (int i = 0; i < morceauxDuChemin.length; i++) {
cheminUrl += (morceauxDuChemin[i] != null ? morceauxDuChemin[i] : "*") + "/";
}
}
String wholeUrl = baseUrl + nomService + strParametres + restrictions;
wholeUrl = URL.encode(wholeUrl);
RequestBuilder rb;
if (typeRequete.equals("GET")) {
rb = new RequestBuilder(RequestBuilder.GET, wholeUrl);
} else {
rb = new RequestBuilder(RequestBuilder.POST, wholeUrl);
}
return rb;
return cheminUrl;
}
/**
*
* @param nomService String le nom du service
* @return un objet RB
*/
public static RequestBuilder construireRequete(String nomService) {
String[] arrParametres = null;
return construireRequete(nomService, arrParametres);
}
 
}
}