Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev Author Line No. Line
27 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
28 aperonnet 3
 
36 aperonnet 4
import org.tela_botanica.client.image.ImageModele;
28 aperonnet 5
import org.tela_botanica.client.interfaces.Rafraichissable;
48 aperonnet 6
 
30 aperonnet 7
import com.google.gwt.json.client.JSONArray;
8
import com.google.gwt.json.client.JSONParser;
9
import com.google.gwt.json.client.JSONValue;
28 aperonnet 10
import com.google.gwt.user.client.HTTPRequest;
11
import com.google.gwt.user.client.ResponseTextHandler;
12
import com.google.gwt.user.client.Window;
13
 
36 aperonnet 14
/**
15
 * DAO d'accès à l'arbre de mots clés
16
 * @author aurelien
17
 *
18
 */
27 aperonnet 19
public class MotsClesAsynchroneDAO {
28 aperonnet 20
 
36 aperonnet 21
	/**
22
	 * Le modele associé au DAO
23
	 */
24
	private ImageModele iModele = null ;
28 aperonnet 25
 
48 aperonnet 26
	public MotsClesAsynchroneDAO(ImageModele im)
27
	{
28
		iModele = im ;
29
	}
30
 
36 aperonnet 31
	/**
32
	 * Setteur pour le modèle
33
	 * @param im le modèle à associer
34
	 */
35
	public void setIModele(ImageModele im)
28 aperonnet 36
	{
36 aperonnet 37
		iModele = im ;
28 aperonnet 38
	}
39
 
36 aperonnet 40
	/**
41
	 * Envoie une requete au serveur jrest pour obtenir l'arbre des mots clés
42
	 * @param r le rafraichissable qui demande les données
43
	 */
30 aperonnet 44
	public void obtenirListeMotsCles(final Rafraichissable r)
28 aperonnet 45
	{
36 aperonnet 46
		// on demande tous les mots clés associés à l'utilisateur
47
		HTTPRequest.asyncGet("jrest/InventoryKeyWordList/"+iModele.getIdentifiant(), new ResponseTextHandler() {
27 aperonnet 48
 
28 aperonnet 49
			public void onCompletion(String responseText) {
50
 
30 aperonnet 51
				final JSONValue responseValue = JSONParser.parse(responseText);
36 aperonnet 52
				// si la requête est un succès on reçoit un tableau
30 aperonnet 53
				if (responseValue.isArray() != null) {
54
 
55
					final JSONArray reponse = responseValue.isArray();
36 aperonnet 56
						// et on met à jour le demandeur des données
30 aperonnet 57
						r.rafraichir(reponse, true) ;
58
				}
59
			}
28 aperonnet 60
		});
61
	}
62
 
36 aperonnet 63
	/**
64
	 * Envoie requete au serveur jrest pour ajouter un mot clé
65
	 * @param motcle le mots clés à ajouter avec son parent et son identifiant
66
	 */
28 aperonnet 67
	public void ajouterBaseDeDonnees(String motcle)
68
	{
69
		if(!motcle.equals(""))
70
		{
71
			String postData = motcle ;
72
 
36 aperonnet 73
			// on fait un post asynchrone
74
			HTTPRequest.asyncPost("jrest/InventoryKeyWordList/","&identifiant="+iModele.getIdentifiant()+postData, new ResponseTextHandler() {
28 aperonnet 75
 
76
				public void onCompletion(String responseText) {
77
 
36 aperonnet 78
					// si on reçoit une erreur d'ajout, on affiche un message d'erreur
30 aperonnet 79
					if(responseText.equals("ERROR"))
80
					{
81
						Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
82
								"nous vous invitons à recharger la page. ") ;
83
					}
28 aperonnet 84
				}
85
 
86
			}) ;
87
		}
88
	}
89
 
36 aperonnet 90
	/**
91
	 * Envoie requete au serveur jrest pour supprimer un mot clé
92
	 * @param motcle le mots clés à supprimer
93
	 */
28 aperonnet 94
	public void supprimerBaseDeDonnees(String motcle)
95
	{
96
		if(!motcle.equals(""))
97
		{
98
			String postData = "" ;
99
			postData += "&action=DELETE" ;
100
 
36 aperonnet 101
			HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant()+"/"+motcle,postData, new ResponseTextHandler() {
28 aperonnet 102
 
103
				public void onCompletion(String responseText) {
104
 
30 aperonnet 105
					if(responseText.equals("ERROR"))
106
					{
107
						Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," +
108
								"nous vous invitons à recharger la page. ") ;
109
					}
28 aperonnet 110
				}
111
 
112
			}) ;
113
		}
114
	}
115
 
36 aperonnet 116
	/**
117
	 * Envoie requete au serveur jrest pour modifier un mot clé
118
	 * @param motcle le mots clés à modifier avec son parent et son identifiant
119
	 */
28 aperonnet 120
	public void modifierBaseDeDonnees(String motcle) {
121
 
122
		if(!motcle.equals(""))
123
		{
124
 
125
		String postData = "" ;
126
		postData += "&action=modification"+motcle ;
127
 
36 aperonnet 128
		HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant() ,postData, new ResponseTextHandler() {
28 aperonnet 129
 
130
				public void onCompletion(String responseText) {
131
 
132
 
133
				}
134
 
135
			}) ;
136
		}
137
 
138
	}
139
 
36 aperonnet 140
	/**
141
	 * Envoie requete au serveur jrest pour modifier un mot clé
142
	 * @param motcle le mots clés à ajouter avec son ancien parent, son nouveau et son identifiant
143
	 */
30 aperonnet 144
	public void deplacerBaseDeDonnees(String motcle) {
28 aperonnet 145
 
146
		if(!motcle.equals(""))
147
		{
148
 
149
		String postData = "" ;
150
		postData += "&action=deplacement"+motcle ;
151
 
36 aperonnet 152
		HTTPRequest.asyncPost("jrest/InventoryKeyWordList/"+iModele.getIdentifiant() ,postData, new ResponseTextHandler() {
28 aperonnet 153
 
154
				public void onCompletion(String responseText) {
155
 
156
 
157
				}
158
 
159
			}) ;
160
		}
161
 
162
	}
163
 
27 aperonnet 164
}