Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 30 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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