Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1009 Rev 1293
1
package org.tela_botanica.client.modeles.dao;
1
package org.tela_botanica.client.modeles.dao;
2
 
2
 
3
import java.util.Iterator;
3
import java.util.Iterator;
4
 
4
 
5
import org.tela_botanica.client.image.ImageModele;
5
import org.tela_botanica.client.image.ImageModele;
6
import org.tela_botanica.client.modeles.objets.Configuration;
6
import org.tela_botanica.client.modeles.objets.Configuration;
7
import org.tela_botanica.client.modeles.objets.ImageCarnet;
7
import org.tela_botanica.client.modeles.objets.ImageCarnet;
8
import org.tela_botanica.client.modeles.objets.Utilisateur;
8
import org.tela_botanica.client.modeles.objets.Utilisateur;
9
 
9
 
10
import com.google.gwt.http.client.Request;
10
import com.google.gwt.http.client.Request;
11
import com.google.gwt.http.client.RequestBuilder;
11
import com.google.gwt.http.client.RequestBuilder;
12
import com.google.gwt.http.client.RequestCallback;
12
import com.google.gwt.http.client.RequestCallback;
13
import com.google.gwt.http.client.RequestException;
13
import com.google.gwt.http.client.RequestException;
14
import com.google.gwt.http.client.Response;
14
import com.google.gwt.http.client.Response;
15
import com.google.gwt.user.client.Window;
-
 
16
 
15
 
17
/**
16
/**
18
 * DAO d'accès à une image, n'est utilisé que pour l'écriture et pas pour la
17
 * DAO d'accès à une image, n'est utilisé que pour l'écriture et pas pour la
19
 * lecture des images qui se fait par paquet
18
 * lecture des images qui se fait par paquet
20
 * 
19
 * 
21
 * @author aurelien
20
 * @author aurelien
22
 * 
21
 * 
23
 */
22
 */
24
public class ImageAsynchroneDAO {
23
public class ImageAsynchroneDAO {
25
 
24
 
26
	ImageModele iModele = null;
25
	ImageModele iModele = null;
27
 
26
 
28
	public ImageAsynchroneDAO(ImageModele im) {
27
	public ImageAsynchroneDAO(ImageModele im) {
29
		iModele = im;
28
		iModele = im;
30
	}
29
	}
31
 
30
 
32
	public void setIModele(ImageModele im) {
31
	public void setIModele(ImageModele im) {
33
		iModele = im;
32
		iModele = im;
34
	}
33
	}
35
 
34
 
36
	/**
35
	/**
37
	 * Met à jour la base de données avec toutes les données d'une image
36
	 * Met à jour la base de données avec toutes les données d'une image
38
	 * 
37
	 * 
39
	 * @param ic
38
	 * @param ic
40
	 *            l'image à mettre à jour
39
	 *            l'image à mettre à jour
41
	 */
40
	 */
42
	public void SynchroniserBaseDeDonnees(final ImageCarnet ic) {
41
	public void SynchroniserBaseDeDonnees(final ImageCarnet ic) {
43
		String postData = "";
42
		String postData = "";
44
 
43
 
45
		// on construit le post avec toutes les valeur de l'image
44
		// on construit le post avec toutes les valeur de l'image
46
		for (Iterator<String> imgIt = ic.keySet().iterator(); imgIt.hasNext();) {
45
		for (Iterator<String> imgIt = ic.keySet().iterator(); imgIt.hasNext();) {
47
 
46
 
48
			String key = imgIt.next();
47
			String key = imgIt.next();
49
			String valeur = ic.renvoyerValeurCorrecte(key);
48
			String valeur = ic.renvoyerValeurCorrecte(key);
50
			postData += "&" + key + "=" + valeur;
49
			postData += "&" + key + "=" + valeur;
51
 
50
 
52
		}
51
		}
53
 
52
 
54
		// et on envoie une requête asynchrone
53
		// et on envoie une requête asynchrone
55
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
54
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
56
				+ "/inventoryImage/" + iModele.getIdentifiant() + "/");
55
				+ "/inventoryImage/" + iModele.getIdentifiant() + "/");
57
 
56
 
58
		try {
57
		try {
59
			rb.sendRequest(postData, new RequestCallback() {
58
			rb.sendRequest(postData, new RequestCallback() {
-
 
59
 
60
 
60
				@Override
61
				public void onError(Request request, Throwable exception) {
61
				public void onError(Request request, Throwable exception) {
62
					// TODO Auto-generated method stub
-
 
63
 
62
					// TODO Auto-generated method stub
-
 
63
				}
64
				}
64
 
65
 
65
				@Override
66
				public void onResponseReceived(Request request,
66
				public void onResponseReceived(Request request,
67
						Response response) {
67
						Response response) {
68
 
68
 
69
					if (response.getText().equals("OK")) {
69
					if (response.getText().equals("OK")) {
70
						return;
70
						return;
71
					} else {
71
					} else {
72
						com.google.gwt.user.client.Window
72
						com.google.gwt.user.client.Window
73
								.alert("Problème lors de la mise à jour des données");
73
								.alert("Problème lors de la mise à jour des données");
74
					}
74
					}
75
				}
75
				}
76
 
76
 
77
			});
77
			});
78
 
78
 
79
		} catch (RequestException e) {
79
		} catch (RequestException e) {
80
			// TODO Auto-generated catch block
80
			// TODO Auto-generated catch block
81
			e.printStackTrace();
81
			e.printStackTrace();
82
		}
82
		}
83
	}
83
	}
