Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
1479 cyprien 1
package org.tela_botanica.client.composants.pagination;
2
 
3
import java.util.ArrayList;
4
import java.util.HashMap;
5
import java.util.List;
6
 
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.modeles.ValeurListe;
11
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;
12
import org.tela_botanica.client.synchronisation.Sequenceur;
13
import org.tela_botanica.client.util.Debug;
1493 cyprien 14
import org.tela_botanica.client.util.UtilString;
1479 cyprien 15
 
16
import com.extjs.gxt.ui.client.Registry;
17
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
18
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
19
import com.extjs.gxt.ui.client.data.DataReader;
20
import com.extjs.gxt.ui.client.data.MemoryProxy;
21
import com.extjs.gxt.ui.client.data.ModelData;
22
import com.google.gwt.json.client.JSONObject;
23
import com.google.gwt.json.client.JSONString;
1624 aurelien 24
import com.google.gwt.user.client.Window;
1479 cyprien 25
import com.google.gwt.user.client.rpc.AsyncCallback;
26
 
27
public class ProxyCollectionAPublication<D> extends Proxy {
28
 
29
	String collectionId = null;
30
 
1481 cyprien 31
	public ProxyCollectionAPublication(Sequenceur sequenceur, String collectionId) {
1479 cyprien 32
		super(sequenceur);
33
 
34
		this.collectionId = collectionId;
35
	}
36
 
37
	@Override
1624 aurelien 38
	public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) {
39
		this.reader = reader;
40
		this.callback = callback;
41
		this.loadConfig = loadConfig;
1479 cyprien 42
 
1624 aurelien 43
		BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig;
44
		if (this.collectionId != null && !UtilString.isEmpty(this.collectionId))	{
1493 cyprien 45
			mediateur.selectionnerCollectionAPublication(this, this.collectionId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
1624 aurelien 46
		} else {
47
			  this.rafraichir(null);
1493 cyprien 48
		}
1624 aurelien 49
	}
1479 cyprien 50
 
51
	@Override
52
	@SuppressWarnings("unchecked")
53
	public void rafraichir(Object nouvellesDonnees) {
54
 
55
		try
56
		{
1493 cyprien 57
			D donneesRetour = null;
58
			if (nouvellesDonnees!=null) {
59
				data = nouvellesDonnees;
60
			   	if (reader != null)
61
		    	{
62
			   		donneesRetour = (D) reader.read(loadConfig, data);
63
		    	}
64
		    	else
65
		    	{
66
		    		donneesRetour = (D) data;
67
			        if (donneesRetour instanceof List)
68
			        {
69
			        	donneesRetour = (D) new ArrayList((List) donneesRetour);
70
			        }
71
		    	}
72
			}
73
			callback.onSuccess(donneesRetour);
74
 
1479 cyprien 75
		}
76
		catch (Exception e)
77
		{
78
	      callback.onFailure(e);
79
		}
80
	}
81
 
82
}