Subversion Repositories eFlore/Applications.coel

Rev

Rev 1417 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1417 Rev 1513
1
package org.tela_botanica.client.modeles.collection;
1
package org.tela_botanica.client.modeles.collection;
-
 
2
 
-
 
3
import java.util.HashMap;
2
 
4
 
3
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.RegistreId;
6
import org.tela_botanica.client.RegistreId;
5
import org.tela_botanica.client.http.JsonRestRequestBuilder;
7
import org.tela_botanica.client.http.JsonRestRequestBuilder;
6
import org.tela_botanica.client.http.JsonRestRequestCallback;
8
import org.tela_botanica.client.http.JsonRestRequestCallback;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.synchronisation.Reponse;
11
import org.tela_botanica.client.synchronisation.Reponse;
10
import org.tela_botanica.client.util.Debug;
12
import org.tela_botanica.client.util.Debug;
11
import org.tela_botanica.client.util.UtilDAO;
13
import org.tela_botanica.client.util.UtilDAO;
12
 
14
 
13
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Registry;
14
import com.google.gwt.core.client.GWT;
16
import com.google.gwt.core.client.GWT;
15
import com.google.gwt.http.client.URL;
17
import com.google.gwt.http.client.URL;
16
import com.google.gwt.json.client.JSONArray;
18
import com.google.gwt.json.client.JSONArray;
-
 
19
import com.google.gwt.json.client.JSONObject;
17
import com.google.gwt.json.client.JSONValue;
20
import com.google.gwt.json.client.JSONValue;
18
 
21
 
