Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 36 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
22 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
3
import java.util.Iterator;
4
 
5
import org.tela_botanica.client.image.ImageMediateur;
48 aperonnet 6
import org.tela_botanica.client.image.ImageModele;
22 aperonnet 7
 
8
import com.google.gwt.user.client.HTTPRequest;
9
import com.google.gwt.user.client.ResponseTextHandler;
48 aperonnet 10
import com.gwtext.client.widgets.Window;
22 aperonnet 11
 
36 aperonnet 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
 */
22 aperonnet 18
public class ImageAsynchroneDAO {
19
 
48 aperonnet 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
 
36 aperonnet 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
	 */
22 aperonnet 36
	public void SynchroniserBaseDeDonnees(final ImageCarnet ic)
37
	{
38
		String postData = "" ;
39
 
36 aperonnet 40
		// on construit le post avec toutes les valeur de l'image
22 aperonnet 41
		for(Iterator imgIt = ic.keySet().iterator();imgIt.hasNext();)
42
		{
43
 
44
			String key = (String)imgIt.next() ;
45
					String valeur = ic.renvoyerValeurCorrecte(key) ;
46
					postData += "&"+key+"="+valeur ;
47
 
48
		}
49
 
36 aperonnet 50
		// et on envoie une requête asynchrone
48 aperonnet 51
		HTTPRequest.asyncPost("jrest/inventoryImage/"+iModele.getIdentifiant()+"/", postData, new ResponseTextHandler() {
22 aperonnet 52
			public void onCompletion(String responseText) {
53
 
48 aperonnet 54
				if(responseText.equals("OK"))
55
				{
56
					return ;
57
				}
58
				else
59
				{
60
					com.google.gwt.user.client.Window.alert("Problème lors de la mise à jour des données") ;
61
				}
22 aperonnet 62
 
63
			}
64
 
65
		}) ;
66
	}
67
 
36 aperonnet 68
	/**
69
	 * Met à jour la base de données avec les mots clés associés à l'image
70
	 * @param ic l'image à mettre à jour
71
	 */
30 aperonnet 72
	public void SynchroniserMotsClesImageBaseDeDonnees(final ImageCarnet ic)
73
	{
74
		String postData = "" ;
75
 
36 aperonnet 76
			// on récupère les mots clés de l'image et on fabrique le post
30 aperonnet 77
			String motsCles = ic.getMotsCles() ;
78
			String id = ic.getId() ;
79
					postData += "&ci_id_image="+id+"&ci_meta_mots_cles="+motsCles ;
80
 
36 aperonnet 81
		// on envoie une requête asynchrone
48 aperonnet 82
		HTTPRequest.asyncPost("jrest/inventoryImage/"+iModele.getIdentifiant()+"/", postData, new ResponseTextHandler() {
30 aperonnet 83
			public void onCompletion(String responseText) {
84
 
48 aperonnet 85
				if(responseText.equals("OK"))
86
				{
87
					return ;
88
				}
89
				else
90
				{
91
					com.google.gwt.user.client.Window.alert("Problème lors de la mise à jour des mots clés") ;
92
				}
30 aperonnet 93
 
94
			}
95
 
96
		}) ;
97
	}
98
 
36 aperonnet 99
	/**
100
	 * Supprime une image de la base de données
101
	 * @param ic l'image à supprimer
102
	 */
22 aperonnet 103
	public void supprimerBaseDeDonnees(final ImageCarnet ic)
104
	{
36 aperonnet 105
		// le post contient l'action delete pour JREST (qui ne gère pas DELETE comme une requête à part entière)
22 aperonnet 106
		String postData = "" ;
107
		postData += "&action=DELETE" ;
108
 
36 aperonnet 109
		// on envoie un post avec l'id de l'image à supprimer
48 aperonnet 110
		HTTPRequest.asyncPost("jrest/inventoryImage/"+iModele.getIdentifiant()+"/"+ic.getId(), postData, new ResponseTextHandler() {
22 aperonnet 111
			public void onCompletion(String responseText) {
112
 
48 aperonnet 113
				if(responseText.equals("OK"))
114
				{
115
					return ;
116
				}
117
				else
118
				{
119
					com.google.gwt.user.client.Window.alert("Problème lors de la suppression des images ") ;
120
				}
22 aperonnet 121
			}
122
 
123
		}) ;
124
	}
125
}