Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1483 → Rev 1484

/branches/v1.1-aramon/src/org/tela_botanica/client/Mediateur.java
1173,6 → 1173,16
modele.selectionnerCollectionACommentaire(vueARafraichir, collectionId, seqId);
}
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionACommentaire");
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollectionACommentaire(vueARafraichir, collectionId, recherche, pageCourante, nbElements, seqId);
}
/** AJOUTER **/
public void ajouterCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, CollectionACommentaireListe commentairesAjoutees) {
if (commentairesAjoutees != null && commentairesAjoutees.size() > 0) {
/branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionForm.java
70,7 → 70,7
mediateurCourrant.selectionnerCollection(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPersonne(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPublication(this, collectionId, sequenceur);
mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
//mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
}
}
/branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java
1,12 → 1,16
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
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.GrillePaginable;
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.composants.pagination.ProxyCollectionACommentaire;
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.images.Images;
60,6 → 64,7
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
74,7 → 79,7
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionACommentaire> grille;
private GrillePaginable<ModelData> grille = null;
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
private CollectionACommentaireListe commentairesAjoutes = null;
91,11 → 96,15
private Sequenceur sequenceur;
public CollectionFormCommentaire(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setLayout(new FitLayout());
setId(ID);
setText(Mediateur.i18nC.collectionCommentaire());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
barreOutils = creerBarreOutilsGrille();
panneauPrincipal.setTopComponent(barreOutils);
104,8 → 113,6
mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null);
add(panneauPrincipal);
initialiser();
}
private void initialiser() {
112,9 → 119,6
// Remise à zéro des modification dans la liste des commentaires
initialiserGestionCommentaires();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
collection = ((CollectionForm) formulaire).collection;
}
189,7 → 193,7
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionne = grille.getGrille().getSelectionModel().getSelectedItem();
if (commentaireSaisiSelectionne == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
204,8 → 208,9
private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) {
String commentaireId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
CollectionACommentaire commentaierSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
commentaireId = commentaierSaisieSelectionnee.getIdCommentaire();
ModelData commentaierSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaierSaisieSelectionnee, false);
commentaireId = cac.getIdCommentaire();
}
final FenetreForm fenetre = new FenetreForm("");
259,11 → 264,12
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaireSaisiSelectionnee, false);
if (commentaireSaisiSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
supprimerDansGrille(commentaireSaisiSelectionnee);
supprimerDansGrille(cac);
}
}
});
349,10 → 355,10
corrigerChampsGrille(relationCollectionACommentaire);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(relationCollectionACommentaire, index);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(relationCollectionACommentaire, index);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
}
}
370,31 → 376,34
}
}
 
