Subversion Repositories eFlore/Archives.cel-v1

Rev

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