84
 
84
 
85
	/**
85
	/**
86
	 * Met à jour la base de données avec les mots clés associés à l'image
86
	 * Met à jour la base de données avec les mots clés associés à l'image
87
	 * 
87
	 * 
88
	 * @param ic
88
	 * @param ic
89
	 *            l'image à mettre à jour
89
	 *            l'image à mettre à jour
90
	 */
90
	 */
91
	public void SynchroniserMotsClesImageBaseDeDonnees(final ImageCarnet ic) {
91
	public void SynchroniserMotsClesImageBaseDeDonnees(final ImageCarnet ic) {
92
		String postData = "";
92
		String postData = "";
93
 
93
 
94
		// on récupère les mots clés de l'image et on fabrique le post
94
		// on récupère les mots clés de l'image et on fabrique le post
95
		String motsCles = ic.getMotsCles();
95
		String motsCles = ic.getMotsCles();
96
		String id = ic.getId();
96
		String id = ic.getId();
97
		postData += "&id_image=" + id + "&id_mot_cle_utilisateur=" + motsCles;
97
		postData += "&id_image=" + id + "&id_mot_cle_utilisateur=" + motsCles;
98
 
98
 
99
		// on envoie une requête asynchrone
99
		// on envoie une requête asynchrone
100
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,
100
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,
101
				Configuration.getServiceBaseUrl()
101
				Configuration.getServiceBaseUrl()
102
				+ "/inventoryKeyWordImageList/" +Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+ "/");
102
				+ "/inventoryKeyWordImageList/" +Utilisateur.getInstance().getIdentifiantUtilisateurConsulte()+ "/");
103
 
103
 
