Subversion Repositories eFlore/Applications.cel

Rev

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