Subversion Repositories eFlore/Applications.cel

Rev

Rev 91 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 91 Rev 94
Line 189... Line 189...
189
						{
189
						{
190
							observationMediateur.obtenirNombreObservation() ;
190
							observationMediateur.obtenirNombreObservation() ;
191
						}
191
						}
192
						return ;
192
						return ;
193
					case 3: nomFiltre += "annee,mois,jour";
193
					case 3: nomFiltre += "annee,mois,jour";
194
						nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
194
						nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
195
						nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[0] ;
195
						nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ;
196
						donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[0] ;
196
						donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[1] ;
197
						break;
197
						break;
198
					case 2: nomFiltre += "annee,mois"; 
198
					case 2: nomFiltre += "annee,mois"; 
199
						nomPere = ((String[])node.getParentNode().getUserObject())[0] ;
199
						nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
200
						donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[0] ;
200
						donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[1] ;
201
						break;
201
						break;
202
					case 1: nomFiltre += "annee"; 
202
					case 1: nomFiltre += "annee"; 
203
						donneesDateEnCours += ((String[])node.getUserObject())[0] ;
203
						donneesDateEnCours += ((String[])node.getUserObject())[1] ;
204
						break;
204
						break;
205
					default: 
205
					default: 
206
						break;
206
						break;
207
				}
207
				}
Line 242... Line 242...
242
		
242
		
243
				// on crée un arbre vide
243
				// on crée un arbre vide
244
				TreeNode root = new TreeNode();
244
				TreeNode root = new TreeNode();
245
				root.setId("racine_date");
245
				root.setId("racine_date");
246
				root.setText("Dates");
246
				root.setText("Dates");
247
				String[] usObjRoot = { "Dates"};
247
				String[] usObjRoot = { "Dates", "Dates"};
248
				root.setUserObject(usObjRoot);
248
				root.setUserObject(usObjRoot);
Line 249... Line 249...
249
				donneesDates.setRootNode(root);
249
				donneesDates.setRootNode(root);
250
			
250
			
Line 251... Line 251...
251
			// on la parse et on récupère les informations qui nous interessent
251
			// on la parse et on récupère les informations qui nous interessent
