Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 31 | Rev 43 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31 Rev 36
Line 1... Line 1...
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
Line 2... Line 2...
2
 
2
 
Line 3... Line 3...
3
import java.util.Iterator;
3
import java.util.Iterator;
-
 
4
 
4
 
5
import org.tela_botanica.client.image.ImageMediateur;
Line 5... Line 6...
5
import org.tela_botanica.client.image.ImageMediateur;
6
import org.tela_botanica.client.image.ImageModele;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
8
 
Line 26... Line 27...
26
 * @author aurelien
27
 * @author aurelien
27
 *
28
 *
28
 */
29
 */
29
public class ListeImageAsynchroneDAO {
30
public class ListeImageAsynchroneDAO {
Line -... Line 31...
-
 
31
	
-
 
32
	/**
-
 
33
	 * Le modèle associé au DAO
30
	
34
	 */
31
	ImageMediateur iMediateur = null ;
35
	ImageModele iModele = null ;
-
 
36
	
-
 
37
	/**
-
 
38
	 * Setteur pour le modèle
-
 
39
	 * @param im le modèle à associer
32
	
40
	 */
33
	public void setIMediateur(ImageMediateur im)
41
	public void setIModele(ImageModele im)
34
	{
42
	{
35
		iMediateur = im ;
43
		iModele = im ;
Line -... Line 44...
-
 
44
	}
-
 
45
	
-
 
46
	/**
-
 
47
	 * Envoie une requete au serveur jrest pour obtenir une liste d'images correspondant à des critères demandés 
-
 
48
	 * @param r le rafraichissable qui a demandé les données
36
	}
49
	 * @param criteres un tableau contenant les critères de selections
37
	
50
	 */
Line 38... Line 51...
38
	public void ObtenirListeImages(final Rafraichissable r, String[][] criteres)
51
	public void ObtenirListeImages(final Rafraichissable r, String[][] criteres)
Line -... Line 52...
-
 
52
	{
39
	{
53
		
40
		
54
		String requete = "" ;
41
		String requete = "" ;
55
		
Line 42... Line 56...
42
		
56
		// on construit les paramètres du get
Line 50... Line 64...
50
					requete += "&" ;
64
					requete += "&" ;
51
				}
65
				}
52
			}
66
			}
53
		}
67
		}
Line -... Line 68...
-
 
68
		
54
		
69
		// on envoie le get asynchrone
-
 
70
		HTTPRequest.asyncGet("jrest/InventoryImageList/0/"+requete, new ResponseTextHandler() {
-
 
71
			
55
		HTTPRequest.asyncGet("jrest/InventoryImageList/0/"+requete, new ResponseTextHandler() {
72
			// si tout se passe bien on reçoit une réponse JSON
Line 56... Line 73...
56
			public void onCompletion(String responseText) {
73
			public void onCompletion(String responseText) {
Line 57... Line 74...
57
				
74
				
-
 
75
				final ListeImageCarnet photoData ;
58
				final ListeImageCarnet photoData ;
76
 
Line 59... Line 77...
59
 
77
				final JSONValue responseValue = JSONParser.parse(responseText);
Line 60... Line 78...
60
				final JSONValue responseValue = JSONParser.parse(responseText);
78
				// si c'est un tableau
61
				if (responseValue.isArray() != null) {
79
				if (responseValue.isArray() != null) {
Line 62... Line -...
62
					
-
 
-
 
80
					
63
					final JSONArray reponse = responseValue.isArray();
81
					final JSONArray reponse = responseValue.isArray();
Line 64... Line 82...
64
 
82
 
Line 65... Line 83...
65
					final int taillemax = reponse.size();
83
					final int taillemax = reponse.size();
Line -... Line 84...
-
 
84
					photoData = new ListeImageCarnet(taillemax);
66
					photoData = new ListeImageCarnet(taillemax);
85
					
Line 67... Line 86...
67
					
86
					// on le parcourt
68
					
87
					for (int j = 0; j < taillemax ; j++) {
69
					for (int j = 0; j < taillemax ; j++) {
88
						
70
						
89
						JSONObject image = (JSONObject)reponse.get(j) ;
-
 
90
						
71
						JSONObject image = (JSONObject)reponse.get(j) ;
91
						ImageCarnet im = new ImageCarnet(image) ;
72
						
92
						
73
						ImageCarnet im = new ImageCarnet(image) ;
93
						// et on en extrait les données pour construire la liste d'image
74
						
94
						photoData.put(im.getOrdre(),im) ;
-
 
95
						
75
						photoData.put(im.getOrdre(),im) ;
96
					}
76
						
97
				}
77
					}
98
				else
78
				}
99
				{
-
 
100
					// si c'est un objet alors il n'y a qu'une réponse
79
				else
101
					if(responseValue.isObject() != null)
80
				{
102
					{
81
					if(responseValue.isObject() != null)
103
						photoData = new ListeImageCarnet(1);
Line -... Line 104...
-
 
104
						ImageCarnet im = new ImageCarnet(responseValue.isObject()) ;
-
 
105
						// on crée une liste de 1 élement auquel on ajoute ce qui a été reçu
82
					{
106
						photoData.put(im.getOrdre(),im) ;
83
						photoData = new ListeImageCarnet(1);
107
					}
84
						ImageCarnet im = new ImageCarnet(responseValue.isObject()) ;
108
					else
85
						photoData.put(im.getOrdre(),im) ;
109
					{
Line -... Line 110...
-
 
110
						// sinon on crée une liste vide
-
 
111
						photoData = new ListeImageCarnet(0) ;
-
 
112
					}
-
 
113
				}
86
					}
114
				
87
					else
115
				// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est
-
 
116
				// le premier à les recevoir
88
					{
117
				r.rafraichir(photoData,true);
89
						photoData = new ListeImageCarnet(0) ;
118
			}
90
					}
119
		});
Line 91... Line 120...
91
				}
120
	}
Line -... Line 121...
-
 
121
	
92
				
122
	/**
93
				r.rafraichir(photoData,true);
123
	 * Met à jour les valeurs d'une liste d'image donnée dans la base de données
-
 
124
	 * @param li la liste d'image à synchroniser avec la base
94
			}
125
	 */
95
		});