private EditorGrid<CollectionACommentaire> creerGrille() {
ListStore<CollectionACommentaire> storeGrille = new ListStore<CollectionACommentaire>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
if (ce.getRecord().isModified("_type_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
private GrillePaginable<ModelData> creerGrille() {
RowNumberer pluginLigneNumero = new RowNumberer();
GrillePaginable<ModelData> grillePaginable = null;
 
// ModelType
ModelType modelTypeCollectionACommentaire = new ModelType();
modelTypeCollectionACommentaire.setRoot("collectionsACommentaire");
modelTypeCollectionACommentaire.setTotalName("nbElements");
modelTypeCollectionACommentaire.addField("ccac_id_commentaire");
modelTypeCollectionACommentaire.addField("ccac_id_collection");
modelTypeCollectionACommentaire.addField("ccac_truk_type");
modelTypeCollectionACommentaire.addField("ccm_id_commentaire");
modelTypeCollectionACommentaire.addField("ccm_titre");
modelTypeCollectionACommentaire.addField("ccm_texte");
modelTypeCollectionACommentaire.addField("ccm_ponderation");
modelTypeCollectionACommentaire.addField("ccm_mark_public");
modelTypeCollectionACommentaire.addField("ccm_ce_pere");
modelTypeCollectionACommentaire.addField("ccm_ce_projet");
// Proxy
ProxyCollectionACommentaire<ModelData> proxyCollectionACommentaire = new ProxyCollectionACommentaire<ModelData>(null, collection.getId());
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(pluginLigneNumero);
RowNumberer pluginLigneNumero = new RowNumberer();
colonnes.add(pluginLigneNumero);
colonnes.add(creerColonneType());
colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75));
401,20 → 410,38
colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35));
colonnes.add(creerColonneAcces());
GridSelectionModel<CollectionACommentaire> modeleDeSelection = new GridSelectionModel<CollectionACommentaire>();
// Modèle de colonnes
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
EditorGrid<CollectionACommentaire> grille = new EditorGrid<CollectionACommentaire>(storeGrille, modeleDeColonnes);
grille.setHeight("100%");
grille.setBorders(true);
grille.setSelectionModel(modeleDeSelection);
grille.addPlugin(pluginLigneNumero);
grille.getView().setForceFit(true);
grille.setAutoExpandColumn("_titre_");
grille.setStripeRows(true);
grille.setTrackMouseOver(true);
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_titre_", "ccm_titre");
virtualFields.put("_texte_", "ccm_texte");
virtualFields.put("_ponderation_", "ccm_ponderation");
virtualFields.put("_type_", "ccac_truk_type");
virtualFields.put("_public_", "ccm_mark_public");
virtualFields.put("_etat_", "");
return grille;
// Grille
grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionACommentaire, virtualFields, proxyCollectionACommentaire, colonnes, modeleDeColonnes);
grillePaginable.getGrille().setBorders(true);
grillePaginable.getGrille().setSelectionModel(modeleDeSelection);
grillePaginable.getGrille().addPlugin(pluginLigneNumero);
grillePaginable.getGrille().getView().setForceFit(true);
grillePaginable.getGrille().setAutoExpandColumn("_titre_");
grillePaginable.getGrille().setStripeRows(true);
grillePaginable.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (ce.getRecord().isModified("_type_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
return grillePaginable;
}
private ColumnConfig creerColonneType() {
448,8 → 475,8
}
};
 
GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
GridCellRenderer<ModelData> typeRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String type = model.get("_type_");
if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
type = typeCombo.formaterIdentifiantsEnTexte(type);
465,9 → 492,10
}
private ColumnConfig creerColonneAcces() {
GridCellRenderer<CollectionACommentaire> accesRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
String acces = (model.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
GridCellRenderer<ModelData> accesRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
CollectionACommentaire cac = new CollectionACommentaire(model, true);
String acces = (cac.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
model.set("_public_", acces);
return acces;
}
545,7 → 573,7
} else if (type.equals("commentaire_modifiee")) {
if (info.getDonnee(0) != null) {
Commentaire commentaire = (Commentaire) info.getDonnee(0);
CollectionACommentaire commentaireDansGrille = grille.getStore().findModel("id_commentaire", commentaire.getId());
ModelData commentaireDansGrille = grille.getStore().findModel("ccm_id_commentaire", commentaire.getId());
int index = grille.getStore().indexOf(commentaireDansGrille);
grille.getStore().remove(commentaireDansGrille);
String typeCommentaire = (String) commentaireDansGrille.get("_type_");
580,15 → 608,16
if (etreAccede()) {
int nbreCommentaire = grille.getStore().getCount();
for (int i = 0; i < nbreCommentaire; i++) {
CollectionACommentaire relationCollectionACommentaire = grille.getStore().getAt(i);
ModelData relationCollectionACommentaire = grille.getStore().getAt(i);
CollectionACommentaire cac = new CollectionACommentaire(relationCollectionACommentaire, false);
if (relationCollectionACommentaire.get("_etat_") != null) {
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, cac);
}
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, cac);
}
// Initialisation de la grille
relationCollectionACommentaire.set("_etat_", "");
601,6 → 630,7
private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
String type = relationCollectionACommentaire.get("_type_");
relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type));
relationCollectionACommentaire.setIdCollection(collection.getId());
}
 
public void soumettre() {
609,7 → 639,7
InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
}
}
/branches/v1.1-aramon/src/org/tela_botanica/client/Modele.java
296,9 → 296,14
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, Integer seqId) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.selectionner(collectionId, seqId);
cacDao.selectionner(false, collectionId, null, 0, -1, seqId);
}
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, String recherche, int start, int nbElements, Integer seqId) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.selectionner(true, collectionId, recherche, start, nbElements, seqId);
}
public void modifierCollectionACommentaire(Rafraichissable vueARafraichir, CollectionACommentaire collectionACommentaire) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.modifier(collectionACommentaire);
/branches/v1.1-aramon/src/org/tela_botanica/client/composants/pagination/ProxyCollectionACommentaire.java
New file
0,0 → 1,75
package org.tela_botanica.client.composants.pagination;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.DataReader;
import com.extjs.gxt.ui.client.data.MemoryProxy;
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.rpc.AsyncCallback;
 
