Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 639 Rev 683
Line 1... Line 1...
1
package org.tela_botanica.client.vues.observation.filtres;
1
package org.tela_botanica.client.vues.observation.filtres;
Line 2... Line 2...
2
 
2
 
3
import java.util.Comparator;
3
import java.util.Comparator;
Line -... Line 4...
-
 
4
import java.util.Iterator;
4
import java.util.Iterator;
5
 
5
 
6
import org.tela_botanica.client.Util;
6
import org.tela_botanica.client.interfaces.Filtrable;
7
import org.tela_botanica.client.interfaces.Filtrable;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.DateObservation;
9
import org.tela_botanica.client.modeles.DateObservation;
Line 153... Line 154...
153
	private void ajouterListeners() {
154
	private void ajouterListeners() {
Line 154... Line 155...
154
		
155
		
Line 155... Line 156...
155
		arbreDonneesDates.addListener(new TreePanelListenerAdapter() {
156
		arbreDonneesDates.addListener(new TreePanelListenerAdapter() {
156
			
-
 
157
			public void onClick(TreeNode node, EventObject e) {
-
 
158
				
-
 
159
				nomFiltre = "" ;
-
 
160
				donneesDateEnCours = "" ;
-
 
161
				String nomPere = "" ;
-
 
162
				String nomGrandPere = "" ;
-
 
163
				
-
 
164
				switch(node.getDepth()) 
-
 
165
				{
-
 
166
					case 0:
-
 
167
						if(!arbreCharge)
-
 
168
						{
-
 
169
						/*	arbreCharge = true ;
-
 
170
							observationMediateur.obtenirDatesObservation() ;*/
-
 
171
							arbreDonneesDates.getRootNode().expand();
-
 
172
						}
-
 
173
						else 
-
 
174
						{
-
 
175
							observationMediateur.obtenirNombreObservation() ;
-
 
176
						}
-
 
177
						return ;
-
 
178
					case 3: nomFiltre += "annee,mois,jour";
-
 
179
						nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
-
 
180
						nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ;
-
 
181
						donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[1] ;
-
 
182
						break;
-
 
183
					case 2: nomFiltre += "annee,mois"; 
-
 
184
						nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
-
 
185
						donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[1] ;
-
 
186
						break;
-
 
187
					case 1: nomFiltre += "annee"; 
-
 
188
						donneesDateEnCours += ((String[])node.getUserObject())[1] ;
-
 
189
						break;
-
 
190
					default: 
-
 
191
						break;
-
 
192
				}
157
			
193
				
-
 
194
				filtreModifie = true ;
-
 
195
				observationMediateur.obtenirNombreObservation() ;
158
			public void onClick(TreeNode node, EventObject e) {
Line 196... Line 159...
196
				
159
				gererClicNoeud(node);
Line 197... Line 160...
197
			}
160
			}
Line 209... Line 172...
209
			}
172
			}
Line 210... Line 173...
210
			
173
			
211
		}) ;
174
		}) ;
Line -... Line 175...
-
 
175
	}
-
 
176
	
-
 
177
	private void gererClicNoeud(TreeNode node) {
-
 
178
		
-
 
179
		mettreAJourValeurEnCours(node);
-
 
180
		observationMediateur.obtenirNombreObservation() ;		
-
 
181
	}
-
 
182
	
-
 
183
	private void mettreAJourValeurEnCours(TreeNode node) {
-
 
184
		
-
 
185
		nomFiltre = "" ;
-
 
186
		donneesDateEnCours = "" ;
-
 
187
		String nomPere = "" ;
-
 
188
		String nomGrandPere = "" ;
-
 
189
		
-
 
190
		switch(node.getDepth()) 
-
 
191
		{
-
 
192
			case 0:
-
 
193
				if(arbreCharge) {
-
 
194
					nomFiltre = "";
-
 
195
					donneesDateEnCours = "";
-
 
196
				}
-
 
197
				break;
-
 
198
			case 3: nomFiltre += "annee,mois,jour";
-
 
199
				nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
-
 
200
				nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ;
-
 
201
				donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[1] ;
-
 
202
				break;
-
 
203
			case 2: nomFiltre += "annee,mois"; 
-
 
204
				nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
-
 
205
				donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[1] ;
-
 
206
				break;
-
 
207
			case 1: nomFiltre += "annee"; 
-
 
208
				donneesDateEnCours += ((String[])node.getUserObject())[1] ;
-
 
209
				break;
-
 
210
			default: 
-
 
211
				break;
-
 
212
		}
-
 
213
		
-
 
214
		filtreModifie = true ;	
212
	}
215
	}
Line 213... Line 216...
213
	
216
	
