Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
140 aurelien 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.CarnetEnLigneMediateur;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
989 aurelien 5
import org.tela_botanica.client.modeles.objets.Utilisateur;
972 aurelien 6
 
144 aurelien 7
import com.gwtext.client.core.EventCallback;
140 aurelien 8
import com.gwtext.client.core.EventObject;
9
import com.gwtext.client.data.ArrayReader;
10
import com.gwtext.client.data.FieldDef;
11
import com.gwtext.client.data.MemoryProxy;
144 aurelien 12
import com.gwtext.client.data.Record;
140 aurelien 13
import com.gwtext.client.data.RecordDef;
14
import com.gwtext.client.data.Store;
15
import com.gwtext.client.data.StringFieldDef;
268 aurelien 16
import com.gwtext.client.widgets.Panel;
140 aurelien 17
import com.gwtext.client.widgets.Window;
18
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
19
import com.gwtext.client.widgets.form.ComboBox;
144 aurelien 20
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
268 aurelien 21
import com.gwtext.client.widgets.layout.HorizontalLayout;
22
import com.gwtext.client.widgets.layout.RowLayout;
140 aurelien 23
 
24
public class ListeUtilisateurAdminVue extends Window implements Rafraichissable {
25
 
26
	private CarnetEnLigneMediateur cMediateur = null ;
27
	private ComboBox listeUtil = null ;
28
	private Store storeUtil = null ;
29
	private com.gwtext.client.widgets.Button OK = null;
268 aurelien 30
	private com.gwtext.client.widgets.Button annuler = null;
144 aurelien 31
	private boolean selectionUtilisateur =false;
972 aurelien 32
 
273 aurelien 33
	public String utilisateur = null;
972 aurelien 34
	public String idUtilisateur = null;
140 aurelien 35
 
144 aurelien 36
	private final int KEY_ALT = 18;
37
	private final int KEY_BACKSPACE = 8;
38
	private final int KEY_CTRL = 17;
39
	private final int KEY_DELETE = 46;
40
	private final int KEY_DOWN = 40;
41
	private final int KEY_END = 35;
42
	private final int KEY_ENTER = 13;
43
	private final int KEY_ESCAPE = 27;
44
	private final int KEY_HOME = 36;
45
	private final int KEY_LEFT = 37;
46
	private final int KEY_PAGEDOWN = 34;
47
	private final int KEY_PAGEUP = 33;
48
	private final int KEY_RIGHT = 39;
49
	private final int KEY_SHIFT = 16;
50
	private final int KEY_TAB = 9;
51
	private final int KEY_UP = 38;
52
 
140 aurelien 53
	public ListeUtilisateurAdminVue(CarnetEnLigneMediateur cMed) {
318 aurelien 54
		super("Choisir un utilisateur") ;
140 aurelien 55
 
56
		this.cMediateur = cMed;
57
 
972 aurelien 58
		listeUtil=new ComboBox("Utilisateurs","courriel",280);
140 aurelien 59
 
268 aurelien 60
		this.setLayout(new RowLayout());
140 aurelien 61
 
972 aurelien 62
		final String resultTplUtil = "<div class=\"search-item-utilisateur\">{courriel}</div>";
273 aurelien 63
 
937 aurelien 64
		utilisateur = cMediateur.getUtilisateur().getLoginUtilisateurConsulte();
972 aurelien 65
		idUtilisateur = Utilisateur.getInstance().getIdentifiantUtilisateurConsulte();
140 aurelien 66
 
67
		listeUtil.setTpl(resultTplUtil);
68
		listeUtil.setMode(ComboBox.REMOTE);
69
		// commune.setPageSize(10); // Ne fonctionne pas
70
		listeUtil.setItemSelector("div.search-item-utilisateur");
71
		listeUtil.setTypeAhead(true);
144 aurelien 72
		listeUtil.setHideTrigger(true);
73
 
972 aurelien 74
		listeUtil.setDisplayField("courriel");
295 aurelien 75
 
273 aurelien 76
		listeUtil.setLoadingText("Recherche...");
77
		listeUtil.setValue(utilisateur);
140 aurelien 78
 
79
		OK= new com.gwtext.client.widgets.Button("OK");
268 aurelien 80
		annuler = new com.gwtext.client.widgets.Button("Annuler");
140 aurelien 81
 
268 aurelien 82
		Panel boutonPanel = new Panel();
83
		boutonPanel.setLayout(new HorizontalLayout(0));
84
 
140 aurelien 85
		add(listeUtil);
86
 
268 aurelien 87
		boutonPanel.add(OK);
88
		boutonPanel.add(annuler);
89
 
90
		add(boutonPanel);
91
 
144 aurelien 92
		this.setSize(300, 75);
140 aurelien 93
 
144 aurelien 94
		OK.addListener(new ButtonListenerAdapter() {
140 aurelien 95
 
1291 aurelien 96
			@Override
144 aurelien 97
			public void onClick(com.gwtext.client.widgets.Button button,
98
					EventObject e) {
295 aurelien 99
	    		if(valider()) {
972 aurelien 100
	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
295 aurelien 101
	    			close();
102
	    		}
144 aurelien 103
			}
104
		});
105
 
268 aurelien 106
		annuler.addListener(new ButtonListenerAdapter() {
107
 
1291 aurelien 108
			@Override
268 aurelien 109
			public void onClick(com.gwtext.client.widgets.Button button,
110
					EventObject e) {
111
				close();
112
			}
113
		});
114
 
144 aurelien 115
		listeUtil.addKeyPressListener(new EventCallback() {
116
 
1291 aurelien 117
			@Override
144 aurelien 118
			public void execute(EventObject e) {
119
 
120
				switch(e.getKey()) {
121
 
122
					case KEY_ALT:
123
	    	        case KEY_CTRL:
124
	    	        case KEY_DOWN:
125
	    	        case KEY_END:
126
	    	        case KEY_ESCAPE:
127
	    	        case KEY_HOME:
128
	    	        case KEY_LEFT:
129
	    	        case KEY_PAGEDOWN:
130
	    	        case KEY_PAGEUP:
131
	    	        case KEY_RIGHT:
132
	    	        case KEY_SHIFT:
133
	    	        case KEY_TAB:
134
	    	        case KEY_UP:
135
 
136
	    	        break;
137
 
138
	    	    	case KEY_ENTER:
139
 
140
		    	    	 if(selectionUtilisateur) {
141
		    	    		 selectionUtilisateur=false;
142
		    	    	 }
143
		    	    	else {
273 aurelien 144
		    	    		if(valider()) {
972 aurelien 145
		    	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
273 aurelien 146
		    	    		}
147
	    	    			close();
144 aurelien 148
		    	    	 }
149
		    	    break;
150
 
151
		    	    default:
152
		    	    	obtenirListeUtilisateur();
153
		    	    break;
140 aurelien 154
				}
144 aurelien 155
			}
156
		});
157
 
158
		listeUtil.addListener(new ComboBoxListenerAdapter() {
159
 
1291 aurelien 160
			@Override
144 aurelien 161
			public void onSelect(ComboBox comboBox, Record record, int index) {
162
 
972 aurelien 163
				utilisateur = record.getAsString("courriel");
164
				idUtilisateur = record.getAsString("id_utilisateur");
273 aurelien 165
				listeUtil.setValue(utilisateur);
144 aurelien 166
 
167
			}
168
		});
140 aurelien 169
	}
170
 
1291 aurelien 171
	@Override
140 aurelien 172
	public void rafraichir(Object nouvelleDonnees,
173
			boolean repandreRaffraichissement) {
174
 
175
		if(nouvelleDonnees instanceof String[][]) {
176
 
177
			Object[][] utilData = (Object[][])nouvelleDonnees ;
178
 
972 aurelien 179
			FieldDef defId = new StringFieldDef("id_utilisateur");
180
			FieldDef defCourriel = new StringFieldDef("courriel");
181
			FieldDef[] defTab = {defId,defCourriel};
140 aurelien 182
 
183
			RecordDef rd = new RecordDef(defTab);
184
 
185
			final MemoryProxy dataProxy = new MemoryProxy(utilData);
186
			final ArrayReader reader = new ArrayReader(rd);
187
 
188
			storeUtil =new Store(dataProxy,reader);
189
			storeUtil.load() ;
190
 
191
			listeUtil.setStore(storeUtil);
144 aurelien 192
			listeUtil.expand();
140 aurelien 193
 
194
		}
195
 
196
	}
144 aurelien 197
 
273 aurelien 198
	private boolean valider() {
199
		if(listeUtil.getValue() != null) {
200
			return true;
201
		}
202
		return false;
203
	}
204
 
144 aurelien 205
	public void obtenirListeUtilisateur() {
206
 
207
		String valeur = listeUtil.getRawValue();
208
    	cMediateur.obtenirListeUtilisateurs(valeur,this) ;
209
	}
210
 
268 aurelien 211
	public void focusChampUtilisateur() {
212
		listeUtil.focus();
213
	}
214
 
316 aurelien 215
}