Subversion Repositories eFlore/Applications.cel

Rev

Rev 937 | Rev 989 | 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;
972 aurelien 5
import org.tela_botanica.client.modeles.Utilisateur;
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
 
144 aurelien 96
			public void onClick(com.gwtext.client.widgets.Button button,
97
					EventObject e) {
295 aurelien 98
	    		if(valider()) {
972 aurelien 99
	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
295 aurelien 100
	    			close();
101
	    		}
144 aurelien 102
			}
103
		});
104
 
268 aurelien 105
		annuler.addListener(new ButtonListenerAdapter() {
106
 
107
			public void onClick(com.gwtext.client.widgets.Button button,
108
					EventObject e) {
109
				close();
110
			}
111
		});
112
 
144 aurelien 113
		listeUtil.addKeyPressListener(new EventCallback() {
114
 
115
			public void execute(EventObject e) {
116
 
117
				switch(e.getKey()) {
118
 
119
					case KEY_ALT:
120
	    	        case KEY_CTRL:
121
	    	        case KEY_DOWN:
122
	    	        case KEY_END:
123
	    	        case KEY_ESCAPE:
124
	    	        case KEY_HOME:
125
	    	        case KEY_LEFT:
126
	    	        case KEY_PAGEDOWN:
127
	    	        case KEY_PAGEUP:
128
	    	        case KEY_RIGHT:
129
	    	        case KEY_SHIFT:
130
	    	        case KEY_TAB:
131
	    	        case KEY_UP:
132
 
133
	    	        break;
134
 
135
	    	    	case KEY_ENTER:
136
 
137
		    	    	 if(selectionUtilisateur) {
138
		    	    		 selectionUtilisateur=false;
139
		    	    	 }
140
		    	    	else {
273 aurelien 141
		    	    		if(valider()) {
972 aurelien 142
		    	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
273 aurelien 143
		    	    		}
144
	    	    			close();
144 aurelien 145
		    	    	 }
146
		    	    break;
147
 
148
		    	    default:
149
		    	    	obtenirListeUtilisateur();
150
		    	    break;
140 aurelien 151
				}
144 aurelien 152
			}
153
		});
154
 
155
		listeUtil.addListener(new ComboBoxListenerAdapter() {
156
 
157
			public void onSelect(ComboBox comboBox, Record record, int index) {
158
 
972 aurelien 159
				utilisateur = record.getAsString("courriel");
160
				idUtilisateur = record.getAsString("id_utilisateur");
273 aurelien 161
				listeUtil.setValue(utilisateur);
144 aurelien 162
 
163
			}
164
		});
140 aurelien 165
	}
166
 
167
	public void rafraichir(Object nouvelleDonnees,
168
			boolean repandreRaffraichissement) {
169
 
170
		if(nouvelleDonnees instanceof String[][]) {
171
 
172
			Object[][] utilData = (Object[][])nouvelleDonnees ;
173
 
972 aurelien 174
			FieldDef defId = new StringFieldDef("id_utilisateur");
175
			FieldDef defCourriel = new StringFieldDef("courriel");
176
			FieldDef[] defTab = {defId,defCourriel};
140 aurelien 177
 
178
			RecordDef rd = new RecordDef(defTab);
179
 
180
			final MemoryProxy dataProxy = new MemoryProxy(utilData);
181
			final ArrayReader reader = new ArrayReader(rd);
182
 
183
			storeUtil =new Store(dataProxy,reader);
184
			storeUtil.load() ;
185
 
186
			listeUtil.setStore(storeUtil);
144 aurelien 187
			listeUtil.expand();
140 aurelien 188
 
189
		}
190
 
191
	}
144 aurelien 192
 
273 aurelien 193
	private boolean valider() {
194
		if(listeUtil.getValue() != null) {
195
			return true;
196
		}
197
		return false;
198
	}
199
 
144 aurelien 200
	public void obtenirListeUtilisateur() {
201
 
202
		String valeur = listeUtil.getRawValue();
203
    	cMediateur.obtenirListeUtilisateurs(valeur,this) ;
204
	}
205
 
268 aurelien 206
	public void focusChampUtilisateur() {
207
		listeUtil.focus();
208
	}
209
 
316 aurelien 210
}