Subversion Repositories eFlore/Archives.cel-v2

Rev

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