Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
3
 
4
import org.tela_botanica.client.image.ImageModele;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import com.google.gwt.http.client.Request;
7
import com.google.gwt.http.client.RequestBuilder;
8
import com.google.gwt.http.client.RequestCallback;
9
import com.google.gwt.http.client.RequestException;
10
import com.google.gwt.http.client.Response;
11
import com.google.gwt.json.client.JSONArray;
12
import com.google.gwt.json.client.JSONParser;
13
import com.google.gwt.json.client.JSONValue;
14
import com.google.gwt.user.client.Window;
15
 
16
/**
17
 * DAO d'accès à l'arbre de mots clés
18
 * @author aurelien
19
 *
20
 */
21
public class MotsClesAsynchroneDAO {
22
 
23
	/**
24
	 * Le modele associé au DAO
25
	 */
26
	private ImageModele iModele = null ;
27
 
28
	public MotsClesAsynchroneDAO(ImageModele im)
29
	{
30
		iModele = im ;
31
	}
32
 
33
	/**
34
	 * Setteur pour le modèle
35
	 * @param im le modèle à associer
36
	 */
37
	public void setIModele(ImageModele im)
38
	{
39
		iModele = im ;
40
	}
41
 
42
	/**
43
	 * Envoie une requete au serveur jrest pour obtenir l'arbre des mots clés
44
	 * @param r le rafraichissable qui demande les données
45
	 */
46
	public void obtenirListeMotsCles(final Rafraichissable r)
47
	{
48
		// on demande tous les mots clés associés à l'utilisateur
49
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,iModele.getConfig().getServiceBaseUrl()+"/InventoryKeyWordList/"+iModele.getIdentifiant()) ;
50
 
51
		try {
52
			rb.sendRequest(null, new RequestCallback() {
53
 
54
				public void onError(Request request, Throwable exception) {
55
					// TODO Auto-generated method stub
56
 
57
				}
58
 
59
				public void onResponseReceived(Request request, Response response) {
60
 
61
					final JSONValue responseValue = JSONParser.parse(response.getText());
62
					// si la requête est un succès on reçoit un tableau
63
					if (responseValue.isArray() != null) {
64
 
65
						final JSONArray reponse = responseValue.isArray();
66
							// et on met à jour le demandeur des données
67
							r.rafraichir(reponse, true) ;
68
					}
69
 
70
				}
71
 
72
			}) ;
73
		} catch (RequestException e) {
74
			// TODO Auto-generated catch block
75
			e.printStackTrace();
76
		}
77
	}
78
 
79
	/**
80
	 * Envoie requete au serveur jrest pour ajouter un mot clé
81
	 * @param motcle le mots clés à ajouter avec son parent et son identifiant
82
	 */
83
	public void ajouterBaseDeDonnees(String motcle)
84
	{
85
		if(!motcle.equals(""))
86
		{
87
			String postData = motcle ;
88
 
89
			// on fait un post asynchrone
90
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/InventoryKeyWordList/") ;
91
			try {
92
				rb.sendRequest(postData, new RequestCallback() {
93
 
94
					public void onError(Request request, Throwable exception) {
95
						// TODO Auto-generated method stub
96
 
97
					}
98
 
99
					public void onResponseReceived(Request request,
100
							Response response) {
101
 
102
						// si on reçoit une erreur d'ajout, on affiche un message d'erreur
103
						if(response.getText().equals("ERROR"))
104
						{
105
							Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
106
									"nous vous invitons à recharger la page. ") ;
107
						}
108
 
109
					}
110
 
111
				}) ;
112
			} catch (RequestException e) {
113
				// TODO Auto-generated catch block
114
				e.printStackTrace();
115
			}
116
		}
117
	}
118
 
119
	/**
120
	 * Envoie requete au serveur jrest pour supprimer un mot clé
121
	 * @param motcle le mots clés à supprimer
122
	 */
123
	public void supprimerBaseDeDonnees(String motcle)
124
	{
125
		if(!motcle.equals(""))
126
		{
127
			String postData = "" ;
128
			postData += "&action=DELETE" ;
129
 
130
			RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/InventoryKeyWordList/"+iModele.getIdentifiant()+"/"+motcle) ;
131
 
132
				try {
133
					rb.sendRequest(postData, new RequestCallback() {
134
 
135
						public void onError(Request request, Throwable exception) {
136
							// TODO Auto-generated method stub
137
 
138
						}
139
 
140
						public void onResponseReceived(Request request,
141
								Response response) {
142
							if(response.equals("ERROR"))
143
							{
144
								Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
145
										"nous vous invitons à recharger la page. ") ;
146
							}
147
						}
148
					});
149
 
150
				} catch (RequestException e) {
151
					// TODO Auto-generated catch block
152
					e.printStackTrace();
153
				}
154
		}
155
	}
156
 
157
	/**
158
	 * Envoie requete au serveur jrest pour modifier un mot clé
159
	 * @param motcle le mots clés à modifier avec son parent et son identifiant
160
	 */
161
	public void modifierBaseDeDonnees(String motcle) {
162
 
163
		if(!motcle.equals(""))
164
		{
165
 
166
		String postData = "" ;
167
		postData += "&action=modification"+motcle ;
168
 
169
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/InventoryKeyWordList/"+iModele.getIdentifiant()) ;
170
			try {
171
				rb.sendRequest(postData, new RequestCallback() {
172
 
173
					public void onError(Request request, Throwable exception) {
174
						// TODO Auto-generated method stub
175
 
176
					}
177
 
178
					public void onResponseReceived(Request request, Response response) {
179
						// TODO Auto-generated method stub
180
 
181
					}
182
 
183
				});
184
			} catch (RequestException e) {
185
				// TODO Auto-generated catch block
186
				e.printStackTrace();
187
			}
188
		}
189
	}
190
 
191
	/**
192
	 * Envoie requete au serveur jrest pour modifier un mot clé
193
	 * @param motcle le mots clés à ajouter avec son ancien parent, son nouveau et son identifiant
194
	 */
195
	public void deplacerBaseDeDonnees(String motcle) {
196
 
197
		if(!motcle.equals(""))
198
		{
199
 
200
		String postData = "" ;
201
		postData += "&action=deplacement"+motcle ;
202
 
203
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,iModele.getConfig().getServiceBaseUrl()+"/InventoryKeyWordList/"+iModele.getIdentifiant()) ;
204
			try {
205
				rb.sendRequest(postData, new RequestCallback() {
206
 
207
					public void onError(Request request, Throwable exception) {
208
						// TODO Auto-generated method stub
209
 
210
					}
211
 
212
					public void onResponseReceived(Request request, Response response) {
213
						// TODO Auto-generated method stub
214
 
215
					}
216
 
217
				});
218
			} catch (RequestException e) {
219
				// TODO Auto-generated catch block
220
				e.printStackTrace();
221
			}
222
		}
223
 
224
	}
225
 
226
}