/branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java |
---|
3,8 → 3,12 |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyPublications; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
23,6 → 27,8 |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
39,7 → 45,9 |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnData; |
68,7 → 76,7 |
private CollectionAPublicationListe publicationsAjoutees = null; |
private CollectionAPublicationListe publicationsSupprimees = null; |
private ComboBox<Publication> publicationsSaisiesComboBox = null; |
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null; |
private Button publicationsBoutonSupprimer = null; |
private Button publicationsBoutonModifier = null; |
249,7 → 257,7 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
actualiserGrille(); |
} |
} |
}); |
return bouton; |
} |
263,35 → 271,60 |
} |
} |
private ComboBox<Publication> creerComboBoxPublicationsSaisis() { |
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>(); |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() { |
ComboBox<Publication> comboBox = new ComboBox<Publication>(); |
comboBox.setWidth(400); |
comboBox.setEmptyText(i18nC.chercherPublicationSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setStore(publicationsSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue()); |
} |
ModelType modelTypePublications = new ModelType(); |
modelTypePublications.setRoot("publications"); |
modelTypePublications.setTotalName("nbElements"); |
modelTypePublications.addField("ccapu_id_collection"); |
modelTypePublications.addField("ccapu_id_publication"); |
modelTypePublications.addField("cc_nom"); |
modelTypePublications.addField("cc_id_collection"); |
modelTypePublications.addField("cpu_id_publication"); |
modelTypePublications.addField("cpu_fmt_nom_complet"); |
modelTypePublications.addField("cpu_titre"); |
modelTypePublications.addField("cpu_nom"); |
modelTypePublications.addField("cpu_fmt_auteur"); |
modelTypePublications.addField("cpu_indication_nvt"); |
modelTypePublications.addField("cpu_truk_pages"); |
modelTypePublications.addField("cpu_fascicule"); |
modelTypePublications.addField("cpu_date_parution"); |
modelTypePublications.addField("cpu_ce_truk_editeur"); |
modelTypePublications.addField("cpu_ce_projet"); |
String displayNamePublications = "cpu_fmt_nom_complet"; |
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null); |
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications); |
publicationsCombo.getCombo().setTabIndex(tabIndex++); |
publicationsCombo.getCombo().setForceSelection(true); |
publicationsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (publicationsSaisiesComboBox.getValue() instanceof Publication) { |
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue(); |
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) { |
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur()); |
ajouterDansGrille(publicationSaisieSelectionne); |
publicationsSaisiesComboBox.setValue(null); |
publicationsSaisiesComboBox.getCombo().setValue(null); |
} |
} |
}); |
return comboBox; |
return publicationsCombo; |
} |
private void ajouterDansGrille(Publication publication) { |
430,19 → 463,10 |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
PublicationListe listePublications = (PublicationListe) nouvellesDonnees; |
rafraichirPublicationListe(listePublications); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
private void rafraichirPublicationListe(PublicationListe listePublications) { |
publicationsSaisiesComboBox.getStore().removeAll(); |
publicationsSaisiesComboBox.getStore().add(listePublications.toList()); |
publicationsSaisiesComboBox.expand(); |
} |
public void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
532,8 → 556,4 |
} |
} |
} |
private void obtenirPublicationsSaisies(String nom) { |
mediateur.selectionnerPublicationParNomComplet(this, null, "%"+nom+"%"); |
} |
} |
/branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java |
---|
5,7 → 5,10 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCommentaires; |
import org.tela_botanica.client.composants.pagination.ProxyPublications; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
17,6 → 20,7 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe; |
import org.tela_botanica.client.modeles.commentaire.Commentaire; |
import org.tela_botanica.client.modeles.commentaire.CommentaireListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.FenetreForm; |
26,6 → 30,8 |
import org.tela_botanica.client.vues.commentaire.CommentaireForm; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
42,7 → 48,9 |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
72,7 → 80,7 |
private CollectionACommentaireListe commentairesAjoutes = null; |
private CollectionACommentaireListe commentairesModifies = null; |
private CollectionACommentaireListe commentairesSupprimes = null; |
private ComboBox<Commentaire> commentairesSaisisComboBox = null; |
private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null; |
private Button commentairesBoutonSupprimer = null; |
private Button commentairesBoutonModifier = null; |
273,36 → 281,52 |
return bouton; |
} |
private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() { |
ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>(); |
commentairesSaisiesStore.add(new ArrayList<Commentaire>()); |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() { |
ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>(); |
comboBox.setWidth(200); |
comboBox.setEmptyText(i18nC.chercherCommentaireSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("titre"); |
comboBox.setStore(commentairesSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue()); |
} |
ModelType modelTypeCommentaires = new ModelType(); |
modelTypeCommentaires.setRoot("commentaires"); |
modelTypeCommentaires.setTotalName("nbElements"); |
modelTypeCommentaires.addField("ccm_id_commentaire"); |
modelTypeCommentaires.addField("ccm_ce_pere"); |
modelTypeCommentaires.addField("ccm_ce_projet"); |
modelTypeCommentaires.addField("ccm_titre"); |
modelTypeCommentaires.addField("ccm_texte"); |
modelTypeCommentaires.addField("ccm_ponderation"); |
modelTypeCommentaires.addField("ccm_mark_public"); |
String displayNameCommentaires = "ccm_titre"; |
ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null); |
final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires); |
commentairesCombo.getCombo().setTabIndex(tabIndex++); |
commentairesCombo.getCombo().setForceSelection(true); |
commentairesCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (commentairesSaisisComboBox.getValue() instanceof Commentaire) { |
Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue(); |
if (commentairesSaisisComboBox.getValeur() instanceof ModelData) { |
Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur()); |
ajouterDansGrille(commentaireSaisiSelectionnee); |
commentairesSaisisComboBox.setValue(null); |
commentairesSaisisComboBox.getCombo().setValue(null); |
} |
} |
}); |
return comboBox; |
return commentairesCombo; |
} |
private void ajouterDansGrille(Commentaire commentaire) { |
473,9 → 497,6 |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof CommentaireListe) { |
CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees; |
rafraichirCommentairesListe(listeCommentaires); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
547,12 → 568,6 |
} |
} |
private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) { |
commentairesSaisisComboBox.getStore().removeAll(); |
commentairesSaisisComboBox.getStore().add(listeCommentaires.toList()); |
commentairesSaisisComboBox.expand(); |
} |
public void peupler() { |
grille.getStore().removeAll(); |
grille.getStore().add(collection.getCommentairesLiees().toList()); |
600,10 → 615,6 |
} |
} |
private void obtenirCommentairesSaisis(String titre) { |
mediateur.selectionnerCommentaireParTitre(this, titre+"%", null); |
} |
private void actualiserGrille() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null); |
/branches/v1.1-aramon/src/org/tela_botanica/client/Modele.java |
---|
329,7 → 329,6 |
public void supprimerPersonne(Rafraichissable vueARafraichir, String idPersonneSepareParVirgule) { |
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir); |
personneDao.supprimer(idPersonneSepareParVirgule); |
} |
public void ajouterPersonne(Rafraichissable vue, Personne personne) { |
341,7 → 340,7 |
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir); |
personneDao.modifier(personne); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES PUBLICATIONS |
//+----------------------------------------------------------------------------------------------------------------+ |
348,9 → 347,14 |
public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId, String projetId, String nomComplet, int nbElements, int pageCourante, Integer seqId) { |
PublicationAsyncDao lsDao = new PublicationAsyncDao(vueARafraichir); |
lsDao.selectionner(publicationId, projetId, nomComplet, nbElements, pageCourante, seqId); |
lsDao.selectionner(false, publicationId, projetId, nomComplet, pageCourante, nbElements, seqId); |
} |
public void selectionnerPublication(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Integer seqId) { |
PublicationAsyncDao lsDao = new PublicationAsyncDao(vueARafraichir); |
lsDao.selectionner(true, null, null, recherche, start, nbElements, seqId); |
} |
public void modifierPublication(Rafraichissable vueRafraichir, Publication publication, Integer seqId) { |
PublicationAsyncDao pDao = new PublicationAsyncDao(vueRafraichir); |
pDao.modifier(publication, seqId); |
410,9 → 414,14 |
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String commentaireId, String projetId, String titre, int pageCourante, int nbElements, Integer seqId) { |
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueARafraichir); |
cDao.selectionner(commentaireId, projetId, titre, pageCourante, nbElements, seqId); |
cDao.selectionner(false, commentaireId, projetId, titre, pageCourante, nbElements, seqId); |
} |
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String recherche, int pageCourante, int nbElements, Integer seqId) { |
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueARafraichir); |
cDao.selectionner(true, null, null, recherche, pageCourante, nbElements, seqId); |
} |
public void modifierCommentaire(Rafraichissable vueRafraichir, Commentaire commentaire) { |
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueRafraichir); |
cDao.modifier(commentaire); |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/Publication.java |
---|
1,9 → 1,14 |
package org.tela_botanica.client.modeles.publication; |
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.structure.Structure; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
public class Publication extends aDonnee { |
22,6 → 27,21 |
editeur = new Structure(publication); |
} |
public Publication(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 = cle.replaceFirst("^"+getPrefixe()+"_", ""); |
this.set(cleObjet, a.get(cle)); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java |
---|
8,6 → 8,8 |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.synchronisation.Reponse; |
import org.tela_botanica.client.util.Debug; |
31,66 → 33,125 |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String publicationId, String projetId, String nomComplet, final int nbElements, final int pageCourante, final Integer seqId) { |
String[] parametres = {projetId, publicationId, nomComplet}; |
/** |
* @param paginationProgressive : définit le mode de consultation de la base de données |
* - True : la consultation des données est progressive, ce qui signifie que la liste est chargée (paginée) au |
* fur et à mesure de la consultation des données par l'utilisateur. |
* - False : la consultation des données est classique : un seul appel à la base de données est effectué, le retour |
* est renvoyé à l'appelant |
* // FIXME : si la taille de la liste est supérieure à la limite du JREST (150), ce deuxieme mode ne fonctionne pas efficacement (on ne voit pas les enregistrement suivants) |
*/ |
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}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
restrictions.put("orderby", "cpu_titre"); |
restrictions.put("start", String.valueOf(pageCourante*nbElements)); |
if (nbElements != -1) { |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, réception d'un objet ou d'un tableau |
JSONArray responseArray = responseValue.isArray(); |
if (responseArray.get(1).isObject() != null) { |
final JSONObject reponse = responseArray.get(1).isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Publication publication = new Publication(reponse); |
// et on met à jour le demandeur des données |
if (seqId!=null) { |
Reponse reponseRequete = new Reponse(publication, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} else { |
vueARafraichir.rafraichir(publication); |
} |
/** 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, param, 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("<-- PublicationAsyncDao > Liste paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(responseValue, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > 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, param, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
} else if (responseArray.get(1).isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
PublicationListe publications; |
if (reponse.get(1).isObject() != null) { |
publications = new PublicationListe(reponse.get(1).isArray()); |
} else { |
publications = new PublicationListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir); |
} |
JSONObject responseObject = responseValue.isObject(); |
publications.setTaillePage(nbElements); |
publications.setPageCourante(pageCourante); |
if (seqId!=null) { |
Reponse reponseRequete = new Reponse(publications, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
if (responseObject != null) { |
// 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 { |
publications = new PublicationListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir); |
} |
publications.setTaillePage(nbElements); |
publications.setPageCourante(start); |
if (seqId != null) { |
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > Liste non paginée, retour au sequenceur"); |
Reponse retourRequete = new Reponse(publications, seqId); |
vueARafraichir.rafraichir(retourRequete); |
} else { |
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString()); |
vueARafraichir.rafraichir(publications); |
} |
// Si la réponse est un objet, alors c'est un unique projet qui a été retourné |
} else if (responseObject.get("projets").isObject() != null) { |
final JSONObject reponse = responseObject.get("projets").isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Publication publication = new Publication(reponse); |
// et on met à jour le demandeur des données |
if (seqId!=null) { |
Reponse reponseRequete = new Reponse(publication, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} else { |
vueARafraichir.rafraichir(publication); |
} |
} |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (publicationId == null) { |
PublicationListe publications = new PublicationListe(0); |
vueARafraichir.rafraichir(publications); |
} |
} else { |
GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide |
if (publicationId == null) { |
PublicationListe publications = new PublicationListe(0); |
vueARafraichir.rafraichir(publications); |
} |
} |
} |
}); |
}); |
} |
} |
public void ajouter(Publication publication, final Integer seqId) { |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java |
---|
33,13 → 33,7 |
public void selectionner(final boolean paginationProgressive, final String structureId, final String roleId, final String recherche, final int start, final int nbElements, final Integer seqId) { |
Debug.log("selectionner structure a personne"); |
/*Debug.log("paginationProgressive="+paginationProgressive); |
Debug.log("structureId="+structureId); |
Debug.log("roleId="+roleId); |
Debug.log("recherche="+recherche); |
Debug.log("nbElements="+nbElements); |
Debug.log("seqId="+seqId);*/ |
String[] parametres = {structureId, roleId}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/Commentaire.java |
---|
1,5 → 1,9 |
package org.tela_botanica.client.modeles.commentaire; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.Set; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.collection.Collection; |
6,6 → 10,7 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaire; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
public class Commentaire extends aDonnee { |
27,6 → 32,21 |
initialiserCommentaire(commentaire, chargerCollectionACommentaire); |
} |
public Commentaire(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 = cle.replaceFirst("^"+getPrefixe()+"_", ""); |
this.set(cleObjet, a.get(cle)); |
} |
} |
} |
public void initialiserCommentaire(JSONObject commentaire, boolean chargerCollectionACommentaire) { |
initialiserModele(commentaire); |
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/CommentaireAsyncDao.java |
---|
29,73 → 29,128 |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String commentaireId, String projetId, String titre, final int pageCourante, final int nbElements, final Integer seqId) { |
String[] parametres = {projetId, commentaireId, titre}; |
/** |
* |
* @param paginationProgressive : définit le mode de consultation de la base de données |
* - True : la consultation des données est progressive, ce qui signifie que la liste est chargée (paginée) au |
* fur et à mesure de la consultation des données par l'utilisateur. |
* - False : la consultation des données est classique : un seul appel à la base de données est effectué, le retour |
* est renvoyé à l'appelant |
* // FIXME : si la taille de la liste est supérieure à la limite du JREST (150), ce deuxieme mode ne fonctionne pas |
*/ |
public void selectionner(final boolean paginationProgressive, final String commentaireId, final String projetId, final String titre, final int start, final int nbElements, final Integer seqId) { |
// Ajout des paramètres et données à selectionner dans l'URL |
String nom = (titre == null) ? "%" : titre+"%"; |
String[] parametres = {projetId, commentaireId, nom}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
restrictions.put("start", String.valueOf(pageCourante*nbElements)); |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
restrictions.put("orderby", "cc_nom ASC"); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, réception d'un objet ou d'un tableau |
JSONArray responseArray = responseValue.isArray(); |
if (responseArray.get(1).isObject() != null) { |
final JSONObject reponse = responseArray.get(1).isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Commentaire commentaire = new Commentaire(reponse); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(commentaire, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
vueARafraichir.rafraichir(commentaire); |
} |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
CommentaireListe commentaires; |
if (reponse.get(1).isObject() != null) { |
commentaires = new CommentaireListe(reponse.get(1).isArray()); |
} else { |
commentaires = new CommentaireListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir); |
} |
commentaires.setTaillePage(nbElements); |
commentaires.setPageCourante(pageCourante); |
restrictions.put("orderby", "ccm_titre ASC"); |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(commentaires, 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("<-- CommentairesASyncDao > Liste paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(responseValue, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > 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(); |
if (responseObject != null) { |
// Si la réponse est un tableau, alors c'est une liste de commentaires qui a été retournée |
if (responseObject.get("commentaires").isArray() != null) { |
final JSONArray reponse = responseObject.get("commentaires").isArray(); |
CommentaireListe commentaires; |
if (reponse.get(1).isObject() != null) { |
commentaires = new CommentaireListe(reponse.get(1).isArray()); |
} else { |
commentaires = new CommentaireListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir); |
} |
commentaires.setTaillePage(nbElements); |
commentaires.setPageCourante(start); |
vueARafraichir.rafraichir(commentaires); |
// Si la réponse est un objet, alors c'est un unique commentaire qui a été retournée |
} else if (responseObject.get("commentaires").isObject() != null) { |
final JSONObject reponse = responseObject.get("commentaires").isObject(); |
Commentaire commentaire = new Commentaire(reponse); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(commentaire, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString()); |
vueARafraichir.rafraichir(commentaire); |
} |
} |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
else { |
vueARafraichir.rafraichir(commentaires); |
} |
} else { |
GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide |
if (commentaireId == null) { |
CommentaireListe commentaires = new CommentaireListe(0); |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(commentaires, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide |
if (commentaireId == null) { |
CommentaireListe commentaires = new CommentaireListe(0); |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(commentaires, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
vueARafraichir.rafraichir(commentaires); |
} |
} |
else { |
vueARafraichir.rafraichir(commentaires); |
} |
} |
} |
} |
}); |
}); |
} |
} |
public void ajouter(Commentaire commentaire) { |
/branches/v1.1-aramon/src/org/tela_botanica/client/Mediateur.java |
---|
1453,9 → 1453,19 |
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir); |
vueARafraichir = sequenceur; |
} |
modele.selectionnerPublication(vueARafraichir, publicationId, projetId, nomComplet, nbElements, pageCourante, seqId); |
modele.selectionnerPublication(vueARafraichir, publicationId, projetId, nomComplet, pageCourante, nbElements, seqId); |
} |
public void selectionnerPublication(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur) { |
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Publication"); |
Integer seqId = null; |
if (sequenceur!=null) { |
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir); |
vueARafraichir = sequenceur; |
} |
modele.selectionnerPublication(vueARafraichir, recherche, start, nbElements, seqId); |
} |
/** AJOUTER **/ |
public void ajouterPublication(Rafraichissable vueARafraichir, Publication publication, Integer seqId) { |
modele.ajouterPublication(vueARafraichir, publication, seqId); |
1677,6 → 1687,16 |
modele.selectionnerCommentaire(vueARafraichir, commentaireId, getProjetId(), titre, pageCourante, nbElements, seqId); |
} |
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) { |
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Commentaire"); |
Integer seqId = null; |
if (sequenceur != null) { |
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir); |
vueARafraichir = sequenceur; |
} |
modele.selectionnerCommentaire(vueARafraichir, recherche, pageCourante, nbElements, seqId); |
} |
/** Cette méthode est un wrapper **/ |
public void selectionnerCommentaireParTitre(Rafraichissable vueARafraichir, String titre, Sequenceur sequenceur) { |
selectionnerCommentaire(vueARafraichir, null, titre, 0, nbElements, sequenceur); |