Subversion Repositories eFlore/Applications.coel

Rev

Rev 1417 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1417 Rev 1513
Line 1... Line 1...
1
package org.tela_botanica.client.modeles.collection;
1
package org.tela_botanica.client.modeles.collection;
Line -... Line 2...
-
 
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;
Line 12... Line 14...
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;
-
 
18
import com.google.gwt.json.client.JSONArray;
16
import com.google.gwt.json.client.JSONArray;
19
import com.google.gwt.json.client.JSONObject;
Line 17... Line 20...
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 {
Line 28... Line 31...
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
	}
Line 32... Line 35...
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
		
Line 34... Line 38...
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);
-
 
53
							vueARafraichir.rafraichir(reponseRequete);
-
 
54
						}
-
 
55
						else	{
-
 
56
							vueARafraichir.rafraichir(info);
-
 
57
						}
-
 
58
					} else {
66
						Reponse reponseRequete = new Reponse(responseValue, seqId);
59
						GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null);
67
						vueARafraichir.rafraichir(reponseRequete);
-
 
68
					}
-
 
69
					else	{
-
 
70
						if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString());
-
 
71
						vueARafraichir.rafraichir(responseValue);
-
 
72
					}
-
 
73
    			}
-
 
74
    		});
-
 
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);