Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1417 Rev 1428
Line 4... Line 4...
4
import java.util.Map;
4
import java.util.Map;
Line 5... Line 5...
5
 
5
 
6
import org.tela_botanica.client.composants.pagination.ChargeurListe;
6
import org.tela_botanica.client.composants.pagination.ChargeurListe;
7
import org.tela_botanica.client.composants.pagination.Proxy;
7
import org.tela_botanica.client.composants.pagination.Proxy;
-
 
8
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData;
-
 
9
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData;
10
import org.tela_botanica.client.modeles.Information;
-
 
11
import org.tela_botanica.client.modeles.Valeur;
-
 
12
import org.tela_botanica.client.modeles.collection.Collection;
9
import org.tela_botanica.client.modeles.Valeur;
13
import org.tela_botanica.client.synchronisation.Sequenceur;
-
 
14
import org.tela_botanica.client.util.Debug;
Line 10... Line 15...
10
import org.tela_botanica.client.util.Debug;
15
import org.tela_botanica.client.vues.Formulaire;
11
 
16
 
-
 
17
import com.extjs.gxt.ui.client.event.BaseEvent;
12
import com.extjs.gxt.ui.client.event.BaseEvent;
18
import com.extjs.gxt.ui.client.event.Events;
13
import com.extjs.gxt.ui.client.event.Events;
19
import com.extjs.gxt.ui.client.event.FieldEvent;
14
import com.extjs.gxt.ui.client.event.Listener;
20
import com.extjs.gxt.ui.client.event.Listener;
15
import com.extjs.gxt.ui.client.store.ListStore;
21
import com.extjs.gxt.ui.client.store.ListStore;
16
import com.extjs.gxt.ui.client.util.Size;
22
import com.extjs.gxt.ui.client.util.Size;
Line 31... Line 37...
31
import com.extjs.gxt.ui.client.data.LoadEvent;
37
import com.extjs.gxt.ui.client.data.LoadEvent;
32
import com.extjs.gxt.ui.client.data.Loader;
38
import com.extjs.gxt.ui.client.data.Loader;
33
import com.extjs.gxt.ui.client.data.ModelData;
39
import com.extjs.gxt.ui.client.data.ModelData;
34
import com.extjs.gxt.ui.client.data.ModelType;
40
import com.extjs.gxt.ui.client.data.ModelType;
35
import com.extjs.gxt.ui.client.data.PagingLoadResult;
41
import com.extjs.gxt.ui.client.data.PagingLoadResult;
-
 
42
import com.google.gwt.user.client.rpc.AsyncCallback;
Line 36... Line 43...
36
 
43
 
