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