Subversion Repositories eFlore/Applications.cel

Rev

Rev 965 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 965 Rev 1292
1
package org.tela_botanica.client.vues.image.filtres;
1
package org.tela_botanica.client.vues.image.filtres;
2
 
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
4
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
5
import org.tela_botanica.client.vues.observation.filtres.ArbreDateObservationFiltreVue;
-
 
6
 
-
 
7
import com.google.gwt.core.client.GWT;
-
 
8
import com.google.gwt.core.client.JavaScriptObject;
-
 
9
import com.google.gwt.user.client.Window;
-
 
10
import com.gwtext.client.core.EventObject;
-
 
11
import com.gwtext.client.core.Ext;
5
import com.gwtext.client.core.Ext;
12
import com.gwtext.client.widgets.BoxComponent;
-
 
13
import com.gwtext.client.widgets.Button;
6
import com.gwtext.client.widgets.Button;
14
import com.gwtext.client.widgets.Component;
7
import com.gwtext.client.widgets.Component;
15
import com.gwtext.client.widgets.Container;
-
 
16
import com.gwtext.client.widgets.Panel;
8
import com.gwtext.client.widgets.Panel;
17
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-
 
18
import com.gwtext.client.widgets.event.ContainerListener;
-
 
19
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
9
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
20
import com.gwtext.client.widgets.layout.RowLayout;
10
import com.gwtext.client.widgets.layout.RowLayout;
21
import com.gwtext.client.widgets.layout.RowLayoutData;
11
import com.gwtext.client.widgets.layout.RowLayoutData;
22
import com.gwtext.client.widgets.layout.VerticalLayout;
-
 
23
 
12
 
24
/**
13
/**
25
 * Panneau contenant les filtres qu'on peut appliquer aux images
14
 * Panneau contenant les filtres qu'on peut appliquer aux images
26
 * 
15
 * 
27
 * @author aurelien
16
 * @author aurelien
28
 * 
17
 * 
29
 */
18
 */
