Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

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