Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 28 | Rev 36 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
18 aperonnet 3
import java.util.Iterator;
4
 
5
import org.tela_botanica.client.image.ImageMediateur;
5 aperonnet 6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
8
import com.google.gwt.json.client.JSONArray;
12 aperonnet 9
import com.google.gwt.json.client.JSONObject;
5 aperonnet 10
import com.google.gwt.json.client.JSONParser;
11
import com.google.gwt.json.client.JSONString;
12
import com.google.gwt.json.client.JSONValue;
13
import com.google.gwt.user.client.HTTPRequest;
14
import com.google.gwt.user.client.ResponseTextHandler;
22 aperonnet 15
import com.google.gwt.user.client.Window;
5 aperonnet 16
import com.gwtext.client.data.ArrayReader;
17
import com.gwtext.client.data.FieldDef;
18
import com.gwtext.client.data.MemoryProxy;
19
import com.gwtext.client.data.RecordDef;
20
import com.gwtext.client.data.Store;
21
import com.gwtext.client.data.StringFieldDef;
22
 
12 aperonnet 23
/**
24
 * Data Object Access communiquant avec le serveur jrest fournissant la liste des images
25
 * répondant à des critères donné
26
 * @author aurelien
27
 *
28
 */
5 aperonnet 29
public class ListeImageAsynchroneDAO {
30
 
18 aperonnet 31
	ImageMediateur iMediateur = null ;
32
 
33
	public void setIMediateur(ImageMediateur im)
34
	{
35
		iMediateur = im ;
36
	}
37
 
31 aperonnet 38
	public void ObtenirListeImages(final Rafraichissable r, String[][] criteres)
5 aperonnet 39
	{
31 aperonnet 40
 
41
		String requete = "" ;
42
 
43
		if(criteres != null)
44
		{
45
			for (int i = 0; i < criteres.length; i++) {
46
 
47
				requete += criteres[i][0]+"="+criteres[i][1] ;
48
				if(i != criteres.length - 1)
49
				{
50
					requete += "&" ;
51
				}
52
			}
53
		}
54
 
55
		HTTPRequest.asyncGet("jrest/InventoryImageList/0/"+requete, new ResponseTextHandler() {
5 aperonnet 56
			public void onCompletion(String responseText) {
57
 
22 aperonnet 58
				final ListeImageCarnet photoData ;
5 aperonnet 59
 
60
				final JSONValue responseValue = JSONParser.parse(responseText);
61
				if (responseValue.isArray() != null) {
62
 
12 aperonnet 63
					final JSONArray reponse = responseValue.isArray();
5 aperonnet 64
 
12 aperonnet 65
					final int taillemax = reponse.size();
22 aperonnet 66
					photoData = new ListeImageCarnet(taillemax);
12 aperonnet 67
 
68
 
69
					for (int j = 0; j < taillemax ; j++) {
70
 
71
						JSONObject image = (JSONObject)reponse.get(j) ;
72
 
18 aperonnet 73
						ImageCarnet im = new ImageCarnet(image) ;
12 aperonnet 74
 
18 aperonnet 75
						photoData.put(im.getOrdre(),im) ;
76
 
5 aperonnet 77
					}
78
				}
79
				else
80
				{
12 aperonnet 81
					if(responseValue.isObject() != null)
82
					{
22 aperonnet 83
						photoData = new ListeImageCarnet(1);
18 aperonnet 84
						ImageCarnet im = new ImageCarnet(responseValue.isObject()) ;
85
						photoData.put(im.getOrdre(),im) ;
12 aperonnet 86
					}
87
					else
88
					{
22 aperonnet 89
						photoData = new ListeImageCarnet(0) ;
12 aperonnet 90
					}
5 aperonnet 91
				}
92
 
16 aperonnet 93
				r.rafraichir(photoData,true);
5 aperonnet 94
			}
95
		});
96
	}
18 aperonnet 97
 
22 aperonnet 98
	public void SynchroniserBaseDeDonnees(ListeImageCarnet li)
18 aperonnet 99
	{
22 aperonnet 100
		for(Iterator listIt = li.keySet().iterator() ; listIt.hasNext() ;)
18 aperonnet 101
		{
22 aperonnet 102
			String postData = "" ;
103
 
104
			ImageCarnet enCours = (ImageCarnet)li.get(listIt.next()) ;
105
 
106
			for(Iterator imgIt = enCours.keySet().iterator();imgIt.hasNext();)
107
			{
108
				String key = (String)imgIt.next() ;
109
				String valeur = enCours.renvoyerValeurCorrecte(key) ;
110
				valeur.replaceAll("'", "\'") ;
111
					postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ;
112
 
113
			}
114
 
115
					HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() {
116
						public void onCompletion(String responseText) {
117
 
118
 
119
						}
120
 
121
					}) ;
18 aperonnet 122
		}
123
	}
124
 
22 aperonnet 125
	public void supprimerBaseDeDonnees(String[] ids)
126
	{
127
		String postData = "" ;
128
		postData += "&action=DELETE" ;
129
 
130
		String uid = "" ;
131
 
132
		for (int i = 0; i < ids.length; i++) {
133
 
134
			uid += ids[i]+"," ;
135
		}
136
 
137
 
28 aperonnet 138
		HTTPRequest.asyncPost("jrest/inventoryImageList/"+iMediateur.getIdentifiant()+"/"+uid, postData, new ResponseTextHandler() {
22 aperonnet 139
			public void onCompletion(String responseText) {
140
 
141
				iMediateur.rafraichirToutesVues() ;
142
			}
143
 
144
		}) ;
145
	}
146
 
5 aperonnet 147
 
148
}