126
	public void SynchroniserBaseDeDonnees(ListeImageCarnet li)
96
	}
127
	{
97
	
128
		// on parcourt toute la liste d'image
Line 98... Line 129...
98
	public void SynchroniserBaseDeDonnees(ListeImageCarnet li)
129
		for(Iterator listIt = li.keySet().iterator() ; listIt.hasNext() ;)
Line -... Line 130...
-
 
130
		{
99
	{
131
			String postData = "" ;
100
		for(Iterator listIt = li.keySet().iterator() ; listIt.hasNext() ;)
132
			
Line -... Line 133...
-
 
133
			ImageCarnet enCours = (ImageCarnet)li.get(listIt.next()) ;
Line 101... Line 134...
101
		{
134
			
Line 102... Line 135...
102
			String postData = "" ;
135
			// pour chaque image on extrait les informations
103
			
136
			for(Iterator imgIt = enCours.keySet().iterator();imgIt.hasNext();)
104
			ImageCarnet enCours = (ImageCarnet)li.get(listIt.next()) ;
137
			{
Line -... Line 138...
-
 
138
				// qu'on place dans le poste
-
 
139
				String key = (String)imgIt.next() ;
-
 
140
				String valeur = enCours.renvoyerValeurCorrecte(key) ;
-
 
141
				valeur.replaceAll("'", "\'") ;
105
			
142
					postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ;
106
			for(Iterator imgIt = enCours.keySet().iterator();imgIt.hasNext();)
143
			
107
			{
144
			}
-
 
145
			
108
				String key = (String)imgIt.next() ;
146
				// on fait un post asynchrone et on les envoie à jrest
Line 109... Line 147...
109
				String valeur = enCours.renvoyerValeurCorrecte(key) ;
147
				HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() {
Line -... Line 148...
-
 
148
						public void onCompletion(String responseText) {
110
				valeur.replaceAll("'", "\'") ;
149
							
Line 111... Line 150...
111
					postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ;
150
							//TODO: vérifier mieux le succès del a requête
112
			
151
							
Line 113... Line -...
113
			}
-
 
-
 
152
						}
114
			
153
						
115
					HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() {
154
					}) ;
Line -... Line 155...
-
 
155
		}
-
 
156
	}
116
						public void onCompletion(String responseText) {
157
	
117
							
158
	/**
Line 118... Line 159...
118
							
159
	 * Supprime des image sur le serveur par rapport à leur identifant 
119
						}
160
	 * @param ids un tableau d'identifiants d'images à supprimer