Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 401 Rev 408
Line 61... Line 61...
61
	 */
61
	 */
62
	private ColumnModel colModel = null ;
62
	private ColumnModel colModel = null ;
Line 63... Line 63...
63
	
63
	
Line 64... Line 64...
64
	private SimpleStore store = null ;
64
	private SimpleStore store = null ;
Line 65... Line 65...
65
	
65
	
Line 66... Line 66...
66
	private MiniBarrePaginationVue pgBar = new MiniBarrePaginationVue(iMediateur) ;
66
	private MiniBarrePaginationVue pgBar = new MiniBarrePaginationVue(this) ;
67
	
67
	
Line 77... Line 77...
77
 
77
 
Line 78... Line 78...
78
	private boolean liaison;
78
	private boolean liaison;
Line -... Line 79...
-
 
79
	
-
 
80
	int pageEnCours = 0;
-
 
81
	
-
 
82
	int nbElements = 0;
-
 
83
	
-
 
84
	int taillePage = 50;
-
 
85
	
-
 
86
	/**
-
 
87
	 * Nombre de pages totales
79
	
88
	 */
80
	int pageEnCours = 0;
89
	private int pageMax = 1 ;
81
	
90
	
82
	/**
91
	/**
83
	 * Constructeur avec arguments
92
	 * Constructeur avec arguments
84
	 * @param im le médiateur à associer à la vue
93
	 * @param im le médiateur à associer à la vue
85
	 */
94
	 */
Line 86... Line 95...
86
	public MiniListeObservationVue(ImageMediateur im)
95
	public MiniListeObservationVue(ImageMediateur im)
Line -... Line 96...
-
 
96
	{
-
 
97
		iMediateur = im ;
-
 
98
		
-
 
99
		this.setId("x-view-mini-obs") ;
-
 
100
		
-
 
101
		// on construit le modèle de colonnes
-
 
102
 
-
 
103
		// Le store suivant est ensuite remplacé par le store contenant les données obtenus depuis le serveur (cf rafraichir) 
-
 
104
				
-
 
105
		Renderer colRend = new Renderer() {
-
 
106
 
-
 
107
			public String render(Object value, CellMetadata cellMetadata,
-
 
108
					Record record, int rowIndex, int colNum, Store store) {
-
 
109
				
-
 
110
				if(value == null || value.equals("null") || value.equals("000null") || value.equals("0000-00-00 00:00:00")) {
-
 
111
				
-
 
112
					return "" ;
-
 
113
				}	
-
 
114
				else
-
 
115
				{
-
 
116
					
-
 
117
				}
-
 
118
				
-
 
119
				return value.toString() ;
-
 
120
			}
-
 
121
			
-
 
122
		} ;
-
 
123
		
-
 
124
		Renderer dateRend = new Renderer() {
-
 
125
 
-
 
126
			public String render(Object value, CellMetadata cellMetadata,
-
 
127
					Record record, int rowIndex, int colNum, Store store) {
-
 
128
				
-
 
129
				if(value == null || value.equals("null") || value.equals("000null") || value.equals("0000-00-00 00:00:00")) {
-
 
130
				
-
 
131
					return "" ;
-
 
132
				}	
-
 
133
				else
-
 
134
				{
-
 
135
					String dateEntiere = value.toString() ;
-
 
136
					String[] dateEtHeure = dateEntiere.split(" ", 2);
-
 
137
					if(verifierFormatDate(dateEtHeure[0])) {
-
 
138
						String[] dateFormateeTab = dateEtHeure[0].split("-",3);
-
 
139
						return dateFormateeTab[2]+"/"+dateFormateeTab[1]+"/"+dateFormateeTab[0] ;
-
 
140
					}
-
 
141
				}
-
 
142
				
87
	{
143
				return value.toString() ;
88
		iMediateur = im ;
144
			}
89
		
145
			
90
		this.setId("x-view-mini-obs") ;
146
		} ;
Line 105... Line 161...
105
					return "" ;
161
					return "" ;
106
				}
162
				}
107
			}
163
			}
Line 108... Line 164...
108
			
164
			
109
		}), 
165
		}), 
110
		new ColumnConfig("Numero", "id_obs", 50, true),   
166
		new ColumnConfig("Numero", "id_obs", 50, true, colRend),   
111
		new ColumnConfig("Taxon", "plante", 145, true), 
167
		new ColumnConfig("Taxon", "plante", 145, true, colRend), 
