Subversion Repositories eFlore/Applications.coel

Rev

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

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