Subversion Repositories eFlore/Applications.cel

Rev

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