/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPublication.java |
---|
1,8 → 1,15 |
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.modeles.publication.Publication; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
public class CollectionAPublication extends aDonnee { |
10,6 → 17,7 |
private static final long serialVersionUID = 1L; |
public static final String PREFIXE = "ccapu"; |
private boolean removePrefix = true; |
private Publication publicationLiee = null; |
public static String[] champsObligatoires = {"ccapu_id_collection", "ccapu_id_publication"}; |
16,11 → 24,43 |
public CollectionAPublication() { |
initialiser(new JSONObject()); |
} |
public CollectionAPublication(boolean removePrefix) { |
this.removePrefix = removePrefix; |
initialiser(new JSONObject()); |
} |
public CollectionAPublication(JSONObject collectionAPublicationListe) { |
initialiser(collectionAPublicationListe); |
} |
public CollectionAPublication(ModelData model, boolean removePrefix) |
{ |
this.removePrefix = removePrefix; |
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 = ""; |
if (removePrefix) { |
cleObjet = cle.replaceFirst("^"+CollectionAPublication.PREFIXE+"_", ""); |
cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", ""); |
} |
else { |
cleObjet = cle; |
} |
this.set(cleObjet, a.get(cle)); |
} |
} |
setPublication(new Publication(model, removePrefix)); |
this.set("_etat_", a.get("_etat_")); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
49,15 → 89,27 |
} |
private void initialiserChampsPourGrille() { |
set("fmt_auteur", getPublication().getAuteur()); |
set("titre", getPublication().getTitre()); |
set("collection", getPublication().getCollection()); |
set("_editeur_", ""); |
set("_annee_", ""); |
set("indication_nvt", getPublication().getIndicationNvt()); |
set("fascicule", getPublication().getFascicule()); |
set("truk_pages", getPublication().getPages()); |
set("_etat_", ""); |
if (removePrefix) { |
set("fmt_auteur", getPublication().getAuteur()); |
set("titre", getPublication().getTitre()); |
set("collection", getPublication().getCollection()); |
set("_editeur_", ""); |
set("_annee_", ""); |
set("indication_nvt", getPublication().getIndicationNvt()); |
set("fascicule", getPublication().getFascicule()); |
set("truk_pages", getPublication().getPages()); |
set("_etat_", ""); |
} else { |
set(Publication.PREFIXE+"_fmt_auteur", getPublication().getAuteur()); |
set(Publication.PREFIXE+"_titre", getPublication().getTitre()); |
set(Publication.PREFIXE+"_collection", getPublication().getCollection()); |
set("_editeur_", ""); |
set("_annee_", ""); |
set(Publication.PREFIXE+"_indication_nvt", getPublication().getIndicationNvt()); |
set(Publication.PREFIXE+"_fascicule", getPublication().getFascicule()); |
set(Publication.PREFIXE+"_truk_pages", getPublication().getPages()); |
set("_etat_", ""); |
} |
} |
// ID |
82,18 → 134,22 |
// ID COLLECTION |
public String getIdCollection() { |
return renvoyerValeurCorrecte("id_collection"); |
if (removePrefix) return renvoyerValeurCorrecte("id_collection"); |
else return renvoyerValeurCorrecte(PREFIXE+"_id_collection"); |
} |
public void setIdCollection(String idCollection) { |
set("id_collection", idCollection); |
if (removePrefix) set("id_collection", idCollection); |
else set(PREFIXE+"_id_collection", idCollection); |
} |
// ID PUBLICATION |
public String getIdPublication() { |
return renvoyerValeurCorrecte("id_publication"); |
if (removePrefix) return renvoyerValeurCorrecte("id_publication"); |
else return renvoyerValeurCorrecte(PREFIXE+"_id_publication"); |
} |
public void setIdPublication(String ip) { |
set("id_publication", ip); |
if (removePrefix) set("id_publication", ip); |
else set(PREFIXE+"_id_publication", ip); |
} |
} |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationAsyncDao.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 CollectionAPublicationAsyncDao { |
28,43 → 31,101 |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String collectionId, final Integer seqId) { |
public void selectionner(final boolean paginationProgressive, final String collectionId, final String recherche, final int start, final int nbElements, final Integer seqId) { |
String[] parametres = {collectionId}; |
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", "cpu_fmt_auteur"); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_collection_a_publication"); |
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 |
CollectionAPublicationListe publications = new CollectionAPublicationListe(reponse); |
info.setDonnee(0, publications); |
// 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("<-- CollectionAPublicationAsyncDao > Liste paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(responseValue, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > 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) { |
Information info = new Information("liste_collection_a_publication"); |
if (responseValue != null) { |
JSONObject responseObject = responseValue.isObject(); |
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("collectionsAPublication").isArray() != null) { |
final JSONArray reponse = responseObject.get("collectionsAPublication").isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
CollectionAPublicationListe publications = new CollectionAPublicationListe(reponse); |
info.setDonnee(0, publications); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > Liste non paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > Liste non paginée, retour au sequenceur"); |
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("collectionsAPublication").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) { |
info.setMessage("Aucune relations entre la collection et les publications"); |
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 à Publication et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucune relations entre la collection et les publications"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
} |
}); |
} |
} |
public void ajouter(String collectionId, CollectionAPublication publications) { |
String postDonneesEncodees = construirePost(collectionId, publications); |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java |
---|
46,7 → 46,7 |
public void selectionner(final boolean paginationProgressive, final String publicationId, String projetId, String nomComplet, final int start, final int nbElements, final Integer seqId) { |
String nom = (nomComplet == null) ? "%" : nomComplet+"%"; |
String[] param = {publicationId, nom}; |
String[] param = {publicationId, projetId, nom}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
restrictions.put("orderby", "cpu_fmt_nom_complet"); |
55,9 → 55,6 |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
Debug.log("start="+start); |
Debug.log("nbElements="+nbElements); |
/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/ |
if (paginationProgressive) { |
107,18 → 104,11 |
// Si la réponse est un tableau, alors c'est une liste de projets qui a été retournée |
if (responseObject.get("publications").isArray() != null) { |
JSONArray reponse = responseObject.get("publications").isArray(); |
PublicationListe publications; |
/*if (reponse.get(1).isObject() != null) { |
publications = new PublicationListe(reponse.get(1).isArray()); |
} else {*/ |
Debug.log("responseObject="+responseObject); |
publications = new PublicationListe(responseObject.get("publications").isArray(), responseObject.get("nbElements").isNumber(), vueARafraichir); |
//} |
publications = new PublicationListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir); |
publications.setTaillePage(nbElements); |
publications.setPageCourante(start); |
132,9 → 122,9 |
} |
// Si la réponse est un objet, alors c'est un unique projet qui a été retourné |
} else if (responseObject.get("projets").isObject() != null) { |
} else if (responseObject.get("publications").isObject() != null) { |
final JSONObject reponse = responseObject.get("projets").isObject(); |
JSONObject reponse = responseObject.get("publications").isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Publication publication = new Publication(reponse); |
// et on met à jour le demandeur des données |