Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
 
4
import org.tela_botanica.client.image.ImageMediateur;
5
import org.tela_botanica.client.interfaces.Filtrable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
 
8
import com.google.gwt.user.client.ui.Label;
9
import com.gwtext.client.widgets.Panel;
10
import com.gwtext.client.widgets.form.DateField;
11
 
12
/**
13
 * Classe implémentant un filtre qui permet de rechercher une aimge par rapport à la date associée,
14
 * des critères plus fins viendront compléter cela
15
 * @author aurelien
16
 *
17
 */
18
public class DateFiltreVue extends Panel implements Rafraichissable, Filtrable {
19
 
20
	/**
21
	 * Le médiateur associé à la vue
22
	 */
23
	private ImageMediateur iMediateur = null ;
24
 
25
	/**
26
	 * Le widget calendrier
27
	 */
28
	private DateField filtreDate = null ;
29
 
30
	/**
31
	 * Booleen d'état du filtre
32
	 */
33
	private boolean filtreModifie = false ;
34
 
35
	/**
36
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
37
	 */
38
	@SuppressWarnings("unused")
39
	private DateFiltreVue()
40
	{
41
		super() ;
42
	}
43
 
44
	/**
45
	 * Constructeur avec arguments
46
	 * @param im le médiateur à associer
47
	 */
48
	public DateFiltreVue(ImageMediateur im)
49
	{
50
		super() ;
51
		setPaddings(5) ;
52
		setCollapsible(true) ;
53
		setBorder(false) ;
54
		iMediateur = im ;
55
 
56
		Label labelRecherche = new Label("Date :") ;
57
		add(labelRecherche) ;
58
 
59
		// on crée le calendrier et on définit le format de la date "jj/mm/aaaa"
60
		filtreDate = new DateField() ;
61
		filtreDate.setAutoWidth(true) ;
62
		filtreDate.setFormat("d/m/Y") ;
63
 
64
		add(filtreDate);
65
		ajouterListeners() ;
66
	}
67
 
68
	/**
69
	 * Ajoute les listeners
70
	 */
71
	public void ajouterListeners()
72
	{
73
 
74
	}
75
 
76
	/**
77
	 * Méthode héritée de l'interface rafraichissable
78
	 */
79
	public void rafraichir(Object nouvelleDonnees,
80
			boolean repandreRaffraichissement) {
81
 
82
		filtreModifie = false ;
83
 
84
	}
85
 
86
	/**
87
	 * Méthode héritée de l'interface filtrable
88
	 */
89
	public void valider() {
90
 
91
		filtreModifie = true ;
92
 
93
	}
94
 
95
	/**
96
	 * Accesseur pour le médiateur
97
	 * @return le médiateur associé à la vue
98
	 */
99
	@SuppressWarnings("unused")
100
	private ImageMediateur getIMediateur() {
101
 
102
		return iMediateur ;
103
	}
104
 
105
	/**
106
	 * Méthode héritée de l'interface filtrable
107
	 */
108
	public boolean renvoyerEtatFiltre() {
109
 
110
		return filtreModifie  ;
111
	}
112
 
113
	/**
114
	 * Méthode héritée de l'interface filtrable
115
	 */
116
	public String renvoyerNomFiltre() {
117
 
118
		return "Recherche par date" ;
119
	}
120
 
121
	/**
122
	 * Méthode héritée de l'interface filtrable
123
	 */
124
	public String[] renvoyerValeursAFiltrer() {
125
 
126
		// si la date est valide
127
		if(filtreDate.isValid())
128
		{
129
			// on en sépare les composants
130
			String dt = filtreDate.getRawValue() ;
131
			String[] dates = dt.split("/") ;
132
			if(dates.length == 3)
133
			{
134
				// qu'on réassemble dans un autre format (américain) pour la base de donnée "aaaa-mm-jj"
135
				String dateFormatee = dates[2]+"-"+dates[1]+"-"+dates[0] ;
136
				String[] valeursFiltres = {"ci_meta_date" , dateFormatee } ;
137
				return valeursFiltres ;
138
			}
139
		}
140
 
141
		// si la date n'estp as valide on renvoie une chaine vide (ce qui correspond à n'importe qu'elle date)
142
		String dateFormatee = "" ;
143
		String[] valeursFiltres = {"ci_meta_date" , dateFormatee } ;
144
		return valeursFiltres ;
145
 
146
	}
147
 
148
}