Line 252... Line -...
252
			for (Iterator<String> it= data.keySet().iterator(); it.hasNext();) {
-
 
253
				
252
			for (Iterator<String> it= data.keySet().iterator(); it.hasNext();) {
254
				DateObservation ent=(DateObservation) data.get(it.next());
253
				
255
				
254
				DateObservation ent=(DateObservation) data.get(it.next());
256
				
255
				
Line 257... Line 256...
257
				annee= ent.getAnnee() ;
256
				annee= ent.getAnnee() ;
258
				mois= ent.getMois() ;
257
				mois= ent.getMois() ;
259
				String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
258
				String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
Line 260... Line -...
260
				jour= ent.getJour() ;
-
 
261
				
-
 
262
				if(annee.contains("0000")) {
-
 
263
					annee="Inconnue" ;
-
 
264
				}
259
				jour= ent.getJour() ;
265
				
260
				
266
				if(moisLettre.contains("00")) {
261
				if(annee.contains("0000")) {
Line 267... Line 262...
267
					mois="Inconnue" ;
262
					annee="Inconnue" ;
268
				}
263
				}
269
				
264
				
270
				if(jour.contains("00")) {
265
				if(jour.contains("00")) {
271
					jour="Inconnue" ;
266
					jour="Inconnue" ;
272
				}
267
				}
273
				
268
				
274
				Node noeudMemeId = donneesDates.getNodeById(""+annee);
269
				Node noeudMemeAnnee = donneesDates.getNodeById(""+annee);
275
				// si la région existe déjà
270
				// si la région existe déjà
276
					if(noeudMemeId != null)
271
					if(noeudMemeAnnee != null)
277
					{
272
					{
278
						// on teste si la localité existe
273
						// on teste si la localité existe
279
						Node noeudMemeLoc = donneesDates.getNodeById(""+(annee+mois));
274
						Node noeudMemeMois = donneesDates.getNodeById(""+(annee+mois));
280
						if(noeudMemeLoc != null)
275
						if(noeudMemeMois != null)
281
						{
276
						{
282
							// enfin on teste si le lieu dit existe
277
							// enfin on teste si le lieu dit existe
283
							Node noeudMemeLieu = donneesDates.getNodeById(""+(annee+mois+jour));
278
							Node noeudMemeJour = donneesDates.getNodeById(""+(annee+mois+jour));
284
							if(noeudMemeLieu != null)
279
							if(noeudMemeJour != null)
285
							{
280
							{
286
								// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
281
								// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
287
							}
282
							}
288
							else
283
							else
289
							{
284
							{
290
								// enfin on ne crée que le noeud du lieu dit
285
								// enfin on ne crée que le noeud du lieu dit
291
								TreeNode node_lieu = new TreeNode();
286
								TreeNode node_jour = new TreeNode();
292
								node_lieu.setId(""+(annee+mois+jour));
287
								node_jour.setId(""+(annee+mois+jour));
293
								node_lieu.setText(jour);
288
								node_jour.setText(jour);
294
								noeudMemeLoc.appendChild(node_lieu) ;
289
								noeudMemeMois.appendChild(node_jour) ;
295
								String[] usObj = {jour};
290
								String[] usObj = {jour,jour};
296
								node_lieu.setUserObject(usObj);
291
								node_jour.setUserObject(usObj);
297
							}
292
							}
298
						}
293
						}
299
						else
294
						else
Line 300... Line 295...
300
						{
295
						{
301
							TreeNode node_loc = new TreeNode();
296
							TreeNode node_mois = new TreeNode();
302
							node_loc.setId(""+(annee+mois));
297
							node_mois.setId(""+(annee+mois));
303
							node_loc.setText(moisLettre);
298
							node_mois.setText(moisLettre);
304
							noeudMemeId.appendChild(node_loc) ;
299
							noeudMemeAnnee.appendChild(node_mois) ;
305
							String[] usObj = {mois};
300
							String[] usObj = {moisLettre,mois};
Line 306... Line 301...
306
							node_loc.setUserObject(usObj);
301
							node_mois.setUserObject(usObj);
307
							
302
							
308
							TreeNode node_lieu = new TreeNode();
303
							TreeNode node_jour = new TreeNode();
309
							node_lieu.setId(""+(annee+mois+jour));
304
							node_jour.setId(""+(annee+mois+jour));
310
							node_lieu.setText(jour);
305
							node_jour.setText(jour);
311
							node_loc.appendChild(node_lieu) ;
306
							node_mois.appendChild(node_jour) ;
312
							String[] usObj2 = {jour};
307
							String[] usObj2 = {jour,jour};
313
							node_lieu.setUserObject(usObj2);
308
							node_jour.setUserObject(usObj2);
314
							
309
							
315
						}
310
						}
Line 316... Line 311...
316
					}
311
					}
317
					else
312
					else
318
					{
313
					{
319
						TreeNode node_id_loc = new TreeNode();
314
						TreeNode node_annee = new TreeNode();
320
						node_id_loc.setId(""+annee);
315
						node_annee.setId(""+annee);
321
						node_id_loc.setText(annee);
316
						node_annee.setText(annee);
Line 322... Line 317...
322
						root.appendChild(node_id_loc) ;
317
						root.appendChild(node_annee) ;
323
						String[] usObj = {annee};
318
						String[] usObj = {annee, annee};
324
						node_id_loc.setUserObject(usObj);
319
						node_annee.setUserObject(usObj);
325
						
320
						
326
						TreeNode node_loc = new TreeNode();
321
						TreeNode node_mois = new TreeNode();
327
						node_loc.setId(""+(annee+mois));
322
						node_mois.setId(""+(annee+mois));
328
						node_loc.setText(moisLettre);
323
						node_mois.setText(moisLettre);
Line 329... Line 324...
329
						node_id_loc.appendChild(node_loc) ;
324
						node_annee.appendChild(node_mois) ;
Line 330... Line 325...
330
						String[] usObj2 = {mois};
325
						String[] usObj2 = {moisLettre,mois};
Line 353... Line 348...
353
 
348
 
354
				// et on recopie le nouvel arbre
349
				// et on recopie le nouvel arbre
355
				copierFilsNoeud(donneesDates.getRootNode(), arbreDonneesDates
350
				copierFilsNoeud(donneesDates.getRootNode(), arbreDonneesDates
Line -... Line 351...
-
 
351
						.getRootNode());
-
 
352
	
-
 
353
				// on trie
356
						.getRootNode());
354
				root.sort(comparerNoeuds()) ;
357
	
355
				
358
				// si l'arbre n'était pas encore considéré comme instancié
356
				// si l'arbre n'était pas encore considéré comme instancié
359
				if (!estInstancie) {
357
				if (!estInstancie) {
360
					// on signale que oui
358
					// on signale que oui
Line 366... Line 364...
366
				//show() ;
364
				//show() ;
367
				doLayout();
365
				doLayout();
Line 368... Line 366...
368
 
366
 
Line 369... Line 367...
369
			}
367
			}
370
		
368
		
371
		if(nouvelleDonnees instanceof DateObservation)
369
		if(nouvelleDonnees instanceof Observation)
-
 
370
		{			
Line 372... Line 371...
372
		{			
371
			Observation ent = (Observation)nouvelleDonnees ;
373
			DateObservation ent = (DateObservation)nouvelleDonnees ;
372
			String dateSpl[] = ent.getDate().split("/") ;
374
			
373
			
Line 375... Line 374...
375
			String annee= ent.getAnnee() ;
374
			String annee= dateSpl[2];
Line 376... Line 375...
376
			String mois= ent.getMois() ;
375
			String mois= dateSpl[1];
Line 377... Line 376...
377
			String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
376
			String jour= dateSpl[0];
378
			
377
			
379
			String jour= ent.getJour() ;
378
			String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
Line 380... Line -...
380
			
-
 
381
			Node root = arbreDonneesDates.getRootNode() ;
-
 
382
			
-
 
383
			if(annee.contains("0000") || annee.equals(null)) {
-
 
384
				annee="Inconnue" ;
379
			
385
			}
380
			Node root = arbreDonneesDates.getRootNode() ;
386
			
381
			
Line 387... Line 382...
387
			if(mois.contains("00") || mois.equals(null)) {
382
			if(annee.contains("0000") || annee.equals(null)) {
388
				mois="Inconnue" ;
383
				annee="Inconnue" ;
389
			}
384
			}
390
			
385
			
391
			if(jour.contains("00") || jour.equals(null)) {
386
			if(jour.contains("00") || jour.equals(null)) {
392
				jour="Inconnue" ;
387
				jour="Inconnue" ;
393
			}
388
			}
394
			
389
			
395
			Node noeudMemeId = donneesDates.getNodeById(""+annee);
390
			Node noeudMemeAnnee = donneesDates.getNodeById(""+annee);
396
			// si la région existe déjà
391
			// si la région existe déjà
397
				if(noeudMemeId != null)
392
				if(noeudMemeAnnee != null)
398
				{
393
				{	
399
					// on teste si la localité existe
394
					// on teste si la localité existe
400
					Node noeudMemeLoc = donneesDates.getNodeById(""+(annee+mois));
395
					Node noeudMemeMois = donneesDates.getNodeById(""+(annee+mois));
401
					if(noeudMemeLoc != null)
396
					if(noeudMemeMois != null)
402
					{
397
					{
403
						// enfin on teste si le lieu dit existe
398
						// enfin on teste si le lieu dit existe
404
						Node noeudMemeLieu = donneesDates.getNodeById(""+(annee+mois+jour));
399
						Node noeudMemeJour = donneesDates.getNodeById(""+(annee+mois+jour));
405
						if(noeudMemeLieu != null)
400
						if(noeudMemeJour != null)
406
						{
401
						{
407
							// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
402
							// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
408
						}
403
						}
409
						else
404
						else
-
 
405
						{
-
 
406
							// enfin on ne crée que le noeud du lieu dit
410
						{
407
							TreeNode node_jour = new TreeNode();
411
							// enfin on ne crée que le noeud du lieu dit
408
							node_jour.setId(""+(annee+mois+jour));
412
							TreeNode node_lieu = new TreeNode();
409
							node_jour.setText(jour);
413
							node_lieu.setId(""+(annee+mois+jour));
410
							String[] usObj = {jour,jour};
414
							node_lieu.setText(jour);
411
							node_jour.setUserObject(usObj);
415
							String[] usObj = {jour};
412
							noeudMemeMois.appendChild(node_jour) ;
416
							node_lieu.setUserObject(usObj);
413
							
417
							noeudMemeLoc.appendChild(node_lieu) ;
414
							root.sort(comparerNoeuds()) ;
418
						}
415
						}
419
					}
416
					}
-
 
417
					else
-
 
418
					{
Line 420... Line 419...
420
					else
419
						TreeNode node_mois = new TreeNode();
421
					{
420
						node_mois.setId(""+(annee+mois));
422
						TreeNode node_loc = new TreeNode();
421
						node_mois.setText(moisLettre);
423
						node_loc.setId(""+(annee+mois));
422
						String[] usObj = {moisLettre,mois};
424
						node_loc.setText(mois);
423
						node_mois.setUserObject(usObj);
425
						String[] usObj = {moisLettre};
424
						noeudMemeAnnee.appendChild(node_mois) ;
Line -... Line 425...
-
 
425
						
426
						node_loc.setUserObject(usObj);
426
						Window.alert("on crée on nouveau mois "+node_mois.getId()) ;
427
						noeudMemeId.appendChild(node_loc) ;
427
						
428
						
428
						TreeNode node_jour = new TreeNode();
429
						TreeNode node_lieu = new TreeNode();
429
						node_jour.setId(""+(annee+mois+jour));
430
						node_lieu.setId(""+(annee+mois+jour));
-
 
Line 431... Line 430...
431
						node_lieu.setText(jour);
430
						node_jour.setText(jour);
432
						String[] usObj2 = {jour};
431
						String[] usObj2 = {jour,jour};
433
						node_lieu.setUserObject(usObj2);
432
						node_jour.setUserObject(usObj2);
434
						node_loc.appendChild(node_lieu) ;
433
						node_mois.appendChild(node_jour) ;
435
						
434
						
436
					}
435
						root.sort(comparerNoeuds()) ;
437
			}
436
					}
438
			else
437
			}
439
			{
438
			else
440
				// TODO: Pourquoi l'ajout ne marche que sur la racine ?
439
			{
441
				
440
				
442
				TreeNode node_id_loc = new TreeNode();
441
				TreeNode node_annee = new TreeNode();
443
				node_id_loc.setId(""+annee);
442
				node_annee.setId(""+annee);
444
				node_id_loc.setText(annee);
443
				node_annee.setText(annee);
445
				String[] usObj = {annee};
444
				String[] usObj = {annee,annee};
446
				node_id_loc.setUserObject(usObj);
445
				node_annee.setUserObject(usObj);
447
				root.appendChild(node_id_loc) ;
446
				root.appendChild(node_annee) ;
448
				
447
				
449
				TreeNode node_loc = new TreeNode();
448
				TreeNode node_mois = new TreeNode();
450
				node_loc.setId(""+(annee+mois));
449
				node_mois.setId(""+(annee+mois));
Line 451... Line 450...
451
				node_loc.setText(mois);
450
				node_mois.setText(moisLettre);
452
				String[] usObj2 = {moisLettre};
451
				String[] usObj2 = {moisLettre,mois};
453
				node_loc.setUserObject(usObj2);
452
				node_mois.setUserObject(usObj2);
Line 547... Line 546...
547
	{
546
	{
548
		return new Comparator<TreeNode>() {
547
		return new Comparator<TreeNode>() {
Line 549... Line 548...
549
 
548
 
Line 550... Line 549...
550
			public int compare(TreeNode o1, TreeNode o2) {
549
			public int compare(TreeNode o1, TreeNode o2) {
551
				
550
				
Line 552... Line 551...
552
				String n1 = ((String[])o1.getUserObject())[0] ;
551
				String n1 = ((String[])o1.getUserObject())[1] ;
553
				String n2 = ((String[])o2.getUserObject())[0] ;
552
				String n2 = ((String[])o2.getUserObject())[1] ;
Line 554... Line 553...
554
				
553