Subversion Repositories eFlore/Archives.cel-v1

Rev

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