Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1291 → Rev 1292

/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneListe.java
20,8 → 20,7
public PublicationAPersonneListe(JSONArray auteurs) {
super(auteurs.size()) ;
final int taillemax = auteurs.size();
final int taillemax = auteurs.size();
for (int i = 0; i < taillemax; i++) {
JSONObject publicationAPersonneCourante = auteurs.get(i).isObject() ;
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneAsyncDao.java
29,18 → 29,8
}
public void selectionner(String publicationId, String personnesId, String roleId) {
Debug.log("|> BEGIN PublicationAPersonneAsyncDAO.selectionner(String publicationId, String personnesId, String roleId)");
Debug.log("|--> Requete, publicationId="+publicationId+", personnesId="+personnesId+", roleId="+roleId);
 
String[] parametres = {publicationId, personnesId, roleId};
Debug.log("|--> Requete, SERVICE_NOM ="+SERVICE_NOM);
Debug.log("|--> Requete, parametres ="+parametres);
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
49,53 → 39,30
if (responseValue.isObject() != null) {
final JSONObject reponse = responseValue.isObject();
// Transformation du tableau JSON réponse en ListeInstitution
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
Debug.log("|--> PublicationAPersonneAsyncDAO.selectionner() : publicationAPersonne="+publicationAPersonne.toString());
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
// et on met à jour le demandeur des données
vueARafraichir.rafraichir(publicationAPersonne);
} else if (responseValue.isArray() != null) {
Debug.log("|--> PublicationAPersonneAsyncDAO.selectionner() : responseValue.isArray()");
} else if (responseValue.isArray() != null) {
final JSONArray reponse = responseValue.isArray();
PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
Debug.log("|--> PublicationAPersonneAsyncDAO.selectionner() : publicationsAPersonneListe="+publicationsAPersonneListe.toString());
Debug.log("|--> PublicationAPersonneAsyncDAO.selectionner() : appel à rafraichir(publicationsAPersonneListe)");
 
vueARafraichir.rafraichir(publicationsAPersonneListe);
} else {
GWT.log("La réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null);
}
} else {
Debug.log("|--> PublicationAPersonneAsyncDAO.selectionner() : ELSE");
} else {
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
vueARafraichir.rafraichir(publicationAPersonneListe);
}
}
});
Debug.log("|> END PublicationAPersonneAsyncDAO.selectionner(String publicationId, String personnesId, String roleId)");
});
}
public void ajouter(String publicationId, String personnesId, String roleId) {
Debug.log("<8-8> BEGIN PublicationAPersonneAsyncDao.ajouter()");
 
Debug.log("<8-8> Service_nom="+SERVICE_NOM);
 
String postDonneesEncodees = "cpuap_id_publication="+URL.encodeComponent(publicationId)
+"&cpuap_id_auteur="+URL.encodeComponent(personnesId)
+"&cpuap_id_role="+URL.encodeComponent(roleId)
+"&cmhl_ce_modifier_par="+utilisateurId;
Debug.log("<8-8> postDonneesEncodees="+postDonneesEncodees);
+"&cmhl_ce_modifier_par="+utilisateurId;
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
103,8 → 70,6
traiterReponse(reponseValeur, "ajout_publication_a_personne");
}
});
Debug.log("<8-8> END PublicationAPersonneAsyncDao.ajouter()");
}
 