30
public class PanneauFiltresImagesVues extends Panel {
19
public class PanneauFiltresImagesVues extends Panel {
31
 
20
 
32
	/**
21
	/**
33
	 * Le médiateur associé
22
	 * Le médiateur associé
34
	 */
23
	 */
35
	private ImageMediateur iMediateur = null;
24
	private ImageMediateur iMediateur = null;
36
 
25
 
37
	/**
26
	/**
38
	 * L'arbre pour la recherche par mots clés
27
	 * L'arbre pour la recherche par mots clés
39
	 */
28
	 */
40
	private ArbreMotsClesFiltreVue motsClesFiltres = null;
29
	private ArbreMotsClesFiltreVue motsClesFiltres = null;
41
	
30
	
42
	/**
31
	/**
43
	 * L'arbre pour la recherche par mots clés
32
	 * L'arbre pour la recherche par mots clés
44
	 */
33
	 */
45
	private ArbreDateImageFiltreVue arbreDateImageFiltreVue = null;
34
	private ArbreDateImageFiltreVue arbreDateImageFiltreVue = null;
46
	
35
	
47
	/**
36
	/**
48
	 * La barre de recherche libre
37
	 * La barre de recherche libre
49
	 */
38
	 */
50
	private BarreRechercheFiltreVue rechercheLibreFiltreVue = null;
39
	private BarreRechercheFiltreVue rechercheLibreFiltreVue = null;
51
 
40
 
52
	/**
41
	/**
53
	 * Recherche par contenu du tampon
42
	 * Recherche par contenu du tampon
54
	 */
43
	 */
55
	private SelectionFiltreVue selectionFiltreVue = null;
44
	private SelectionFiltreVue selectionFiltreVue = null;
56
 
45
 
57
	/**
46
	/**
58
	 * Bouton de validation
47
	 * Bouton de validation
59
	 */
48
	 */
60
	private Button valider = null;
49
	private Button valider = null;
61
 
50
 
62
	/**
51
	/**
63
	 * Construcuteur sans argument (privé car on ne doit pas l'utiliser)
52
	 * Construcuteur sans argument (privé car on ne doit pas l'utiliser)
64
	 */
53
	 */
65
	@SuppressWarnings("unused")
54
	@SuppressWarnings("unused")
66
	private PanneauFiltresImagesVues() {
55
	private PanneauFiltresImagesVues() {
67
		super();
56
		super();
68
	}
57
	}
69
 
58
 
70
	/**
59
	/**
71
	 * Constructeur avec arguments
60
	 * Constructeur avec arguments
72
	 * 
61
	 * 
73
	 * @param im
62
	 * @param im
74
	 *            le médiateur à associer
63
	 *            le médiateur à associer
75
	 */
64
	 */
76
	public PanneauFiltresImagesVues(ImageMediateur im) {
65
	public PanneauFiltresImagesVues(ImageMediateur im) {
77
		
66
		
78
		super("Filtres");
67
		super("Filtres");
79
		iMediateur = im;
68
		iMediateur = im;
80
		
69
		
81
		this.setCollapsible(true);
70
		this.setCollapsible(true);
82
		setLayout(new RowLayout());
71
		setLayout(new RowLayout());
83
 
72
 
84
		rechercheLibreFiltreVue = new BarreRechercheFiltreVue(im);
73
		rechercheLibreFiltreVue = new BarreRechercheFiltreVue(im);
85
		rechercheLibreFiltreVue.setTitle("Recherche libre");
74
		rechercheLibreFiltreVue.setTitle("Recherche libre");
86
		rechercheLibreFiltreVue.setCollapsible(true);
75
		rechercheLibreFiltreVue.setCollapsible(true);
87
		add(rechercheLibreFiltreVue, new RowLayoutData());
76
		add(rechercheLibreFiltreVue, new RowLayoutData());
88
		
77
		
89
		if(Ext.isIE()) {
78
		if(Ext.isIE()) {
90
			add(rechercheLibreFiltreVue);
79
			add(rechercheLibreFiltreVue);
91
			rechercheLibreFiltreVue.setHeight(110);
80
			rechercheLibreFiltreVue.setHeight(110);
92
		} else {
81
		} else {
93
			add(rechercheLibreFiltreVue,new RowLayoutData(100));
82
			add(rechercheLibreFiltreVue,new RowLayoutData(100));
94
		}
83
		}
95
 
84
 
96
		arbreDateImageFiltreVue = new ArbreDateImageFiltreVue(im) ;
85
		arbreDateImageFiltreVue = new ArbreDateImageFiltreVue(im) ;
97
		arbreDateImageFiltreVue.setWidth("100%") ;
86
		arbreDateImageFiltreVue.setWidth("100%") ;
98
		arbreDateImageFiltreVue.setBorder(false);
87
		arbreDateImageFiltreVue.setBorder(false);
99
		add(arbreDateImageFiltreVue, new RowLayoutData());
88
		add(arbreDateImageFiltreVue, new RowLayoutData());
100
 
89
 
101
		motsClesFiltres = new ArbreMotsClesFiltreVue(im);
90
		motsClesFiltres = new ArbreMotsClesFiltreVue(im);
102
		motsClesFiltres.setTitle("Mots clés");
91
		motsClesFiltres.setTitle("Mots clés");
103
		motsClesFiltres.setAutoScroll(true);
92
		motsClesFiltres.setAutoScroll(true);
104
		add(motsClesFiltres, new RowLayoutData());
93
		add(motsClesFiltres, new RowLayoutData());
105
 
94
 
106
		selectionFiltreVue = new SelectionFiltreVue(im);
95
		selectionFiltreVue = new SelectionFiltreVue(im);
107
		
96
		
108
		addListener(new ContainerListenerAdapter() {
97
		addListener(new ContainerListenerAdapter() {
-
 
98
 
109
 
99
			@Override
110
			public void onRender(Component component) {
100
			public void onRender(Component component) {
111
				// TODO Auto-generated method stub
101
				// TODO Auto-generated method stub
112
 
102
 
113
				rechercheLibreFiltreVue.ajouterListeners();
103
				rechercheLibreFiltreVue.ajouterListeners();
114
				arbreDateImageFiltreVue.ajouterListeners();
104
				arbreDateImageFiltreVue.ajouterListeners();
115
			}
105
			}
116
		});
106
		});
117
	}
107
	}
118
 
108
 
119
	/**
109
	/**
120
	 * Accesseur pour le filtre des mots clés
110
	 * Accesseur pour le filtre des mots clés
121
	 * 
111
	 * 
122
	 * @return le filtre des mots clés
112
	 * @return le filtre des mots clés
123
	 */
113
	 */
124
	public ArbreMotsClesFiltreVue getMotsClesFiltre() {
114
	public ArbreMotsClesFiltreVue getMotsClesFiltre() {
125
		return motsClesFiltres;
115
		return motsClesFiltres;
126
	}
116
	}
127
 
117
 
128
	/**
118
	/**
129
	 * Accesseur pour le filtre général
119
	 * Accesseur pour le filtre général
130
	 * 
120
	 * 
131
	 * @return le filtre général
121
	 * @return le filtre général
132
	 */
122
	 */
133
	public BarreRechercheFiltreVue getBarreRecherche() {
123
	public BarreRechercheFiltreVue getBarreRecherche() {
134
		return rechercheLibreFiltreVue;
124
		return rechercheLibreFiltreVue;
135
	}
125
	}
136
	
126
	
137
	/**
127
	/**
138
	 * Accesseur pour le filtre des dates
128
	 * Accesseur pour le filtre des dates
139
	 * 
129
	 * 
140
	 * @return le filtre des dates
130
	 * @return le filtre des dates
141
	 */
131
	 */
142
	public ArbreDateImageFiltreVue getArbreDateRecherche() {
132
	public ArbreDateImageFiltreVue getArbreDateRecherche() {
143
		return arbreDateImageFiltreVue;
133
		return arbreDateImageFiltreVue;
144
	}
134
	}
145
 
135
 
146
	/**
136
	/**
147
	 * Renvoie un booléen indiquant si un des filtres a été modifié
137
	 * Renvoie un booléen indiquant si un des filtres a été modifié
148
	 * 
138
	 * 
149
	 * @return true sur un des filtres est modifié, false sinon
139
	 * @return true sur un des filtres est modifié, false sinon
150
	 */
140
	 */
151
	public boolean renvoyerEtatFiltre() {
141
	public boolean renvoyerEtatFiltre() {
152
 
142
 
153
		return (motsClesFiltres.renvoyerEtatFiltre()
143
		return (motsClesFiltres.renvoyerEtatFiltre()
154
				|| rechercheLibreFiltreVue.renvoyerEtatFiltre()
144
				|| rechercheLibreFiltreVue.renvoyerEtatFiltre()
155
				|| arbreDateImageFiltreVue.renvoyerEtatFiltre() 
145
				|| arbreDateImageFiltreVue.renvoyerEtatFiltre() 
156
				|| selectionFiltreVue.renvoyerEtatFiltre());
146
				|| selectionFiltreVue.renvoyerEtatFiltre());
157
	}
147
	}
158
 
148
 
159
	/**
149
	/**
160
	 * Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre",
150
	 * Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre",
161
	 * "valeur"
151
	 * "valeur"
162
	 * 
152
	 * 
163
	 * @return un tableau contenant les noms et les valeurs à filtrer
153
	 * @return un tableau contenant les noms et les valeurs à filtrer
164
	 */
154
	 */
165
	public String[][] renvoyerValeursAFiltrer() {
155
	public String[][] renvoyerValeursAFiltrer() {
166
		
156
		
167
		String[] filtresDates = arbreDateImageFiltreVue.renvoyerValeursAFiltrer();
157
		String[] filtresDates = arbreDateImageFiltreVue.renvoyerValeursAFiltrer();
168
		
158
		
169
		int lgSup = 0;
159
		int lgSup = 0;
170
		
160
		
171
		if(filtresDates.length > 0) {
161
		if(filtresDates.length > 0) {
172
			String[] nomFiltresDates = filtresDates[0].split(",");
162
			String[] nomFiltresDates = filtresDates[0].split(",");
173
			String[] valFiltresDates = filtresDates[1].split(",");
163
			String[] valFiltresDates = filtresDates[1].split(",");
174
			lgSup = Math.max(nomFiltresDates.length, valFiltresDates.length);
164
			lgSup = Math.max(nomFiltresDates.length, valFiltresDates.length);
175
		}
165
		}
176
		
166
		
177
		String[][] filtres = new String[3 + lgSup][2];
167
		String[][] filtres = new String[3 + lgSup][2];
178
		
168
		
179
		for(int i=3; i < filtres.length; i++) {
169
		for(int i=3; i < filtres.length; i++) {
180
			filtres[i][0] = filtresDates[0].split(",")[i - 3];
170
			filtres[i][0] = filtresDates[0].split(",")[i - 3];
181
			filtres[i][1] = filtresDates[1].split(",")[i -3];
171
			filtres[i][1] = filtresDates[1].split(",")[i -3];
182
		}
172
		}
183
		
173
		
184
		filtres[0] = motsClesFiltres.renvoyerValeursAFiltrer();
174
		filtres[0] = motsClesFiltres.renvoyerValeursAFiltrer();
185
		filtres[1] = rechercheLibreFiltreVue.renvoyerValeursAFiltrer();
175
		filtres[1] = rechercheLibreFiltreVue.renvoyerValeursAFiltrer();
186
		filtres[2] = selectionFiltreVue.renvoyerValeursAFiltrer();
176
		filtres[2] = selectionFiltreVue.renvoyerValeursAFiltrer();
187
		
177
		
188
		return filtres;
178
		return filtres;
189
	}
179
	}
190
 
180
 
191
	public void viderFiltres() {
181
	public void viderFiltres() {
192
		motsClesFiltres.viderFiltre();
182
		motsClesFiltres.viderFiltre();
193
		rechercheLibreFiltreVue.viderFiltre();
183
		rechercheLibreFiltreVue.viderFiltre();
194
		arbreDateImageFiltreVue.viderFiltre();
184
		arbreDateImageFiltreVue.viderFiltre();
195
		selectionFiltreVue.viderFiltre();
185
		selectionFiltreVue.viderFiltre();
196
	}
186
	}
197
 
187
 
198
	public void viderFiltre(String nom) {
188
	public void viderFiltre(String nom) {
199
		
189
		
200
		if(nom.equals("id_mots_cles")) {
190
		if(nom.equals("id_mots_cles")) {
201
			motsClesFiltres.viderFiltre();
191
			motsClesFiltres.viderFiltre();
202
		}
192
		}
203
		
193
		
204
		if(nom.equals("recherche")) {
194
		if(nom.equals("recherche")) {
205
			rechercheLibreFiltreVue.viderFiltre();
195
			rechercheLibreFiltreVue.viderFiltre();
206
		}
196
		}
207
		
197
		
208
		if(nom.equals("annee") || nom.equals("mois") || nom.equals("jour")) {
198
		if(nom.equals("annee") || nom.equals("mois") || nom.equals("jour")) {
209
			arbreDateImageFiltreVue.viderFiltre(nom);
199
			arbreDateImageFiltreVue.viderFiltre(nom);
210
		}
200
		}
211
		
201
		
212
		if(nom.equals("ci_id_tampon")) {
202
		if(nom.equals("ci_id_tampon")) {
213
			selectionFiltreVue.viderFiltre();
203
			selectionFiltreVue.viderFiltre();
214
		}
204
		}
215
		
205
		
216
	}
206
	}
217
 
207
 
218
}
208
}