Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 935 Rev 1046
1
package org.tela_botanica.client.modeles.publication;
1
package org.tela_botanica.client.modeles.publication;
-
 
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;
-
 
11
import org.tela_botanica.client.modeles.structure.StructureListe;
9
import org.tela_botanica.client.util.UtilDAO;
12
import org.tela_botanica.client.util.UtilDAO;
10
 
13
 
11
import com.extjs.gxt.ui.client.Registry;
14
import com.extjs.gxt.ui.client.Registry;
12
import com.google.gwt.core.client.GWT;
15
import com.google.gwt.core.client.GWT;
13
import com.google.gwt.json.client.JSONArray;
16
import com.google.gwt.json.client.JSONArray;
14
import com.google.gwt.json.client.JSONObject;
17
import com.google.gwt.json.client.JSONObject;
15
import com.google.gwt.json.client.JSONValue;
18
import com.google.gwt.json.client.JSONValue;
16
 
19
 
17
public class PublicationAsyncDao {
20
public class PublicationAsyncDao {
18
	private static final String SERVICE_NOM = "CoelPublication";
21
	private static final String SERVICE_NOM = "CoelPublication";
19
	
22
	
20
	private String utilisateurId = null;
23
	private String utilisateurId = null;
21
	private Rafraichissable vueARafraichir = null;
24
	private Rafraichissable vueARafraichir = null;
22
	
25
	
23
	public PublicationAsyncDao(Rafraichissable vueARafraichirCourrante) {
26
	public PublicationAsyncDao(Rafraichissable vueARafraichirCourrante) {
24
		vueARafraichir = vueARafraichirCourrante ;
27
		vueARafraichir = vueARafraichirCourrante ;
25
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
28
		utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
26
	}
29
	}
27
 
30
 
28
	public void selectionner(final String publicationId, String projetId, String nomComplet) {
31
	public void selectionner(final String publicationId, String projetId, String nomComplet, final int nbElements, final int pageCourante) {
-
 
32
		String[] parametres = {projetId, publicationId, nomComplet};
-
 
33
 
-
 
34
		HashMap<String, String> restrictions = new HashMap<String, String>();
-
 
35
		restrictions.put("start", String.valueOf(pageCourante));
-
 
36
		if (nbElements != -1)	{
-
 
37
			restrictions.put("limit", String.valueOf(nbElements));
29
		String[] parametres = {projetId, publicationId, nomComplet};
38
		}
30
 
39
		
31
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
40
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
32
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
41
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
33
			@Override
42
			@Override
34
			public void surReponse(JSONValue responseValue) {
43
			public void surReponse(JSONValue responseValue) {
35
				if (responseValue != null) {
44
				if (responseValue != null) {
36
					// Si la requête est un succès, réception d'un objet ou d'un tableau
45
					// Si la requête est un succès, réception d'un objet ou d'un tableau
-
 
46
					JSONArray responseArray = responseValue.isArray();
37
					if (responseValue.isObject() != null) {
47
					if (responseArray.get(1).isObject() != null) {
38
						final JSONObject reponse = responseValue.isObject();
48
						final JSONObject reponse = responseValue.isObject();
39
						// Transformation du tableau JSON réponse en ListeInstitution
49
						// Transformation du tableau JSON réponse en ListeInstitution
40
						Publication publication = new Publication(reponse);
50
						Publication publication = new Publication(reponse);
41
						// et on met à jour le demandeur des données
51
						// et on met à jour le demandeur des données
42
						vueARafraichir.rafraichir(publication);
52
						vueARafraichir.rafraichir(publication);
43
					} else if (responseValue.isArray() != null) {
53
					} else if (responseArray.get(1).isArray() != null) {
44
						final JSONArray reponse = responseValue.isArray();
54
						final JSONArray reponse = responseValue.isArray();
45
						PublicationListe publications = new PublicationListe(reponse);
55
						PublicationListe publications = new PublicationListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
-
 
56
						
-
 
57
						publications.setTaillePage(nbElements);
-
 
58
						publications.setPageCourante(pageCourante);
-
 
59
						
46
						vueARafraichir.rafraichir(publications);
60
						vueARafraichir.rafraichir(publications);
47
					} else {
61
					} else {
48
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
62
						GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
49
					}
63
					}
50
				} else {
64
				} else {
51
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
65
					// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
52
					if (publicationId == null) {
66
					if (publicationId == null) {
53
						PublicationListe publications = new PublicationListe(0);
67
						PublicationListe publications = new PublicationListe(0);
54
						vueARafraichir.rafraichir(publications);
68
						vueARafraichir.rafraichir(publications);
55
					}
69
					}
56
				}
70
				}
57
			}
71
			}
58
		});
72
		});
59
	}
73
	}
60
 
74
 
61
	public void ajouter(Publication publication) {
75
	public void ajouter(Publication publication) {
62
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
76
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
63
		
77
		
64
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
78
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
65
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
79
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
66
			@Override
80
			@Override
67
			public void surReponse(JSONValue reponseValeur) {
81
			public void surReponse(JSONValue reponseValeur) {
68
				traiterReponse(reponseValeur, "publication_valide");
82
				traiterReponse(reponseValeur, "publication_valide");
69
			}
83
			}
70
		}) ;
84
		}) ;
71
	}
85
	}
72
	
86
	
73
	public void modifier(Publication publication) {
87
	public void modifier(Publication publication) {
74
		String[] parametres = {publication.getId()};
88
		String[] parametres = {publication.getId()};
75
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
89
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
76
		
90
		
77
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
91
		String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
78
		
92
		
79
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
93
		rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
80
			@Override
94
			@Override
81
			public void surReponse(JSONValue reponseValeur) {
95
			public void surReponse(JSONValue reponseValeur) {
82
				traiterReponse(reponseValeur, "publication_valide");
96
				traiterReponse(reponseValeur, "publication_valide");
83
			}
97
			}
84
		});
98
		});
85
	}
99
	}
86
 
100
 
87
	public void supprimer(String publicationsId) {
101
	public void supprimer(String publicationsId) {
88
		String[] parametres = {utilisateurId, publicationsId};
102
		String[] parametres = {utilisateurId, publicationsId};
89
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
103
		final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
90
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
104
		rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
91
			@Override
105
			@Override
92
			public void surReponse(JSONValue reponseValeur) {
106
			public void surReponse(JSONValue reponseValeur) {
93
				traiterReponse(reponseValeur, "suppression_publication");
107
				traiterReponse(reponseValeur, "suppression_publication");
94
			}
108
			}
95
		});
109
		});
96
	}
110
	}
97
	
111
	
98
	private void traiterReponse(JSONValue reponseValeur, String type) {
112
	private void traiterReponse(JSONValue reponseValeur, String type) {
99
		Information info = new Information(type);
113
		Information info = new Information(type);
100
		// Si la requête est un succès, réception d'une chaîne
114
		// Si la requête est un succès, réception d'une chaîne
101
		if (reponseValeur.isString() != null) {
115
		if (reponseValeur.isString() != null) {
102
			info.setDonnee(reponseValeur.isString().stringValue());
116
			info.setDonnee(reponseValeur.isString().stringValue());
103
		} else {
117
		} else {
104
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
118
			info.setDeboguage("La réponse n'est pas une chaine JSON.");
105
		}
119
		}
106
		vueARafraichir.rafraichir(info);
120
		vueARafraichir.rafraichir(info);
107
	}
121
	}
108
 
122
 
109
}
123
}