214
	public void initialiser() {
217
	public void initialiser() {
215
		
218
		
Line 264... Line 267...
264
				
267
				
Line 265... Line 268...
265
				DateObservation ent=(DateObservation) data.get(it.next());
268
				DateObservation ent=(DateObservation) data.get(it.next());
266
				
269
				
267
				annee= ent.getAnnee() ;
270
				annee= ent.getAnnee() ;
268
				mois= ent.getMois() ;
271
				mois= ent.getMois() ;
Line 269... Line 272...
269
				String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
272
				String moisLettre = Util.renvoyerMois(Integer.parseInt(mois)) ;
270
				jour= ent.getJour() ;
273
				jour= ent.getJour() ;
271
				
274
				
Line 393... Line 396...
393
			
396
			
394
			String annee= dateSpl[2];
397
			String annee= dateSpl[2];
395
			String mois= dateSpl[1];
398
			String mois= dateSpl[1];
Line 396... Line 399...
396
			String jour= dateSpl[0];
399
			String jour= dateSpl[0];
Line 397... Line 400...
397
			
400
			
Line 398... Line 401...
398
			String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
401
			String moisLettre = Util.renvoyerMois(Integer.parseInt(mois)) ;
399
			
402
			
Line 573... Line 576...
573
				return n1.compareTo(n2) ;
576
				return n1.compareTo(n2) ;
574
			}
577
			}
Line 575... Line 578...
575
			
578
			
576
		} ;
579
		} ;
577
	}
-
 
578
	
-
 
579
	public String renvoyerMois(int numMois) {
-
 
580
		
-
 
581
		switch (numMois) {
-
 
582
		case 1:
-
 
583
			return "janvier" ;
-
 
584
		case 2:
-
 
585
			return "fevrier" ;
-
 
586
		case 3:
-
 
587
			return "mars" ;
-
 
588
		case 4:
-
 
589
			return "avril" ;
-
 
590
		case 5:
-
 
591
			return "mai" ;
-
 
592
		case 6:
-
 
593
			return "juin" ;
-
 
594
		case 7:
-
 
595
			return "juillet" ;
-
 
596
		case 8:
-
 
597
			return "août" ;
-
 
598
		case 9:
-
 
599
			return "septembre" ;
-
 
600
		case 10:
-
 
601
			return "octobre" ;
-
 
602
		case 11:
-
 
603
			return "novembre" ;
-
 
604
		case 12:
-
 
605
			return "décembre" ;
-
 
606
		default:
-
 
607
			return "Inconnue" ;
-
 
608
		}
-
 
609
		
-
 
Line 610... Line 580...
610
	}
580
	}
Line 611... Line 581...
611
 
581
 
612
	public void raz() {
582
	public void raz() {
Line 638... Line 608...
638
		
608
		
Line 639... Line 609...
639
		donneesDateEnCours = "";
609
		donneesDateEnCours = "";
Line -... Line 610...
-
 
610
		
-
 
611
	}
-
 
612
 
-
 
613
	public void viderFiltre() {
-
 
614
		arbreDonneesDates.getSelectionModel().clearSelections();
-
 
615
		donneesDateEnCours = "";		
-
 
616
	}
-
 
617
 
-
 
618
	public void viderFiltre(String nom) {
-
 
619
		
-
 
620
		final int profondeur = calculerProfondeurPourNomFiltre(nom);
-
 
621
		
-
 
622
		// on vide tous les noeuds
-
 
623
		arbreDonneesDates.getRootNode().cascade(new NodeTraversalCallback() {
-
 
624
 
-
 
625
			public boolean execute(Node node) {
-
 
626
				
-
 
627
				boolean continuer = true;
-
 
628
				
-
 
629
				TreeNode noeudArbreEncours = (TreeNode)node;
-
 
630
				
-
 
631
				if(arbreDonneesDates.getSelectionModel().isSelected(noeudArbreEncours)) {
-
 
632
					
-
 
633
					int profondeurDepart = noeudArbreEncours.getDepth();
-
 
634
					
-
 
635
					for(int profondeurNoeudArbreEncours = profondeurDepart; profondeurNoeudArbreEncours >= profondeur; profondeurNoeudArbreEncours--) {
-
 
636
						noeudArbreEncours = (TreeNode)noeudArbreEncours.getParentNode();
-
 
637
					}
-
 
638
					
-
 
639
					arbreDonneesDates.getSelectionModel().select(noeudArbreEncours); 
-
 
640
					mettreAJourValeurEnCours(noeudArbreEncours);
-
 
641
					
-
 
642
					continuer = false;
-
 
643
				}
Line -... Line 644...
-
 
644
				
-
 
645
				return continuer;
-
 
646
			}
-
 
647
 
-
 
648
		});
-
 
649
	}
-
 
650
	
-
 
651
	private int calculerProfondeurPourNomFiltre(String nom) {
-
 
652
		
-
 
653
		int profondeur = 0;
-
 
654
		
-
 
655
		if(nom.equals("annee")) {
-
 
656
			profondeur = 1;
-
 
657
		}
-
 
658
		
-
 
659
		if(nom.equals("mois")) {
-
 
660
			profondeur = 2;
-
 
661
		}
-
 
662
		
-
 
663
		if(nom.equals("jour")) {
-
 
664
			profondeur = 3;
640
		
665
		}