Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1467 → Rev 1468

/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java
1,8 → 1,16
package org.tela_botanica.client.modeles.collection;
 
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class CollectionAPersonne extends aDonnee {
16,11 → 24,31
public CollectionAPersonne() {
initialiser(new JSONObject());
}
public CollectionAPersonne(JSONObject collectionAPersonneListe) {
initialiser(collectionAPersonneListe);
}
public CollectionAPersonne(ModelData model)
{
Map<String, Object> a = model.getProperties();
 
Set<String> cles = a.keySet();
Iterator<String> it = cles.iterator();
while (it.hasNext()) {
String cle = it.next();
if (a.get(cle) != null) {
String cleObjet = "";
cleObjet = cle.replaceFirst("^"+CollectionAPersonne.PREFIXE+"_", "");
cleObjet = cleObjet.replaceFirst("^"+Personne.PREFIXE+"_", "");
this.set(cleObjet, a.get(cle));
}
}
 
setPersonne(new Personne(model));
this.set("_etat_", a.get("_etat_"));
}
@Override
protected String getPrefixe() {
return PREFIXE;
44,10 → 72,18
personneLiee = personne;
initialiserChampsPourGrille();
if (personne != null) {
setIdPersonne(personne.getId());
if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId());
}
}
public void setPersonnePourGrillePaginable(Personne personne) {
personneLiee = personne;
initialiserChampsPourGrillePaginable();
if (personne != null) {
if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId());
}
}
private void initialiserChampsPourGrille() {
set("_role_", getIdRole());
set("fmt_nom_complet", getPersonne().getNomComplet());
61,6 → 97,20
set("_etat_", "");
}
public void initialiserChampsPourGrillePaginable() {
set("ccap_id_role", getIdRole());
set("_role_", getIdRole());
set("cp_fmt_nom_complet", getPersonne().getNomComplet());
set("cp_nom", getPersonne().getNom());
set("cp_prenom", getPersonne().getPrenom());
set("cp_naissance_date", getPersonne().getNaissanceDate());
set("cp_naissance_lieu", getPersonne().getNaissanceLieu());
set("_deces_", getPersonne().getDeces());
set("cp_deces", getPersonne().getDeces());
set("cp_deces_date", getPersonne().getDecesDate());
set("cp_deces_lieu", getPersonne().getDecesLieu());
}
// ID
/** Génère un identifiant de CollectionAPersonne.
*
100,7 → 150,9
// ID RôLE
public String getIdRole() {
return renvoyerValeurCorrecte("id_role");
String role = renvoyerValeurCorrecte("id_role");
if (role != null && !UtilString.isEmpty(role)) return role;
else return renvoyerValeurCorrecte("_role_");
}
public void setIdRole(String ir) {
set("id_role", ir);
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java
1,5 → 1,7
package org.tela_botanica.client.modeles.collection;
 
import java.util.HashMap;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
14,6 → 16,7
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
 
public class CollectionAPersonneAsyncDao {
28,42 → 31,96
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
public void selectionner(final String collectionId, final String roleId, final Integer seqId) {
public void selectionner(final boolean paginationProgressive, final String collectionId, final String roleId, final String recherche, final int start, final int nbElements, final Integer seqId) {
 
String[] parametres = {collectionId, roleId};
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
HashMap<String, String> restrictions = new HashMap<String, String>();
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
restrictions.put("orderby", "cp_nom");
 
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
Information info = new Information("liste_collection_a_personne");
if (responseValue != null) {
// 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
CollectionAPersonneListe personnes = new CollectionAPersonneListe(reponse);
info.setDonnee(0, personnes);
// et on met à jour le demandeur des données
if (seqId != null) {
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/
if (paginationProgressive) {
 
/** DEFINITION DU TUPLE DE DEPART **/
restrictions.put("start", String.valueOf(start));
/** CONSTRUCTION DE LA REQUETE **/
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
/** ENVOI DE LA REQUETE **/
rb.envoyerRequete(null, new JsonRestRequestCallback()
{
/** RECEPTION DE LA REPONSE **/
public void surReponse(JSONValue responseValue)
{
/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy.
* On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPersonneAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPersonneAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString());
vueARafraichir.rafraichir(responseValue);
}
}
});
}
/** GESTION DE LA REQUETE dans le cas d'une liste NON paginée progressive **/
else {
/** DEFINITION DU TUPLE DE DEPART **/
restrictions.put("start", String.valueOf(start*nbElements));
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
 
JSONObject responseObject = responseValue.isObject();
Information info = new Information("liste_collection_a_personne");
 
if (responseObject != null) {
// Si la réponse est un tableau, alors c'est une liste de collections qui a été retournée
if (responseObject.get("collectionsAPersonne").isArray() != null) {
final JSONArray reponse = responseObject.get("collectionsAPersonne").isArray();
// Transformation du tableau JSON réponse en ListeInstitution
CollectionAPersonneListe personnes = new CollectionAPersonneListe(reponse);
info.setDonnee(0, personnes);
// et on met à jour le demandeur des données
if (seqId != null) {
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
vueARafraichir.rafraichir(info);
}
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
} else if (responseObject.get("collectionsAPersonne").isObject() != null) {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
}
}
else {
} else {
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
if (collectionId == null) {
// Dans le cas, où nous demandons toutes les relations Collection à Personne et qu'il n'y en a pas, nous retournons un message d'information
Information info = new Information("liste_collection_a_personne");
info.setMessage("Aucune relations entre la collection et les personnes");
vueARafraichir.rafraichir(info);
}
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
}
} else {
if (collectionId == null) {
// Dans le cas, où nous demandons toutes les relations Collection à Personne et qu'il n'y en a pas, nous retournons un message d'information
info.setMessage("Aucune relations entre la collection et les personnes");
vueARafraichir.rafraichir(info);
}
}
}
});
});
}
}
 
public void ajouter(String collectionId, CollectionAPersonne personnes) {