Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 14 | Rev 24 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 ddelon 1
package org.tela_botanica.client;
2
 
3
 
4
// TODO : sortie User vers une classe ...
5
// TODO : sortie les boutons supprimer et exporter et inclure ici
6
 
7
import com.google.gwt.i18n.client.Dictionary;
14 ddelon 8
import com.google.gwt.json.client.JSONArray;
9
import com.google.gwt.json.client.JSONBoolean;
10 ddelon 10
import com.google.gwt.json.client.JSONParser;
11
import com.google.gwt.json.client.JSONString;
12
import com.google.gwt.json.client.JSONValue;
13
import com.google.gwt.user.client.HTTPRequest;
14
import com.google.gwt.user.client.ResponseTextHandler;
14 ddelon 15
import com.google.gwt.user.client.ui.Label;
12 ddelon 16
import com.google.gwt.user.client.ui.TextBox;
10 ddelon 17
 
18
public class Mediator {
19
 
20
 
21
		private String serviceBaseUrl = getServiceBaseUrlFromDictionnary();
22
		private String user = null;
11 ddelon 23
		private InventoryItemList inventoryItemList = null;
10 ddelon 24
		private LocationList locationList = null;
12 ddelon 25
		private DateList dateList = null;
14 ddelon 26
		private StationList stationList = null;
11 ddelon 27
		private NameAssistant nameAssistant=null;
28
		private LocationAssistant locationAssistant=null;
12 ddelon 29
		private InventoryItem inventoryItem=null;
30
		private EntryPanel entryPanel=null;
14 ddelon 31
		private TopPanel topPanel=null;
11 ddelon 32
 
12 ddelon 33
		private TextBox date = null;
34
		private TextBox complementLocation = null;
35
		private TextBox comment = null;
36
 
14 ddelon 37
		boolean connected=false;
12 ddelon 38
 
39
 
10 ddelon 40
		private Cel cel = null;
41
 
42
 
43
		Mediator() {
44
 
45
 
46
		}
47
 
48
		/**
49
		 * Recuperation information utilisateur
50
		 *
51
		 */
52
 
53
		public void initUser() {
54
			getUserFromService();
55
 
56
		}
12 ddelon 57
 
58
 
59
		/**
60
		 * Action initialisation
61
		 */
62
 
10 ddelon 63
 
12 ddelon 64
		public void onInit() {
65
 
14 ddelon 66
 
67
			locationList.setLocation("all");
68
			locationList.updateCount();
69
 
12 ddelon 70
			this.onLocationSelected("all");
71
 
72
		}
73
 
13 ddelon 74
 
14 ddelon 75
		/**
76
		 * Action suite ajout, modification, suppression element inventaire
77
		 */
13 ddelon 78
 
14 ddelon 79
 
80
		public void onInventoryUpdated(String location) {
81
 
82
 
83
			locationList.setLocation(location);
84
			locationList.updateCount();
85
 
86
			this.onLocationSelected(location);
87
 
88
		}
89
 
90
 
13 ddelon 91
		/**
92
		 * Action sur selection d'une observation : affichage du detail
93
		 */
94
 
95
		public void onInventoryItemSelected(String ordre) {
96
 
97
			entryPanel.setOrdre(ordre);
98
			entryPanel.update();
99
 
100
 
101
		}
12 ddelon 102
 
13 ddelon 103
 
104
		/**
14 ddelon 105
		 * Action sur recherche  : affichage de la liste des taxons correspondants
13 ddelon 106
		 */
107
 
108
		public void onSearch(String search) {
109
 
110
			if (search.trim().compareTo("")==0) {
111
				search="all";
112
			}
113
			inventoryItemList.setSearch(search);
114
			inventoryItemList.updateCount();
12 ddelon 115
 
116
		}
13 ddelon 117
 
12 ddelon 118
 
13 ddelon 119
 
10 ddelon 120
		/**
11 ddelon 121
		 * Action sur selection d'un lieu : affichage de la liste des taxons correspondants
14 ddelon 122
		 * TODO : gerer asynchronicite ?
10 ddelon 123
		 */
124
 
125
		public void onLocationSelected(String loc) {
126
 
11 ddelon 127
			inventoryItemList.setLocation(loc);
12 ddelon 128
			inventoryItemList.setDate("all");
14 ddelon 129
			inventoryItemList.setStation("all");
11 ddelon 130
			inventoryItemList.updateCount();
10 ddelon 131
 
14 ddelon 132
			dateList.setLocation(loc);
133
			dateList.setDate("all");
134
			dateList.updateCount();
135
			stationList.setLocation(loc);
136
			stationList.setStation("all");
137
			stationList.updateCount();
12 ddelon 138
 
14 ddelon 139
		}
12 ddelon 140
 
14 ddelon 141
		/**
142
		 * Action sur login
143
		 * @param user
144
		 */
145
 
146
 
147
		public void onLogin(String user) {
148
 
149
 
150
			this.user=user;
151
			topPanel.getSignLabel().setText(user+ " (deconnexion)");
152
			inventoryItemList.setUser(user);
153
			dateList.setUser(user);
154
			stationList.setUser(user);
155
			entryPanel.setUser(user);
156
			locationList.setUser(user);
157
			this.onInit();
158
 
12 ddelon 159
		}
160
 
14 ddelon 161
 
12 ddelon 162
		/**
14 ddelon 163
		 * Action sur logoff
164
		 * @param user
12 ddelon 165
		 */
166
 
14 ddelon 167
 
168
		public void onLogoff(String user) {
12 ddelon 169
 
14 ddelon 170
			this.user=user;
171
			topPanel.getSignLabel().setText("Connexion");
172
			inventoryItemList.setUser(user);
173
			dateList.setUser(user);
174
			stationList.setUser(user);
175
			entryPanel.setUser(user);
176
			locationList.setUser(user);
177
			this.onInit();
178
 
10 ddelon 179
		}
12 ddelon 180
 
10 ddelon 181
		/**
14 ddelon 182
		 * Action sur selection d'une station : affichage de la liste des taxons correspondants
10 ddelon 183
		 */
184
 
14 ddelon 185
		public void onStationSelected(String station) {
10 ddelon 186
 
14 ddelon 187
			inventoryItemList.setStation(station);
188
			inventoryItemList.updateCount();
189
 
10 ddelon 190
		}
14 ddelon 191
 
192
 
193
 
10 ddelon 194
 
195
		/**
14 ddelon 196
		 * Action sur selection d'une date : affichage de la liste des taxons correspondants
12 ddelon 197
		 */
14 ddelon 198
 
199
		public void onDateSelected(String date) {
12 ddelon 200
 
14 ddelon 201
			inventoryItemList.setDate(date);
202
			inventoryItemList.updateCount();
12 ddelon 203
 
204
		}
14 ddelon 205
 
12 ddelon 206
 
207
 
14 ddelon 208
 
12 ddelon 209
		/**
210
		 * Action prealable à l'ajout d'une observation : controle presence champs requis et lancement mise a jour
211
		 *
212
		 */
213
 
214
		public void onAddInventoryItem() {
215
 
216
			// TODO : singleton ?
13 ddelon 217
			registerInventoryItem(new InventoryItem(nameAssistant.getText(),nameAssistant.getValue(),locationAssistant.getText(),locationAssistant.getValue(),date.getText(),complementLocation.getText(),comment.getText(),"null"));
12 ddelon 218
			inventoryItemList.addelement();
219
 
220
		}
221
 
13 ddelon 222
 
223
		/**
224
		 * Action prealable à la modification d'une observation : controle presence champs requis et lancement mise a jour
225
		 *
226
		 */
12 ddelon 227
 
13 ddelon 228
		public void onModifyInventoryItem(String ordre) {
229
 
230
		// TODO : singleton ?
231
		registerInventoryItem(new InventoryItem(nameAssistant.getText(),nameAssistant.getValue(),locationAssistant.getText(),locationAssistant.getValue(),date.getText(),complementLocation.getText(),comment.getText(),ordre));
232
		inventoryItemList.updateElement();
233
 
234
		}
235
 
12 ddelon 236
 
237
		public boolean inventoryItemIsValid() {
238
			// TODO : controle date
239
 
240
		    if (inventoryItem.getName().compareTo("")==0) {
241
		    	return false;
242
		    }
243
		    else {
244
		    	return true;
245
		    }
246
 
247
		}
248
 
249
		/**
250
		 * Declaration InventoryItem
251
		 * @param cel
252
		 */
253
 
254
		public void registerInventoryItem(InventoryItem inventoryItem) {
255
 
256
			this.inventoryItem=inventoryItem;
257
		}
258
 
259
 
260
 
261
 
262
		/**
11 ddelon 263
		 * Declaration InventoryItemList
264
		 * @param inventoryItemList
10 ddelon 265
		 */
266
 
11 ddelon 267
		public void registerInventoryItemList(InventoryItemList inventoryItemList) {
10 ddelon 268
 
11 ddelon 269
			this.inventoryItemList=inventoryItemList;
10 ddelon 270
 
271
		}
272
 
273
		/**
11 ddelon 274
		 * Declaration LocationList
10 ddelon 275
		 * @param locationList
276
		 */
277
 
278
		public void registerLocationList(LocationList locationList) {
279
 
280
			this.locationList=locationList;
281
		}
12 ddelon 282
 
10 ddelon 283
 
12 ddelon 284
 
10 ddelon 285
		/**
12 ddelon 286
		 * Declaration DateList
287
		 * @param locationList
288
		 */
289
 
290
		public void registerDateList(DateList dateList) {
291
 
292
			this.dateList=dateList;
293
		}
294
 
295
 
14 ddelon 296
		/**
297
		 * Declaration StationList
298
		 * @param locationList
299
		 */
12 ddelon 300
 
14 ddelon 301
		public void registerStationList(StationList stationList) {
302
 
303
			this.stationList=stationList;
304
		}
305
 
306
 
307
 
12 ddelon 308
		/**
11 ddelon 309
		 * Declaration Cel
10 ddelon 310
		 * @param cel
311
		 */
312
 
313
		public void registerCel(Cel cel) {
314
 
315
			this.cel=cel;
316
		}
317
 
318
 
11 ddelon 319
		/**
320
		 * Declaration NameAssistant
321
		 * @param nameassistant
322
		 */
323
 
324
		public void registerNameAssistant(NameAssistant nameAssistant) {
325
			this.nameAssistant=nameAssistant;
326
 
327
		}
328
 
329
		/**
330
		 * Declaration LocationAssistant
331
		 * @param locationassistant
332
		 */
333
 
334
		public void registerLocationAssistant(LocationAssistant locationAssistant) {
335
			this.locationAssistant=locationAssistant;
336
 
337
		}
12 ddelon 338
 
11 ddelon 339
 
12 ddelon 340
 
341
		/**
342
		 * Declaration date
343
		 * @param date
344
		 */
345
 
346
		public void registerDate(TextBox date) {
347
			this.date=date;
348
 
349
		}
350
 
351
 
352
 
353
		/**
354
		 * Declaration complementLocation
355
		 * @param complementLocation
356
		 */
357
 
358
		public void registerComplementLocation(TextBox complementLocation) {
359
			this.complementLocation=complementLocation;
360
 
361
		}
362
 
363
 
364
	    public void  registerEntryPanel(EntryPanel entryPanel) {
365
	    	this.entryPanel=entryPanel;
366
		}
10 ddelon 367
 
13 ddelon 368
 
12 ddelon 369
 
13 ddelon 370
 
14 ddelon 371
	    public void  registerTopPanel(TopPanel topPanel) {
372
	    	this.topPanel=topPanel;
373
		}
13 ddelon 374
 
14 ddelon 375
 
376
 
10 ddelon 377
		/**
12 ddelon 378
		 * Declaration commentaire
379
		 * @param commentaire
380
		 */
381
 
382
		public void registerComment(TextBox comment) {
383
			this.comment=comment;
384
 
385
		}
386
 
387
 
388
 
389
 
390
		/**
10 ddelon 391
		 * Recherche distante et asynchrone de l'utilisateur connecté, en retour lancement methode initialisation
11 ddelon 392
		 * de l'appellant Cel. (initAsync)
10 ddelon 393
		 *
394
		 */
395
 
396
		private void getUserFromService() {
397
 
398
 
399
			HTTPRequest.asyncGet(serviceBaseUrl + "/User/",
400
					new ResponseTextHandler() {
401
 
402
						public void onCompletion(String str) {
403
							JSONValue jsonValue = JSONParser.parse(str);
14 ddelon 404
							JSONArray jsonArray;
405
							if ((jsonArray = jsonValue.isArray()) != null) {
406
									user = ((JSONString) jsonArray.get(0)).stringValue();
407
									connected = ((JSONBoolean) jsonArray.get(1)).booleanValue();
10 ddelon 408
							}
409
							cel.initAsync();
410
						}
411
					});
412
 
413
		}
414
 
415
		/**
416
		 * Accesseur Url de base
417
		 * @return Url de base
418
		 */
419
 
420
		public String getServiceBaseUrl() {
421
 
422
			return serviceBaseUrl;
423
 
424
		}
425
 
426
 
427
		/**
428
		 * Recuperation du prefixe d'appel des services
429
		 * @return prefix appel des service
430
		 */
431
 
432
		private String getServiceBaseUrlFromDictionnary() {
433
 
434
			Dictionary theme = Dictionary.getDictionary("Parameters");
435
			return theme.get("serviceBaseUrl");
436
 
437
		}
438
 
439
 
440
		/**
441
		 *  Accesseur Utilisateur
442
		 * @return utilisateur connecté ou identifiant de session
443
		 */
444
 
445
		public String getUser() {
446
			return user;
447
		}
14 ddelon 448
 
11 ddelon 449
 
10 ddelon 450
 
14 ddelon 451
		public void setUser(String user) {
452
			this.user=user;
453
		}
454
 
455
 
11 ddelon 456
 
457
		public InventoryItemList getInventoryItemList() {
458
			return inventoryItemList;
459
		}
10 ddelon 460
 
11 ddelon 461
		public LocationList getLocationList() {
462
			return locationList;
463
		}
10 ddelon 464
 
12 ddelon 465
		public DateList getDateList() {
466
			return dateList;
467
		}
468
 
469
 
11 ddelon 470
		public NameAssistant getNameAssistant() {
471
			return nameAssistant;
472
		}
473
 
474
		public LocationAssistant getLocationAssistant() {
475
			return locationAssistant;
476
		}
477
 
12 ddelon 478
		public InventoryItem getInventoryItem() {
479
			return inventoryItem;
480
		}
11 ddelon 481
 
12 ddelon 482
		public EntryPanel getEntryPanel() {
483
			return entryPanel;
484
		}
11 ddelon 485
 
12 ddelon 486
 
14 ddelon 487
		public void setConnected(boolean connected) {
488
 
489
			this.connected=connected;
490
		}
491
 
492
		public boolean getConnected() {
493
 
494
			return this.connected;
495
		}
12 ddelon 496
 
14 ddelon 497
 
10 ddelon 498
	}