public class ProxyCollectionACommentaire<D> extends Proxy {
String collectionId = null;
public ProxyCollectionACommentaire(Sequenceur sequenceur, String collectionId) {
super(sequenceur);
this.collectionId = collectionId;
}
@Override
public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) {
this.reader = reader;
this.callback = callback;
this.loadConfig = loadConfig;
 
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig;
Debug.log("appel depuis proxy");
mediateur.selectionnerCollectionACommentaire(this, this.collectionId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
}
 
@Override
@SuppressWarnings("unchecked")
public void rafraichir(Object nouvellesDonnees) {
try
{
data = nouvellesDonnees;
D d = null;
 
if (reader != null)
{
d = (D) reader.read(loadConfig, data);
}
else
{
d = (D) data;
if (d instanceof List)
{
d = (D) new ArrayList((List) d);
}
}
 
callback.onSuccess(d);
}
catch (Exception e)
{
callback.onFailure(e);
}
}
 
}
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/Commentaire.java
16,7 → 16,7
public class Commentaire extends aDonnee {
 
private static final long serialVersionUID = 7216356814682582569L;
private static final String PREFIXE = "ccm";
public static final String PREFIXE = "ccm";
private Collection collection = null;
private CollectionACommentaire collectionACommentaire = null;
public static String[] champsObligatoires = {"ccm_id_commentaire"};
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/CommentaireAsyncDao.java
102,14 → 102,9
if (responseObject.get("commentaires").isArray() != null) {
final JSONArray reponse = responseObject.get("commentaires").isArray();
 
CommentaireListe commentaires = new CommentaireListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir);
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);
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireAsyncDao.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 CollectionACommentaireAsyncDao {
30,52 → 33,100
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));
}
 
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
Information info = new Information("liste_collection_a_commentaire");
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 ListCommentaier
CollectionACommentaireListe commentaires = new CollectionACommentaireListe(reponse);
info.setDonnee(0, commentaires);
// 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("<-- CollectionACommentaireAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > 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_commentaire");
 
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("collectionsACommentaire").isArray() != null) {
 
final JSONArray reponse = responseObject.get("collectionsACommentaire").isArray();
// Transformation du tableau JSON réponse en ListeInstitution
CollectionACommentaireListe publications = new CollectionACommentaireListe(reponse);
info.setDonnee(0, publications);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > 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("collectionsACommentaire").isObject() != null) {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
}
}
else {
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 à Commentaires et qu'il n'y en a pas, nous retournons un message d'information
info.setMessage("Aucune relations entre la collection et les commentaires");
if (seqId != null) {
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
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 commentaires");
vueARafraichir.rafraichir(info);
}
}
}
}
});
}
 
});
}
}
public void ajouter(String collectionId, CollectionACommentaire commentaires) {
String postDonneesEncodees = construirePost(collectionId, commentaires);
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
/branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionACommentaire.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.commentaire.Commentaire;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.publication.Publication;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class CollectionACommentaire extends aDonnee {
9,6 → 16,7
private static final long serialVersionUID = 8751553802444398035L;
public static final String PREFIXE = "ccac";
private boolean removePrefix = true;
private Commentaire commentaireLiee = null;
public static String[] champsObligatoires = {"cc_id_collection", "ccac_id_commentaire"};
24,6 → 32,34
initialiser(collectionACommentaireListe, chargerCommentaire);
}
public CollectionACommentaire(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("^"+CollectionACommentaire.PREFIXE+"_", "");
cleObjet = cleObjet.replaceFirst("^"+Commentaire.PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
 
setCommentaire(new Commentaire(model));
this.set("_etat_", a.get("_etat_"));
this.set("_type_", a.get("_type_"));
}
@Override
protected String getPrefixe() {
return PREFIXE;