Subversion Repositories eFlore/Applications.cel

Rev

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