112
		new ColumnConfig("Date", "date", 68, true),
168
		new ColumnConfig("Date", "date", 68, true, dateRend),
Line 113... Line 169...
113
		new ColumnConfig("Lieu", "lieu", 145, true) } ;
169
		new ColumnConfig("Lieu", "lieu", 145, true, colRend) } ;
Line 114... Line 170...
114
		   
170
		   
Line 163... Line 219...
163
		
219
		
164
		setAutoScroll(true) ;
220
		setAutoScroll(true) ;
165
		// on configure le drag 'n drop
221
		// on configure le drag 'n drop
Line 166... Line -...
166
		configDragAndDrop() ;
-
 
167
		
-
 
168
		this.addListener(new ContainerListenerAdapter() {
-
 
169
			
-
 
170
			public void onRender(Component c) {
-
 
171
				
-
 
172
				obtenirMiniListeObservations() ;
-
 
173
				
-
 
174
			}
-
 
175
			
-
 
176
			public void onAfterLayout(Container c)
-
 
177
			{
-
 
178
				obtenirMiniListeObservations() ;
-
 
179
			}
-
 
180
			
-
 
181
		}) ;
222
		configDragAndDrop() ;
Line 182... Line 223...
182
		
223
		
Line 183... Line 224...
183
		this.addGridListener(new GridListenerAdapter() {
224
		this.addGridListener(new GridListenerAdapter() {
Line 196... Line 237...
196
				mlv.showAt(e.getXY()) ;
237
				mlv.showAt(e.getXY()) ;
Line 197... Line 238...
197
				
238
				
Line 198... Line 239...
198
			}
239
			}
-
 
240
			
-
 
241
		}) ;
199
			
242
		
Line 200... Line 243...
200
		}) ;
243
		obtenirNombreMiniListeObservations();
201
	}
244
	}
202
	
245
	
Line 258... Line 301...
258
		if(nouvelleDonnees instanceof ListeObservation)
301
		if(nouvelleDonnees instanceof ListeObservation)
259
		{
302
		{
260
			if(this.getView() != null)
303
			if(this.getView() != null)
261
			{
304
			{
262
				ListeObservation data = (ListeObservation)nouvelleDonnees ;
305
				ListeObservation data = (ListeObservation)nouvelleDonnees ;
-
 
306
				
-
 
307
				//Window.alert(data.size()+"");
-
 
308
				
263
				String[][] listeObs = new String[data.size()][5] ;
309
				String[][] listeObs = new String[data.size()][5] ;
264
				int i = 0 ;
310
				int i = 0 ;
Line 265... Line 311...
265
				
311
				
266
				for (Iterator it = data.keySet().iterator(); it.hasNext();) 
312
				for (Iterator it = data.keySet().iterator(); it.hasNext();) 
Line 285... Line 331...
285
			{
331
			{
286
				addListener(new ContainerListenerAdapter() {
332
				addListener(new ContainerListenerAdapter() {
Line 287... Line 333...
287
					
333
					
288
					public void onShow(Component c)
334
					public void onShow(Component c)
289
					{
335
					{
290
						obtenirMiniListeObservations() ;
336
						obtenirNombreMiniListeObservations() ;
Line 291... Line 337...
291
					}
337
					}
292
					
338
					
293
					public void onAfterLayout(Container c)
339
					public void onAfterLayout(Container c)
294
					{
340
					{
Line 295... Line 341...
295
						obtenirMiniListeObservations() ;
341
						obtenirNombreMiniListeObservations() ;
296
					}
342
					}
Line 297... Line 343...
297
					
343
					
Line -... Line 344...
-
 
344
				}) ;
-
 
345
			}
-
 
346
	
-
 
347
		}
-
 
348
		
-
 
349
		// Si on reçoit un tableau d'entiers
-
 
350
		// c'est un tableau d'un seul entier qui est le nombre d'observation correspondant aux critères
-
 
351
		if(nouvelleDonnees instanceof int[])
-
 
352
		{
-
 
353
			int[] pages = (int[])nouvelleDonnees ;
-
 
354
			
-
 
355
			// on calcule le nombre de pages nécessaires et on les met à jour dans le modèle
-
 
356
			pageMax  = calculerNbPages(pages[0]) ;
-
 
357
			nbElements = pages[0];		
-
 
358
			
-
 
359
			// et on notifie de le mediateur du changement des valeurs
-
 
360
			changerPageMaxEtCourante(pageMax,pageEnCours,taillePage,nbElements) ;
-
 
361
			
-
 
362
			masquerChargement();
298
				}) ;
363
			obtenirMiniListeObservations();
Line 299... Line 364...
299
			}
364
		}
Line 300... Line 365...
300
	
365
		
301
		}
366
		redimensionner();
-
 
367
		
-
 
368
		deMasquerChargement() ;
-
 
369
		
-
 
370
	}
-
 
371
	
302
		
372
	private void obtenirMiniListeObservations()
303
		deMasquerChargement() ;
373
	{
Line 304... Line 374...
304
		
374
		iMediateur.obtenirMiniListeObservations(this, taillePage, pageEnCours) ;
305
	}
375
	}