Line 37... Line 44...
37
public class ChampComboBoxRechercheTempsReelPaginable extends LayoutContainer {
44
public class ChampComboBoxRechercheTempsReelPaginable extends LayoutContainer implements Rafraichissable {
38
 
45
 
39
	  //-------------//
46
	  //-------------//
Line 40... Line 47...
40
	 //  ATTRIBUTS	//
47
	 //  ATTRIBUTS	//
41
	//-------------//
48
	//-------------//
Line 42... Line 49...
42
	
49
	
-
 
50
	private ListStore<ModelData> store = null;
43
	private ListStore<ModelData> store = null;
51
	private ComboBox<ModelData> combo = null;
44
	private ComboBox<ModelData> combo = null;
52
 
Line 45... Line 53...
45
 
53
	private Proxy<?> proxy = null;
46
	private Proxy<?> proxy = null;
54
	private AsyncCallback callback = null;
Line 54... Line 62...
54
	private BasePagingLoadConfig plc = null;
62
	private BasePagingLoadConfig plc = null;
55
	private ModelType modeltype = null;
63
	private ModelType modeltype = null;
56
	private String displayName = "";
64
	private String displayName = "";
57
	private String recherche = "";
65
	private String recherche = "";
Line -... Line 66...
-
 
66
	
-
 
67
	private String champValeurInitiale = "";
-
 
68
	private String valeurInitiale = "";
58
	
69
	
59
	  //-------------//
70
	  //-------------//
60
	 //   METHODES	//
71
	 //   METHODES	//
Line 61... Line 72...
61
	//-------------//
72
	//-------------//
62
 
73
 
63
	/*--------------
74
	/*--------------
-
 
75
	  Constructeur 
64
	  Constructeur 
76
	--------------*/
Line 65... Line 77...
65
	--------------*/
77
	
66
	public ChampComboBoxRechercheTempsReelPaginable(Proxy<?> proxy, ModelType modeltype, String displayName) {
78
	public ChampComboBoxRechercheTempsReelPaginable(Proxy<?> proxy, ModelType modeltype, String displayName) {
67
		
79
		
Line 73... Line 85...
73
		plc.setLimit(limit);
85
		plc.setLimit(limit);
74
		plc.setOffset(start);
86
		plc.setOffset(start);
Line 75... Line 87...
75
		
87
		
Line 76... Line 88...
76
		reader = new TransformateurJSONaModelData<PagingLoadResult<ModelData>>(modeltype);
88
		reader = new TransformateurJSONaModelData<PagingLoadResult<ModelData>>(modeltype);
77
		
89
		
78
		loader = new ChargeurListe<PagingLoadResult<ModelData>>(proxy, reader);
90
		loader = new ChargeurListe<PagingLoadResult<ModelData>>(proxy, reader, this);
Line 79... Line 91...
79
        loader.setLimit(plc.getLimit());
91
        loader.setLimit(plc.getLimit());
80
        loader.setOffset(plc.getOffset());
92
        loader.setOffset(plc.getOffset());
Line 103... Line 115...
103
		combo.setDisplayField(displayName);
115
		combo.setDisplayField(displayName);
104
		combo.setHideTrigger(false);
116
		combo.setHideTrigger(false);
105
		combo.setPageSize(plc.getLimit());
117
		combo.setPageSize(plc.getLimit());
106
        store = new ListStore<ModelData>(loader);
118
        store = new ListStore<ModelData>(loader);
107
        combo.setStore(store);
119
        combo.setStore(store);
108
        loader.load(plc, recherche);
120
        loader.load(plc, recherche, false);
Line 109... Line 121...
109
 
121
 
Line 110... Line 122...
110
		combo.addListener(Events.KeyUp, new Listener<BaseEvent>() {
122
		combo.addListener(Events.KeyUp, new Listener<FieldEvent>() {
-
 
123
		
-
 
124
			public void handleEvent(FieldEvent fe) {
111
		
125
				// on vérifie que les touches enfoncées ne sont pas les flèches du clavier
112
			public void handleEvent(BaseEvent be) {
126
				if (fe.getKeyCode() <= 38 || fe.getKeyCode() >= 40) {
113
				recherche = combo.getRawValue();
127
					recherche = combo.getRawValue();
114
				plc.setLimit(limit); plc.setOffset(start);
128
					plc.setLimit(limit); plc.setOffset(start);
-
 
129
					loader.setLimit(limit); loader.setOffset(start);
115
				loader.setLimit(limit); loader.setOffset(start);
130
					loader.load(plc, recherche, false);
Line 116... Line 131...
116
				loader.load(plc, recherche);
131
				}
Line 117... Line 132...
117
			}
132
			}
Line 129... Line 144...
129
		return this.combo;
144
		return this.combo;
130
	}
145
	}
Line 131... Line 146...
131
	
146
	
132
	public ModelData getValeur()
147
	public ModelData getValeur()
133
	{
148
	{
134
		if (!Util.isEmptyString(combo.getRawValue())) return combo.getSelection().get(0);
149
		if (combo.getSelection() != null && combo.getSelection().size() > 0) return combo.getSelection().get(0);
135
		else return null;
150
		else return null;
Line 136... Line 151...
136
	}
151
	}
137
	
152
	
Line 172... Line 187...
172
	public void peuplerChamp(List<ModelData> selection)
187
	public void peuplerChamp(List<ModelData> selection)
173
	{
188
	{
174
		combo.setSelection(selection);
189
		combo.setSelection(selection);
175
	}
190
	}
Line -... Line 191...
-
 
191
 
-
 
192
	public void chargerValeurInitiale(String valeurInitiale, String champ)
-
 
193
	{
-
 
194
		this.valeurInitiale = valeurInitiale;
-
 
195
		this.champValeurInitiale = champ;
-
 
196
 
-
 
197
		loader.load(plc, valeurInitiale, true);
-
 
198
	}
-
 
199
 
-
 
200
	/*-----------------------------
-
 
201
	  		Rafraichir
-
 
202
	-----------------------------*/
-
 
203
	public void rafraichir(Object nouvellesDonnees) {
-
 
204
		
-
 
205
		if (nouvellesDonnees instanceof Information) {
-
 
206
			Information info = (Information) nouvellesDonnees;
-
 
207
			if (info.getType().equals("selectionnerValeurCombo")) {
-
 
208
				if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) Debug.log("ERREUR. Modele non trouvé");
-
 
209
				else combo.setValue(combo.getStore().findModel(champValeurInitiale, valeurInitiale));
-
 
210
			}
-
 
211
		}
Line 176... Line 212...
176
 
212
	}
177
	
213
	
178
	/*----------------
214
	/*----------------
-
 
215
	  Méthode privées 
-
 
216
	-----------------*/
Line 179... Line 217...
179
	  Méthode privées 
217