19
public class CollectionACommentaireAsyncDao {
22
public class CollectionACommentaireAsyncDao {
20
	private static final String SERVICE_NOM = "CoelCollectionACommentaire";
23
	private static final String SERVICE_NOM = "CoelCollectionACommentaire";
21
	public static final String SUPPRESSION_PAR_COLLECTION = "SuppressionParCollection";
24
	public static final String SUPPRESSION_PAR_COLLECTION = "SuppressionParCollection";
22
	public static final String SUPPRESSION_PAR_COMMENTAIRE = "SuppressionParCommentaire";
25
	public static final String SUPPRESSION_PAR_COMMENTAIRE = "SuppressionParCommentaire";
23
	
26
	
24
	private String utilisateurId = null;
27
	private String utilisateurId = null;
25
	private Rafraichissable vueARafraichir = null;
28
	private Rafraichissable vueARafraichir = null;
26
 
29
 
27
	public CollectionACommentaireAsyncDao(Rafraichissable vueARafraichirCourrante) {
30
	public CollectionACommentaireAsyncDao(Rafraichissable vueARafraichirCourrante) {
28
		if (Mediateur.DEBUG) System.out.println("|| CollectionACommentaireAsyncDao > vueARafraichir = "+vueARafraichirCourrante.getClass().toString());
31
		if (Mediateur.DEBUG) System.out.println("|| CollectionACommentaireAsyncDao > vueARafraichir = "+vueARafraichirCourrante.getClass().toString());
29
		vueARafraichir = vueARafraichirCourrante;
32
		vueARafraichir = vueARafraichirCourrante;
30
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
33
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
31
	}
34
	}
32
	
35
	
-
 
36
	public void selectionner(final boolean paginationProgressive, final String collectionId, final String recherche, final int start, final int nbElements, final Integer seqId) {
33
	public void selectionner(final String collectionId, final Integer seqId) {
37
		
34
		String[] parametres = {collectionId};
38
		String[] parametres = {collectionId};
35
		
39
		
-
 
40
		HashMap<String, String> restrictions = new HashMap<String, String>();
36
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
41
		
37
 
42
		if (nbElements != -1)	{
-
 
43
			restrictions.put("limit", String.valueOf(nbElements));
-
 
44
		}
38
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
45
 
-
 
46
		/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/
-
 
47
		if (paginationProgressive) {
39
			@Override
48
 
-
 
49
			/** DEFINITION DU TUPLE DE DEPART **/
40
			public void surReponse(JSONValue responseValue) {
50
			restrictions.put("start", String.valueOf(start));
41
				Information info = new Information("liste_collection_a_commentaire");
51
			
-
 
52
			/** CONSTRUCTION DE LA REQUETE **/
42
				if (responseValue != null) {
53
    		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
43
					// Si la requête est un succès, reception d'un tableau
54
    		
-
 
55
    		/** ENVOI DE LA REQUETE **/
-
 
56
    		rb.envoyerRequete(null, new JsonRestRequestCallback()
44
					if (responseValue.isArray() != null) {
57
    		{
-
 
58
    			/** RECEPTION DE LA REPONSE **/
45
						final JSONArray reponse = responseValue.isArray();
59
    			public void surReponse(JSONValue responseValue)
46
						// Transformation du tableau JSON réponse en ListCommentaier
60
    			{    				
47
						CollectionACommentaireListe commentaires = new CollectionACommentaireListe(reponse);
61
    				/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy.
48
						info.setDonnee(0, commentaires);
-
 
49
						
62
    				 * On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/
-
 
63
    				
50
						// et on met à jour le demandeur des données
64
					if (seqId != null)	{
51
						if (seqId != null)	{
65
						if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste paginée, retour au sequenceur");
52
							Reponse reponseRequete = new Reponse(info, seqId);
66
						Reponse reponseRequete = new Reponse(responseValue, seqId);
53
							vueARafraichir.rafraichir(reponseRequete);
67
						vueARafraichir.rafraichir(reponseRequete);
-
 
68
					}
54
						}
69
					else	{
55
						else	{
-
 
56
							vueARafraichir.rafraichir(info);
-
 
57
						}
-
 
58
					} else {
70
						if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString());
-
 
71
						vueARafraichir.rafraichir(responseValue);
-
 
72
					}
-
 
73
    			}
-
 
74
    		});
59
						GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
75
		}
-
 
76
		/** GESTION DE LA REQUETE dans le cas d'une liste NON paginée progressive **/
-
 
77
		else {
-
 
78
			
-
 
79
			/** DEFINITION DU TUPLE DE DEPART **/
-
 
80
			restrictions.put("start", String.valueOf(start*nbElements));
-
 
81
			
-
 
82
			final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
-
 
83
			
-
 
84
			rb.envoyerRequete(null, new JsonRestRequestCallback() {
-
 
85
				@Override
-
 
86
				public void surReponse(JSONValue responseValue) {
-
 
87
					
60
					}
88
					Information info = new Information("liste_collection_a_commentaire");
-
 
89
 
-
 
90
					if (responseValue != null) {
-
 
91
 
61
				} else {
92
						JSONObject responseObject = responseValue.isObject();
-
 
93
						if (responseObject != null) {
-
 
94
							// Si la réponse est un tableau, alors c'est une liste de collections qui a été retournée
-
 
95
							if (responseObject.get("collectionsACommentaire").isArray() != null) {
-
 
96
 
-
 
97
								final JSONArray reponse = responseObject.get("collectionsACommentaire").isArray();
62
					if (collectionId == null) {
98
								
-
 
99
								// Transformation du tableau JSON réponse en ListeInstitution
63
						// 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
100
								CollectionACommentaireListe publications = new CollectionACommentaireListe(reponse);
-
 
101
								info.setDonnee(0, publications);
64
						info.setMessage("Aucune relations entre la collection et les commentaires");
102
								
-
 
103
								// et on met à jour le demandeur des données
65
						
104
								if (seqId != null)	{
66
						if (seqId != null)	{
105
									if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste non paginée, retour au sequenceur");
-
 
106
									Reponse reponseRequete = new Reponse(info, seqId);
-
 
107
									vueARafraichir.rafraichir(reponseRequete);
-
 
108
								}
-
 
109
								else	{
-
 
110
									if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste non paginée, retour au sequenceur");
-
 
111
									vueARafraichir.rafraichir(info);
-
 
112
								}
-
 
113
							// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
-
 
114
							} else if (responseObject.get("collectionsACommentaire").isObject() != null) {
67
							Reponse reponseRequete = new Reponse(info, seqId);
115
								GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
68
							vueARafraichir.rafraichir(reponseRequete);
116
							}
-
 
117
						}
-
 
118
					} else {
-
 
119
						// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
69
						}
120
						if (collectionId == null) {
70
						else	{
121
							info.setMessage("Aucune relations entre la collection et les commentaires");
71
							vueARafraichir.rafraichir(info);
122
							vueARafraichir.rafraichir(info);
72
						}
123
						}
73
					}
124
					}
74
				}
125
				}
75
			}
126
			});
76
		});
127
		}
77
	}
128
	}		
78
 
129
	
79
	public void ajouter(String collectionId, CollectionACommentaire commentaires) {
130
	public void ajouter(String collectionId, CollectionACommentaire commentaires) {
80
		String postDonneesEncodees = construirePost(collectionId, commentaires);
131
		String postDonneesEncodees = construirePost(collectionId, commentaires);
81
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);	
132
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);	
82
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
133
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
83
			@Override
