Subversion Repositories eFlore/Applications.cel

Rev

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

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