Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1513 Rev 1526
1
package org.tela_botanica.client.composants.pagination;
1
package org.tela_botanica.client.composants.pagination;
2
 
-
 
3
import java.util.Iterator;
-
 
4
import java.util.List;
-
 
5
import java.util.Map;
-
 
6
import java.util.Set;
-
 
7
 
2
 
8
import org.tela_botanica.client.interfaces.Rafraichissable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.Information;
-
 
10
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
-
 
11
import org.tela_botanica.client.modeles.personne.Personne;
4
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.util.Debug;
5
import org.tela_botanica.client.util.Debug;
13
import org.tela_botanica.client.util.UtilString;
6
import org.tela_botanica.client.util.UtilString;
14
 
-
 
15
import com.extjs.gxt.ui.client.data.BaseListLoadResult;
-
 
16
import com.extjs.gxt.ui.client.data.BaseModelData;
-
 
17
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
7
 
18
import com.extjs.gxt.ui.client.data.BasePagingLoader;
8
import com.extjs.gxt.ui.client.data.BasePagingLoader;
19
import com.extjs.gxt.ui.client.data.LoadEvent;
9
import com.extjs.gxt.ui.client.data.LoadEvent;
20
import com.extjs.gxt.ui.client.data.PagingLoadResult;
10
import com.extjs.gxt.ui.client.data.PagingLoadResult;
21
import com.google.gwt.user.client.rpc.AsyncCallback;
11
import com.google.gwt.user.client.rpc.AsyncCallback;
22
 
12
 
23
public class ChargeurListe<D extends PagingLoadResult<?>> extends BasePagingLoader<D> {
13
public class ChargeurListe<D extends PagingLoadResult<?>> extends BasePagingLoader<D> {
24
 
14
 
25
	private String recherche = "";
15
	private String recherche = "";
26
	private Rafraichissable vueARafraichir = null;
16
	private Rafraichissable vueARafraichir = null;
27
	private boolean doRafraichir = false;
17
	private boolean doRafraichir = false;
28
 
18
 
29
	@SuppressWarnings("unchecked")
19
	@SuppressWarnings("unchecked")
30
	public ChargeurListe(Proxy proxy, TransformateurJSONaModelData reader, Rafraichissable vueARafraichir) {
20
	public ChargeurListe(Proxy proxy, TransformateurJSONaModelData reader, Rafraichissable vueARafraichir) {
31
		super(proxy, reader);
21
		super(proxy, reader);
32
		this.vueARafraichir = vueARafraichir;
22
		this.vueARafraichir = vueARafraichir;
33
	}
23
	}
34
	
24
	
35
	public boolean load(Object loadConfig, String recherche, boolean doRafraichir) {
25
	public boolean load(Object loadConfig, String recherche, boolean doRafraichir) {
36
		this.doRafraichir = doRafraichir;
26
		this.doRafraichir = doRafraichir;
37
		if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) {
27
		if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) {
38
	    lastConfig = loadConfig;
28
			lastConfig = loadConfig;
39
 
-
 
40
		this.recherche = recherche;
29
			this.recherche = recherche;
41
	    
-
 
42
	    loadData(loadConfig, recherche);
30
			loadData(loadConfig, recherche);
43
	    return true;
31
			return true;
44
	  }
32
		} else {
45
	  else return false;
33
			return false;
-
 
34
		}
46
	}
35
	}
47
	
36
	
48
	public boolean load(Object loadConfig) {
37
	public boolean load(Object loadConfig) {
49
	    if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) {
38
		if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) {
50
	      lastConfig = loadConfig;
39
			lastConfig = loadConfig;
51
	      loadData(loadConfig, recherche);
40
			loadData(loadConfig, recherche);
52
	      return true;
41
			return true;
53
	    }
42
		}
54
	    return false;
43
		return false;
55
	}
44
	}
56
	
45
	
57
	public void load(int offset, int limit) {
46
	public void load(int offset, int limit) {
58
	  this.offset = offset;
47
		this.offset = offset;
59
	  this.limit = limit;
48
		this.limit = limit;
60
	  load();
49
		load();
61
	}
50
	}
62
	
51
	
63
	public boolean load() {
52
	public boolean load() {
64
	  Object config = (reuseConfig && lastConfig != null) ? lastConfig : newLoadConfig();
53
		Object config = (reuseConfig && lastConfig != null) ? lastConfig : newLoadConfig();
65
	  config = prepareLoadConfig(config);
54
		config = prepareLoadConfig(config);
66
	  return load(config);
55
		return load(config);
67
	}
56
	}
68
	
57
	
69
	@SuppressWarnings("unchecked")
58
	@SuppressWarnings("unchecked")