134
			@Override
84
			public void surReponse(JSONValue responseValue) {							
135
			public void surReponse(JSONValue responseValue) {							
85
				// Si la requête est un succès, reception d'une chaine
136
				// Si la requête est un succès, reception d'une chaine
86
				if (responseValue.isString() != null) {
137
				if (responseValue.isString() != null) {
87
					Information info = new Information("ajout_collection_a_commentaire");
138
					Information info = new Information("ajout_collection_a_commentaire");
88
					info.setMessage(responseValue.isString().stringValue());
139
					info.setMessage(responseValue.isString().stringValue());
89
					vueARafraichir.rafraichir(info);
140
					vueARafraichir.rafraichir(info);
90
				} else {
141
				} else {
91
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
142
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
92
				}
143
				}
93
			}
144
			}
94
		});
145
		});
95
	}
146
	}
96
	
147
	
97
	public void modifier(CollectionACommentaire commentaires) {
148
	public void modifier(CollectionACommentaire commentaires) {
98
		String[] parametres = {commentaires.getIdCollection(), commentaires.getIdCommentaire()};
149
		String[] parametres = {commentaires.getIdCollection(), commentaires.getIdCommentaire()};
99
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
150
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
100
		
151
		
101
		String postDonneesEncodees = construirePost(commentaires.getIdCollection(), commentaires);
152
		String postDonneesEncodees = construirePost(commentaires.getIdCollection(), commentaires);
102
		
153
		
103
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
154
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
104
			@Override
155
			@Override
105
			public void surReponse(JSONValue responseValue) {
156
			public void surReponse(JSONValue responseValue) {
106
				Information info = new Information("modif_collection_a_commentaire");
157
				Information info = new Information("modif_collection_a_commentaire");
107
				// Si la requête est un succès, reception d'une chaine
158
				// Si la requête est un succès, reception d'une chaine
108
				if (responseValue.isString() != null) {
159
				if (responseValue.isString() != null) {
109
					info.setMessage(responseValue.isString().stringValue());
160
					info.setMessage(responseValue.isString().stringValue());
110
					vueARafraichir.rafraichir(info);
161
					vueARafraichir.rafraichir(info);
111
				} else {
162
				} else {
112
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
163
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
113
				}
164
				}
114
			}
165
			}
115
		});
166
		});
116
	}
167
	}
117
	
168
	
118
	public void supprimer(String idCollectionACommentaire, String mode) {
169
	public void supprimer(String idCollectionACommentaire, String mode) {
119
		String[] parametres = {utilisateurId, idCollectionACommentaire, mode};
170
		String[] parametres = {utilisateurId, idCollectionACommentaire, mode};
120
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
171
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
121
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
172
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
122
			@Override
173
			@Override
123
			public void surReponse(JSONValue responseValue) {
174
			public void surReponse(JSONValue responseValue) {
124
				if (responseValue.isString() != null) {
175
				if (responseValue.isString() != null) {
125
					Information info = new Information("suppression_collection_a_commentaire");
176
					Information info = new Information("suppression_collection_a_commentaire");
126
					info.setMessage(responseValue.isString().stringValue());
177
					info.setMessage(responseValue.isString().stringValue());
127
					vueARafraichir.rafraichir(info);
178
					vueARafraichir.rafraichir(info);
128
				} else {
179
				} else {
129
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
180
					GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
130
				}
181
				}
131
			}
182
			}
132
		});
183
		});
133
	}
184
	}
134
	
185
	
135
	private String construirePost(String collectionId, CollectionACommentaire commentaire) {
186
	private String construirePost(String collectionId, CollectionACommentaire commentaire) {
136
		String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId) +
187
		String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId) +
137
			"&ccac_id_collection=" + URL.encodeComponent(collectionId) +
188
			"&ccac_id_collection=" + URL.encodeComponent(collectionId) +
138
			"&ccac_id_commentaire=" + URL.encodeComponent(commentaire.getIdCommentaire()) +
189
			"&ccac_id_commentaire=" + URL.encodeComponent(commentaire.getIdCommentaire()) +
139
			"&ccac_truk_type=" + URL.encodeComponent(commentaire.getType());
190
			"&ccac_truk_type=" + URL.encodeComponent(commentaire.getType());
140
		return postDonnees;
191
		return postDonnees;
141
	}
192
	}
142
}
193
}