Subversion Repositories eFlore/Applications.cel

Rev

Rev 1291 | Rev 2204 | 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
		listeUtil.setItemSelector("div.search-item-utilisateur");
144 aurelien 70
		listeUtil.setHideTrigger(true);
71
 
972 aurelien 72
		listeUtil.setDisplayField("courriel");
295 aurelien 73
 
273 aurelien 74
		listeUtil.setLoadingText("Recherche...");
75
		listeUtil.setValue(utilisateur);
140 aurelien 76
 
77
		OK= new com.gwtext.client.widgets.Button("OK");
268 aurelien 78
		annuler = new com.gwtext.client.widgets.Button("Annuler");
140 aurelien 79
 
268 aurelien 80
		Panel boutonPanel = new Panel();
81
		boutonPanel.setLayout(new HorizontalLayout(0));
82
 
140 aurelien 83
		add(listeUtil);
84
 
268 aurelien 85
		boutonPanel.add(OK);
86
		boutonPanel.add(annuler);
87
 
88
		add(boutonPanel);
89
 
144 aurelien 90
		this.setSize(300, 75);
140 aurelien 91
 
144 aurelien 92
		OK.addListener(new ButtonListenerAdapter() {
140 aurelien 93
 
1291 aurelien 94
			@Override
144 aurelien 95
			public void onClick(com.gwtext.client.widgets.Button button,
96
					EventObject e) {
295 aurelien 97
	    		if(valider()) {
972 aurelien 98
	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
295 aurelien 99
	    			close();
100
	    		}
144 aurelien 101
			}
102
		});
103
 
268 aurelien 104
		annuler.addListener(new ButtonListenerAdapter() {
105
 
1291 aurelien 106
			@Override
268 aurelien 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
 
1291 aurelien 115
			@Override
144 aurelien 116
			public void execute(EventObject e) {
117
 
118
				switch(e.getKey()) {
119
 
120
					case KEY_ALT:
121
	    	        case KEY_CTRL:
122
	    	        case KEY_DOWN:
123
	    	        case KEY_END:
124
	    	        case KEY_ESCAPE:
125
	    	        case KEY_HOME:
126
	    	        case KEY_LEFT:
127
	    	        case KEY_PAGEDOWN:
128
	    	        case KEY_PAGEUP:
129
	    	        case KEY_RIGHT:
130
	    	        case KEY_SHIFT:
131
	    	        case KEY_TAB:
132
	    	        case KEY_UP:
133
 
134
	    	        break;
135
 
136
	    	    	case KEY_ENTER:
137
 
138
		    	    	 if(selectionUtilisateur) {
139
		    	    		 selectionUtilisateur=false;
140
		    	    	 }
141
		    	    	else {
273 aurelien 142
		    	    		if(valider()) {
972 aurelien 143
		    	    			cMediateur.changerIdentite(idUtilisateur,utilisateur);
273 aurelien 144
		    	    		}
145
	    	    			close();
144 aurelien 146
		    	    	 }
147
		    	    break;
148
 
149
		    	    default:
150
		    	    	obtenirListeUtilisateur();
151
		    	    break;
140 aurelien 152
				}
144 aurelien 153
			}
154
		});
155
 
156
		listeUtil.addListener(new ComboBoxListenerAdapter() {
157
 
1291 aurelien 158
			@Override
144 aurelien 159
			public void onSelect(ComboBox comboBox, Record record, int index) {
160
 
972 aurelien 161
				utilisateur = record.getAsString("courriel");
162
				idUtilisateur = record.getAsString("id_utilisateur");
273 aurelien 163
				listeUtil.setValue(utilisateur);
144 aurelien 164
 
165
			}
166
		});
140 aurelien 167
	}
168
 
1291 aurelien 169
	@Override
140 aurelien 170
	public void rafraichir(Object nouvelleDonnees,
171
			boolean repandreRaffraichissement) {
172
 
173
		if(nouvelleDonnees instanceof String[][]) {
174
 
175
			Object[][] utilData = (Object[][])nouvelleDonnees ;
176
 
972 aurelien 177
			FieldDef defId = new StringFieldDef("id_utilisateur");
178
			FieldDef defCourriel = new StringFieldDef("courriel");
179
			FieldDef[] defTab = {defId,defCourriel};
140 aurelien 180
 
181
			RecordDef rd = new RecordDef(defTab);
182
 
183
			final MemoryProxy dataProxy = new MemoryProxy(utilData);
184
			final ArrayReader reader = new ArrayReader(rd);
185
 
186
			storeUtil =new Store(dataProxy,reader);
187
			storeUtil.load() ;
188
 
189
			listeUtil.setStore(storeUtil);
144 aurelien 190
			listeUtil.expand();
140 aurelien 191
 
192
		}
193
 
194
	}
144 aurelien 195
 
273 aurelien 196
	private boolean valider() {
197
		if(listeUtil.getValue() != null) {
198
			return true;
199
		}
200
		return false;
201
	}
202
 
144 aurelien 203
	public void obtenirListeUtilisateur() {
204
 
205
		String valeur = listeUtil.getRawValue();
206
    	cMediateur.obtenirListeUtilisateurs(valeur,this) ;
207
	}
208
 
268 aurelien 209
	public void focusChampUtilisateur() {
210
		listeUtil.focus();
211
	}
212
 
316 aurelien 213
}