Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

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