306
	
376
	
Line 334... Line 404...
334
		if(mode.equals("true")) {
404
		if(mode.equals("true")) {
Line 335... Line 405...
335
 
405
 
336
			liaison = true ;
406
			liaison = true ;
337
			selecteurMode.removeClass("x-selec-consult") ;
407
			selecteurMode.removeClass("x-selec-consult") ;
-
 
408
			selecteurMode.setCls("x-selec-liaison") ;
-
 
409
			getBarrePagination().disable();
338
			selecteurMode.setCls("x-selec-liaison") ;
410
			doLayout();
339
		}
411
		}
340
		else
412
		else
341
		{
413
		{
342
			liaison = false ;
414
			liaison = false ;
343
			selecteurMode.removeClass("x-selec-liaison") ;
415
			selecteurMode.removeClass("x-selec-liaison") ;
-
 
416
			selecteurMode.setCls("x-selec-consult") ;
344
			selecteurMode.setCls("x-selec-consult") ;
417
			getBarrePagination().enable();
345
			
418
			doLayout();
Line 346... Line 419...
346
		}
419
		}
347
		
420
		
348
		masquerChargement() ;
421
		masquerChargement() ;
Line 380... Line 453...
380
	}
453
	}
Line 381... Line 454...
381
	
454
	
Line 382... Line 455...
382
	public String getIdSelectionnees() {
455
	public String getIdSelectionnees() {
-
 
456
		
-
 
457
		Record[] sels = getSelectionModel().getSelections() ;
-
 
458
		
-
 
459
		String id = "";
383
		
460
		
-
 
461
		for(int i = 0; i < sels.length; i++) {
-
 
462
			id += ","+sels[i].getAsString("id_obs") ;
-
 
463
		}
Line 384... Line 464...
384
		Record[] sels = getSelectionModel().getSelections() ;
464
		
Line 385... Line 465...
385
		String id = sels[0].getAsString("id_obs") ;
465
		id = id.replaceFirst(",", "");
Line 402... Line 482...
402
		
482
		
Line 403... Line 483...
403
	}
483
	}
404
	
484
	
405
	public void redimensionner() {
485
	public void redimensionner() {
-
 
486
		if(getView() != null) {
-
 
487
			
-
 
488
			int taille = 400;
-
 
489
			
-
 
490
			if(Window.getClientHeight() > 800 ) {
406
		if(getView() != null) {
491
				taille = Window.getClientHeight() - 350;
407
				
492
			}
408
				this.setWidth("100%");
493
			setHeight(taille);
409
				getView().setForceFit(true);
494
			getView().setForceFit(true);
410
				doLayout();
495
			doLayout();
411
		}
-
 
-
 
496
		}
412
		else {
497
		else {
413
			Window.alert("null");			
498
 
Line 414... Line 499...
414
		}
499
		}
415
	}
500
	}
Line 443... Line 528...
443
		});
528
		});
Line 444... Line 529...
444
		
529
		
445
		liObs.showAt(e.getXY());
530
		liObs.showAt(e.getXY());
Line 446... Line -...
446
	}
-
 
447
 
531
	}
Line 448... Line 532...
448
	@Override
532
 