70
	protected void loadData(final Object config, String recherche) {
59
	protected void loadData(final Object config, String recherche) {
71
		AsyncCallback<D> callback = new AsyncCallback<D>() {
60
		AsyncCallback<D> callback = new AsyncCallback<D>() {
72
			
61
			
73
		    public void onFailure(Throwable caught) {
62
		    public void onFailure(Throwable caught) {
74
		      onLoadFailure(config, caught);
63
		    	onLoadFailure(config, caught);
-
 
64
		    	if (!UtilString.isEmpty(caught.getMessage())) {
75
		      if (!UtilString.isEmpty(caught.getMessage())) Debug.log("[FAILURE] ChargeurListe : message="+caught.getMessage());
65
		    		Debug.log("[FAILURE] ChargeurListe : message="+caught.getMessage());
-
 
66
		    	} else {
76
		      else Debug.log("[FAILURE] ChargeurListe : message=NULL. Peut-être le modelType est-il mal paramétré ?");
67
		    		Debug.log("[FAILURE] ChargeurListe : message=NULL. Peut-être le modelType est-il mal paramétré ?");
-
 
68
		    	}
77
		    }
69
		    }
78
		    
70
		    
79
		    public void onSuccess(D result) {
71
		    public void onSuccess(D result) {
80
		    	onLoadSuccess(config, result);
72
		    	onLoadSuccess(config, result);
81
		    	
73
		    	
82
		    	/*
74
		    	/*
83
		    	// SUPPRIMER LES PREFIXES
75
		    	// SUPPRIMER LES PREFIXES
84
		    	if (result instanceof BasePagingLoadResult) {
76
		    	if (result instanceof BasePagingLoadResult) {
85
		    		BasePagingLoadResult retourPaging = (BasePagingLoadResult)result;
77
		    		BasePagingLoadResult retourPaging = (BasePagingLoadResult)result;
86
		    		List retourListe = retourPaging.getData();
78
		    		List retourListe = retourPaging.getData();
87
		    		
79
		    		
88
		    		for(int i=0; i< retourListe.size(); i++) {
80
		    		for(int i=0; i< retourListe.size(); i++) {
89
		    			if (retourListe.get(i) instanceof BaseModelData) {
81
		    			if (retourListe.get(i) instanceof BaseModelData) {
90
		    				BaseModelData model = (BaseModelData)retourListe.get(i);
82
		    				BaseModelData model = (BaseModelData)retourListe.get(i);
91
		    				
83
		    				
92
		    				Map<String, Object> a = model.getProperties();
84
		    				Map<String, Object> a = model.getProperties();
93
		    				Set<String> cles = a.keySet();
85
		    				Set<String> cles = a.keySet();
94
		    				Iterator<String> it = cles.iterator();
86
		    				Iterator<String> it = cles.iterator();
95
		    				while (it.hasNext()) {
87
		    				while (it.hasNext()) {
96
		    					String cle = it.next();
88
		    					String cle = it.next();
97
		    					if (a.get(cle) != null) {
89
		    					if (a.get(cle) != null) {
98
		    						String cleObjet = "";				
90
		    						String cleObjet = "";				
99
		    						cleObjet = cle.replaceFirst("^[A-Za-z]+_", "");
91
		    						cleObjet = cle.replaceFirst("^[A-Za-z]+_", "");
100
		    						model.set(cleObjet, a.get(cle));
92
		    						model.set(cleObjet, a.get(cle));
101
		    						model.remove(cle);
93
		    						model.remove(cle);
102
		    					}
94
		    					}
103
		    				}
95
		    				}
104
		    			}
96
		    			}
105
		    		}
97
		    		}
106
		    	}*/
98
		    	}*/
107
		    	
99
		    	
108
		    	
100
		    	
109
		    	// Cas où il faut rafraichir le combo manuellement
101
		    	// Cas où il faut rafraichir le combo manuellement
110
		    	// (cela sert pour charger la valeur initiale du combo au chargement d'un formulaire)
102
		    	// (cela sert pour charger la valeur initiale du combo au chargement d'un formulaire)
111
			    if (doRafraichir) {
103
			    if (doRafraichir) {
112
			    	Information info = new Information("selectionnerValeurCombo");
104
			    	Information info = new Information("selectionnerValeurCombo");
113
			    	info.setDonnee(result);
105
			    	info.setDonnee(result);
114
			    	info.setMessage("");
106
			    	info.setMessage("");
115
					
107
					
116
					vueARafraichir.rafraichir(info);
108
					vueARafraichir.rafraichir(info);
117
			    }
109
			    }
118
			}
110
			}
119
		};
111
		};
120
		((Proxy)proxy).load((TransformateurJSONaModelData)reader, config, callback, recherche);
112
		((Proxy) proxy).load((TransformateurJSONaModelData) reader, config, callback, recherche);
121
	}
113
	}
122
}
114
}