104
		try {
104
		try {
105
			rb.sendRequest(postData, new RequestCallback() {
105
			rb.sendRequest(postData, new RequestCallback() {
-
 
106
 
106
 
107
				@Override
107
				public void onError(Request request, Throwable exception) {
108
				public void onError(Request request, Throwable exception) {
108
					// TODO Auto-generated method stub
109
					// TODO Auto-generated method stub
109
 
110
 
110
				}
111
				}
-
 
112
 
111
 
113
				@Override
112
				public void onResponseReceived(Request request,
114
				public void onResponseReceived(Request request,
113
						Response response) {
115
						Response response) {
114
 
116
 
115
					// TODO: les messages ne devraient pas être affichés ici
117
					// TODO: les messages ne devraient pas être affichés ici
116
					// mais l'architecture par très malléable complique les choses
118
					// mais l'architecture par très malléable complique les choses
117
					if (response.getText().equals("OK")) {
119
					if (response.getText().equals("OK")) {
118
						com.google.gwt.user.client.Window
120
						com.google.gwt.user.client.Window
119
						.alert("Les mots clés suivants ont bien été appliqués : "+iModele.renvoyerChaineMotClesTexte(ic));
121
						.alert("Les mots clés suivants ont bien été appliqués : "+iModele.renvoyerChaineMotClesTexte(ic));
120
						return;
122
						return;
121
					} else {
123
					} else {
122
						com.google.gwt.user.client.Window
124
						com.google.gwt.user.client.Window
123
								.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());
125
								.alert("Problème lors de la mise à jour des données, le serveur a répondu "+response.getText());
124
					}
126
					}
125
				}
127
				}
126
 
128
 
127
			});
129
			});
128
 
130
 
129
		} catch (RequestException e) {
131
		} catch (RequestException e) {
130
			// TODO Auto-generated catch block
132
			// TODO Auto-generated catch block
131
			e.printStackTrace();
133
			e.printStackTrace();
132
		}
134
		}
133
	}
135
	}
134
 
136
 
135
	/**
137
	/**
136
	 * Supprime une image de la base de données
138
	 * Supprime une image de la base de données
137
	 * 
139
	 * 
138
	 * @param ic
140
	 * @param ic
139
	 *            l'image à supprimer
141
	 *            l'image à supprimer
140
	 */
142
	 */
141
	public void supprimerBaseDeDonnees(final ImageCarnet ic) {
143
	public void supprimerBaseDeDonnees(final ImageCarnet ic) {
142
		// le post contient l'action delete pour JREST (qui ne gère pas DELETE
144
		// le post contient l'action delete pour JREST (qui ne gère pas DELETE
143
		// comme une requête à part entière)
145
		// comme une requête à part entière)
144
		String postData = "";
146
		String postData = "";
145
		postData += "&action=DELETE";
147
		postData += "&action=DELETE";
146
 
148
 
147
		// on envoie un post avec l'id de l'image à supprimer
149
		// on envoie un post avec l'id de l'image à supprimer
148
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
150
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl()
149
				+ "/inventoryImage/"
151
				+ "/inventoryImage/"
150
				+ iModele.getIdentifiant()
152
				+ iModele.getIdentifiant()
151
				+ "/"
153
				+ "/"
152
				+ ic.getId());
154
				+ ic.getId());
153
 
155
 
154
		try {
156
		try {
155
			rb.sendRequest(postData, new RequestCallback() {
157
			rb.sendRequest(postData, new RequestCallback() {
-
 
158
 
156
 
159
				@Override
157
				public void onError(Request request, Throwable exception) {
160
				public void onError(Request request, Throwable exception) {
158
					// TODO Auto-generated method stub
161
					// TODO Auto-generated method stub
159
 
162
 
160
				}
163
				}
-
 
164
 
161
 
165
				@Override
162
				public void onResponseReceived(Request request,
166
				public void onResponseReceived(Request request,
163
						Response response) {
167
						Response response) {
164
 
168
 
165
					if (response.getText().equals("OK")) {
169
					if (response.getText().equals("OK")) {
166
						
170
						
167
						return;
171
						return;
168
					} else {
172
					} else {
169
						com.google.gwt.user.client.Window
173
						com.google.gwt.user.client.Window
170
								.alert("Problème lors de la mise à jour des données : "+response.getText());
174
								.alert("Problème lors de la mise à jour des données : "+response.getText());
171
					}
175
					}
172
				}
176
				}
173
 
177
 
174
			});
178
			});
175
 
179
 
176
		} catch (RequestException e) {
180
		} catch (RequestException e) {
177
			// TODO Auto-generated catch block
181
			// TODO Auto-generated catch block
178
			e.printStackTrace();
182
			e.printStackTrace();
179
		}
183
		}
180
	}
184
	}
181
}
185
}