449
	public void changerNumeroPage(int pageCourante) {
533
	public void changerNumeroPage(int pageCourante) {
Line 450... Line 534...
450
		
534
		
451
		pageEnCours = pageCourante ;	
535
		pageEnCours = pageCourante ;	
-
 
536
		masquerChargement();
-
 
537
 
-
 
538
		// On lance le chargerment des observations
-
 
539
		iMediateur.obtenirNombreMiniListeObservations(this);
-
 
540
		
-
 
541
	}
-
 
542
	
-
 
543
	/**
-
 
544
	 * Appelle le modèle pour qu'il change la taille de page utilisée
-
 
545
	 * @param nouvelleTaillePage la nouvelle taille de page
-
 
546
	 */
-
 
547
	
-
 
548
	public void changerTaillePage(int nouvelleTaillePage)
-
 
549
	{
-
 
550
	
-
 
551
		taillePage = nouvelleTaillePage ;
-
 
552
		pageEnCours = calculerPageCourante(nbElements) ;
-
 
553
 
Line 452... Line -...
452
		masquerChargement();
-
 
Line -... Line 554...
-
 
554
		masquerChargement();
-
 
555
 
-
 
556
		// On lance le chargerment des observations
-
 
557
		iMediateur.obtenirNombreMiniListeObservations(this);
-
 
558
		
-
 
559
		
-
 
560
		// et on met à jour la taille de page dans les barres d'outils
-
 
561
		pgBar.selectionnerTaillePage(nouvelleTaillePage);
-
 
562
		
-
 
563
		
-
 
564
	}
-
 
565
	
-
 
566
	/**
-
 
567
	 * Met à jour les barre d'outils avec des nouvelles valeurs
-
 
568
	 * @param pageMax le nombre de pages
-
 
569
	 * @param pageEncours la page en cours
-
 
570
	 * @param taillePage la taille de page
-
 
571
	 * @param nbElement le nombre d'élements par page
-
 
572
	 */
-
 
573
	public void changerPageMaxEtCourante(int pageMax, int pageEncours, int taillePage, int nbElement) 
-
 
574
	{
-
 
575
				
-
 
576
		int[] pages = {pageMax,pageEncours, taillePage, nbElement} ;
-
 
577
		pgBar.rafraichir(pages, false) ;
-
 
578
		
-
 
579
	}
-
 
580
	
-
 
581
	/**
-
 
582
	 * Calcule le nombre de pages nécessaires pour afficher un nombre d'élements donnés en fonction de la taille de page
-
 
583
	 * en cours
-
 
584
	 * @param nbElements le nombre d'élements total
-
 
585
	 * @return le nombre de pages 
-
 
586
	 */
-
 
587
	public int calculerNbPages(int nbElements)
-
 
588
	{
-
 
589
		// A cause de la betise de java pour les conversion implicite on fait quelques conversions manuellement
-
 
590
		// pour eviter qu'il arrondisse mal la division
-
 
591
		// nombre de pages = (nombre d'element / taille de la page) arrondie à l'entier superieur
-
 
592
		
453
 
593
		double nPage = (1.0*nbElements)/(1.0*taillePage) ; 
Line -... Line 594...
-
 
594
		double nPageRound = Math.ceil(nPage) ;
-
 
595
		Double nPageInt = new Double(nPageRound) ;
-
 
596
		
-
 
597
		// on convertit en entier
-
 
598
		return nPageInt.intValue() ; 
454
		// On lance le chargerment des observations
599
	}
455
		iMediateur.obtenirMiniListeObservations(this);
600
 
-
 
601
	
-
 
602
	/**
-
 
603
	 * Recalcule la page en cours lors du changement du nombre d'élements
456
		
604
	 * @param nbElements le nombre d'élements total
-
 
605
	 * @return la nouvelle page encours
-
 
606
	 */
-
 
607
	public int calculerPageCourante(int nbElements)
-
 
608
	{
-
 
609
		// on calcule le nombre de page
Line -... Line 610...
-
 
610
		int nouvelNbPages = calculerNbPages(nbElements) ;
-
 
611
		// la nouvelle page en cours
-
 
612
		double nPageCourante = (1.0*pageEnCours)/(1.0*pageMax) * (1.0*nouvelNbPages) ;
-
 
613
		
-
 
614
		// on arrondit au supérieur
-
 
615
		double nPageRound = Math.ceil(nPageCourante) ;
-
 
616
		Double nPageInt = new Double(nPageRound) ;
-
 
617
		
-
 
618
		// on convertit en entier
-
 
619
		return Math.abs(nPageInt.intValue()) ; 
-
 
620
	}
-
 
621
	
-
 
622
	public boolean verifierFormatDate(String date) {
457
		pgBar.changerPageCourante(pageCourante);
623
		
458
		
624
		String regex = "[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}" ;