public void modifier(String publicationId, String personnesId, String roleId) {
125,11 → 90,7
public void supprimer(String idPublicationAPersonne) {
String[] parametres = {utilisateurId, idPublicationAPersonne};
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
Debug.log("888> BEGIN PublicationAPersonneAsyncDao.supprimer()");
Debug.log("888> idPublicationAPersonne="+idPublicationAPersonne);
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
142,8 → 103,6
}
}
});
Debug.log("888> END PublicationAPersonneAsyncDao.supprimer()");
}
private void traiterReponse(JSONValue reponseValeur, String type) {
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java
82,8 → 82,6
String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
Debug.log("|> PublicationAsyncDao.ajouter(Publication publication) : postDonneesEncodees="+postDonneesEncodees);
 
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
/trunk/src/org/tela_botanica/client/modeles/Valeur.java
3,6 → 3,9
import java.util.Iterator;
import java.util.Set;
 
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class Valeur extends aDonnee {
44,6 → 47,17
this.set("description", description);
}
public Valeur(ModelData model)
{
Debug.log("id_valeur = "+model.get("cmlv_id_valeur"));
Debug.log("nom = "+model.get("cmlv_nom"));
this.set("id_valeur", model.get("cmlv_id_valeur"));
this.set("nom", model.get("cmlv_nom"));
this.set("abreviation", model.get("cmlv_abreviation"));
this.set("description", model.get("cmlv_description"));
}
@Override
protected String getPrefixe() {
return PREFIXE;
/trunk/src/org/tela_botanica/client/modeles/ValeurListe.java
1,6 → 1,19
package org.tela_botanica.client.modeles;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
 
18,7 → 31,13
*/
private static final long serialVersionUID = 7784635999621813450L;
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
private int nbElementsTotal;
// Id de la meta-liste dans la base de données
private int id = 0;
private String abv = "";
/**
* Constructeur sans paramètres
49,7 → 68,16
this.constuireObjet(listeValeurs);
}
private void constuireObjet(JSONArray liste) {
public ValeurListe(JSONString listeId, String abv, JSONArray listeValeurs, JSONNumber nbElements) {
super(listeValeurs.size());
this.setId(Integer.parseInt(listeId.stringValue()));
this.abv = abv;
this.setNbElementsTotal(nbElements.toString());
this.constuireObjet(listeValeurs);
}
protected void constuireObjet(JSONArray liste) {
final int taillemax = liste.size();
for (int i = 0; i < taillemax; i++) {
68,6 → 96,10
public void setId(int id) {
this.id = id;
}
public void setNbElementsTotal(String nbElements) {
this.nbElementsTotal = Integer.parseInt(nbElements);
}
 
/**
* @return l'identifiant de la liste
76,7 → 108,34
return id;
}
public String getFullId() {
return (id+abv);
}
public void ajouter(Valeur val) {
this.put(val.getId(), val);
}
public ValeurListe cloner()
{
ValeurListe l = new ValeurListe();
Iterator i = this.keySet().iterator();
while (i.hasNext())
{
String clef = (String)i.next();
Valeur valeur = this.get(clef);
l.put(clef, valeur);
}
 
return l;
}
public void concatenerListe(ValeurListe lv) {
this.putAll(lv);
this.setId(lv.getId());
}
 
}
 
 
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
430,20 → 430,20
* 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 obtenirChainePOST() {
String post = "";
FastMap<?> proprietees = (FastMap<?>) getProperties();
Collection<String> cles = proprietees.keySet();
Iterator<String> it = cles.iterator();
System.out.println(cles);
while (it.hasNext()) {
String cle = it.next();
//Les Radio Box couplées à la fonction autobind créer des variables gxt.RadioGroup.X, qu'il ne faut pas mettre dans la requête
//Les Radio Box couplées à la fonction autobind créent des variables gxt.RadioGroup.X, qu'il ne faut pas mettre dans la requête
if (!cle.startsWith("gxt.")&&!cle.matches("^_.+_$")) {
//Si, et seulement si, la valeur diffère de la valeur initiale OU la clé est dans les champs obligatoire
if (Arrays.asList(getChampsObligatoires()).contains(getPrefixe() + "_" + cle) || ((valeursInitiales.get(cle) != null&& !valeursInitiales.get(cle).equals(get(cle)))||valeursInitiales.get(cle) == null)) {
if (Arrays.asList(getChampsObligatoires()).contains(getPrefixe() + "_" + cle) || ((valeursInitiales.get(cle) != null && !valeursInitiales.get(cle).equals(get(cle))) || valeursInitiales.get(cle) == null)) {
post += getPrefixe() + "_" + cle + "=" + URL.encodeComponent(renvoyerValeurCorrecte(cle));
if (it.hasNext()) {
post += "&";
451,6 → 451,7
}
}
}
return post;
}
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneAsyncDao.java
27,7 → 27,6
}
 
public void selectionner(String personneId, String projetId, String nomComplet, final int pageCourante, final int nbElements) {
 
String[] parametres = {personneId, projetId, nomComplet};
HashMap<String, String> restrictions = new HashMap<String, String>();
52,8 → 51,7
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);
67,11 → 65,9
});
}
public void ajouter(Personne personne) {
public void ajouter(Personne personne) {
String postDonneesEncodees = personne.obtenirChainePOST();
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId;
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
89,7 → 85,7
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
}
});
});
}
public void modifier(Personne personne) {
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java
101,8 → 101,7
}
public void modifier(Collection collection) {
String postDonneesEncodees = construirePost(collection.getId(), collection);
String postDonneesEncodees = construirePost(collection.getId(), collection);
String[] parametres = {collection.getId()};
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java
57,7 → 57,7
});
}
 
public void ajouter(String structureId, StructureAPersonne personnel) {
public void ajouter(String structureId, StructureAPersonne personnel) {
String postDonneesEncodees = construirePost(structureId, personnel);
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
72,7 → 72,7
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
}
});
});
}
public void modifier(StructureAPersonne personnel) {
/trunk/src/org/tela_botanica/client/modeles/structure/Structure.java
253,7 → 253,7
return renvoyerValeurCorrecte("longitude");
}
public void setLongitude(String longitude) {
if (longitude != null) {
if (longitude != null) {
longitude = longitude.replace(".", ",");
}
this.set("longitude", longitude);
265,8 → 265,8
}
public void setTelephone(String tel) {
this.set("truk_telephone", tel);
}
}
 
// TELEPHONE FIXE
public String getTelephoneFixe() {
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FIXE);
282,6 → 282,7
public void setFax(String fax) {
modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FAX, fax);
}
 
// COURRIEL
public String getCourriel() {
/trunk/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java
5,9 → 5,12
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.Debug;
import org.tela_botanica.client.util.UtilDAO;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
14,49 → 17,190
 
public class ValeurListeAsyncDao {
private static HashMap<String, ValeurListe> ontologieCache = new HashMap<String, ValeurListe>();
private static HashMap<String, Object> ontologieCache = new HashMap<String, Object>();
private static HashMap<String, HashMap<Integer, Object>> pagedOntologieCache = new HashMap<String, HashMap<Integer, Object>>();
private static final String SERVICE_NOM = "CoelValeurListe";
private Rafraichissable vueARafraichir = null;
private static ValeurListe tempListe = new ValeurListe();
private int cptPage = 0;
private int limiteJREST = 150;
 
public ValeurListeAsyncDao(Rafraichissable vueCourante) {
vueARafraichir = vueCourante;
}
public void obtenirListe(Integer cle) {
selectionner("id", cle, null, null);
public static HashMap<String, Object> getOntologieCache() {
return ontologieCache;
}
 
public void chargerListe(boolean nextPage, String type, Integer cle, String abv, String idValeur, boolean pagination, String recherche, int start, int nbElements) {
/** Si nextpage est VRAI, alors cela signifie que la liste est plus grande
que la limite du JREST et l'on doit relancer une requete pour obtenir
la page suivante **/
if (nextPage) {
cptPage++;
selectionner(type, cle, abv, idValeur, pagination, recherche, cptPage*limiteJREST, limiteJREST);
}
/** Sinon cela signifie que le chargement de la liste est terminé et on peut
la mettre en cache et retourner la réponse au demandeur **/
else {
// on met en cache
String id = String.valueOf(cle);
String abreviationStr = "";
if (abv != null) {
abreviationStr = abv;
int indexPoint = abreviationStr.indexOf(".", 0);
abreviationStr = abreviationStr.substring(0, indexPoint);
id = id+abreviationStr;
}
// réinitialiser le compteur
cptPage = 0;
 
// et on met à jour le demandeur des données
if (ontologieCache.get(id) != null) {
vueARafraichir.rafraichir(ontologieCache.get(id));
}
}
}
public void obtenirListe(Integer cle) {
selectionner("id", cle, null, null, false, null, -1, -1);
}
public void obtenirListe(String type, String identifiantValeur) {
selectionner(type, null, null, identifiantValeur, false, null, -1, -1);
}
public void obtenirListe(Integer cle, boolean pagination, String recherche, int start, int limit) {
selectionner("nom", cle, null, null, pagination, recherche, start, limit);
}
public void selectionner(String type, Integer cle, String abv, String idValeur) {
selectionner(type, cle, abv, idValeur, false, null, -1, -1);
}
 
public void selectionner(final String type, final Integer cle, final String abv, final String idValeur, final boolean pagination, final String recherche, final int start, final int limit) {
 
// La cleParent en Integer est insuffisante pour les liste valeurs comme Région qui on plusieurs sections sur leur liste
// (ex : on ne sélectionne que les régions FR.__ puis les régions ES.__ sur la liste 1078 ....
final String cleParent = cle + (abv == null ? "" : abv);
final String cleParentPourCache = cle + (abv == null ? "" : abv);
final String cleParent = cle+"";
if (ontologieCache.containsKey(cleParent)) {
vueARafraichir.rafraichir(ontologieCache.get(cleParent));
} else {
String paramAbv = (type.equals("id") ? null : abv);
String[] parametres = {type, cleParent.toString(), paramAbv, idValeur};
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
String nom = "";
if ( (recherche == null) || (recherche.equals("")) ) nom = "";
else {
nom = recherche+"%";
}
 
String abreviation = "";
String paramAbv = "";
if (type.equals("ab") || type.equals("abv")) {
int positionPoint = abv.indexOf(".");
if (positionPoint != -1) abreviation = abv.substring(0, positionPoint)+"%";
else abreviation=abv+"%";
}
paramAbv = abreviation;
 
String[] parametres = {type, cleParent, paramAbv, idValeur, nom};
 
HashMap<String, String> restrictions = new HashMap<String, String>();
 
if (pagination) {
 
restrictions.put("limit", String.valueOf(limit));
restrictions.put("start", String.valueOf(start));
restrictions.put("orderby", "cmlv_nom");
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback()
{
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue.isObject() != null) {
final JSONObject reponse = responseValue.isObject();
JSONString listeId = reponse.get("id").isString();
JSONArray listeValeurs = reponse.get("valeurs").isArray();
if (listeId != null) {
// Transformation du tableau JSON réponse en Liste
ValeurListe liste = new ValeurListe(listeId, listeValeurs);
// Stockage en cache
ontologieCache.put(cleParent, liste);
// et on met à jour le demandeur des données
vueARafraichir.rafraichir(liste);
}
}
public void surReponse(JSONValue responseValue)
{
vueARafraichir.rafraichir(responseValue);
}
});
}
}
else
{
boolean nextPage = (start > 0);
if (nextPage)
{
restrictions.put("start", String.valueOf(start));
restrictions.put("limit", String.valueOf(limit));
restrictions.put("orderby", "cmlv_nom");
}
else
{
restrictions.put("orderby", "cmlv_nom");
}
// si l'on est pas dans un processus de récupération d'une liste
// et si le cache contient déjà la liste recherchée
if (ontologieCache.containsKey(cleParentPourCache) && !nextPage)
{
vueARafraichir.rafraichir(ontologieCache.get(cleParentPourCache));
}
else
{
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback()
{
@Override
public void surReponse(JSONValue responseValue)
{
if (responseValue.isObject() != null)
{
/** Récuperation des différents paramètres de la réponse JSON **/
final JSONObject reponse = responseValue.isObject();
JSONString listeId = reponse.get("id").isString();
JSONArray listeValeurs = reponse.get("valeurs").isArray();
JSONNumber nbElements = reponse.get("nbElements").isNumber();
JSONBoolean getNextPage = reponse.get("getNextPage").isBoolean();
/** Gestion de l'abreviation (pour la liste des régions) **/
String abreviationStr = "";
if (reponse.get("abreviation") != null) {
abreviationStr = reponse.get("abreviation").isString().stringValue();
int a = abreviationStr.indexOf("%", 1);
abreviationStr = abreviationStr.substring(1, a);
}
else {
abreviationStr = "";
}
 
/** si l'on a bien reçu une liste de valeurs **/
if (listeId != null)
{
/** Transformation du tableau JSON réponse en ValeurListe **/
String id = listeId.stringValue();
ValeurListe liste = new ValeurListe(new JSONString(id), abreviationStr, listeValeurs, nbElements);
 
/** Si la liste existe deja en cache **/
String identifiantCache = (abreviationStr=="") ? id : (id+abreviationStr);
if (ontologieCache.get(id) != null)
{
/** Alors on concatène la liste existante avec celle qu'on vient de recevoir **/
((ValeurListe)ontologieCache.get(identifiantCache)).concatenerListe(liste);
}
/** Sinon on l'insère simplement dans le cache **/
else {
ontologieCache.put(identifiantCache,liste);
}
 
/** Appel à la méthode qui gère le retour à l'appelant ou la suite du chargement **/
chargerListe(getNextPage.booleanValue(), type, liste.getId(), abv, idValeur, pagination, recherche, start, limit);
}
}
}
});
}
}
}
}
}
/trunk/src/org/tela_botanica/client/modeles/.
Property changes:
Added: svn:mergeinfo
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/modeles:r1136-1291