Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 684 Rev 706
1
package org.tela_botanica.client.vues.image;
1
package org.tela_botanica.client.vues.image;
2
 
2
 
3
import org.tela_botanica.client.Util;
3
import org.tela_botanica.client.Util;
4
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.image.ImageMediateur;
5
import org.tela_botanica.client.vues.MenuAideVue;
5
import org.tela_botanica.client.vues.MenuAideVue;
6
import org.tela_botanica.client.vues.image.filtres.MenuFiltreVue;
-
 
7
 
6
 
8
import com.google.gwt.dev.util.collect.HashMap;
7
import com.google.gwt.dev.util.collect.HashMap;
9
import com.google.gwt.user.client.Window;
8
import com.google.gwt.user.client.Window;
10
import com.gwtext.client.core.EventCallback;
9
import com.gwtext.client.core.EventCallback;
11
import com.gwtext.client.core.EventObject;
10
import com.gwtext.client.core.EventObject;
12
import com.gwtext.client.core.Ext;
11
import com.gwtext.client.core.Ext;
13
import com.gwtext.client.widgets.Toolbar;
12
import com.gwtext.client.widgets.Toolbar;
-
 
13
import com.gwtext.client.widgets.ToolbarButton;
14
import com.gwtext.client.widgets.ToolbarItem;
14
import com.gwtext.client.widgets.ToolbarItem;
15
import com.gwtext.client.widgets.ToolbarMenuButton;
15
import com.gwtext.client.widgets.ToolbarMenuButton;
16
import com.gwtext.client.widgets.ToolbarTextItem;
16
import com.gwtext.client.widgets.ToolbarTextItem;
17
 
17
 
18
/**
18
/**
19
 * Barre d'outils contenant le menu de gestion des images (accessible aussi par
19
 * Barre d'outils contenant le menu de gestion des images (accessible aussi par
20
 * un clic droit dans la galerie) et d'autres menus et boutons utiles
20
 * un clic droit dans la galerie) et d'autres menus et boutons utiles
21
 * 
21
 * 
22
 * @author aurelien
22
 * @author aurelien
23
 * 
23
 * 
24
 */
24
 */
25
public class BarreOutilsVue extends Toolbar {
25
public class BarreOutilsVue extends Toolbar {
26
 
26
 
27
	/**
27
	/**
28
	 * Un bouton qui sert à déployer le menu
28
	 * Un bouton qui sert à déployer le menu
29
	 */
29
	 */
30
	ToolbarMenuButton images = null;
30
	ToolbarMenuButton images = null;
31
	/**
31
	/**
32
	 * Un bouton qui sert à déployer le menu
32
	 * Un bouton qui sert à déployer le menu
33
	 */
33
	 */
34
	ToolbarMenuButton utilisateur = null;
34
	ToolbarMenuButton utilisateur = null;
35
	
35
	
36
	/**
36
	/**
37
	 * Bouton pour déployer le menu d'aide
37
	 * Bouton pour déployer le menu d'aide
38
	 */
38
	 */
39
	ToolbarMenuButton aide = null ;
39
	ToolbarMenuButton aide = null ;
40
 
40
 
41
	/**
41
	/**
42
	 * Le médiateur associé à la toolbar
42
	 * Le médiateur associé à la toolbar
43
	 */
43
	 */
44
	ImageMediateur iMediateur = null;
44
	ImageMediateur iMediateur = null;
45
	/**
45
	/**
46
	 * Le menu de gestion des images
46
	 * Le menu de gestion des images
47
	 */
47
	 */
48
	MenuImageVue imageMenu = null;
48
	MenuImageVue imageMenu = null;
49
 
49
 
50
	/**
50
	/**
51
	 * Le menu de gestion des filtres
51
	 * Le menu de gestion des filtres
52
	 */
52
	 */
53
	MenuFiltreVue filtreMenu = null;
53
	OptionsImages imageMenuEtendu = null;
54
	
54
	
55
	/**
55
	/**
56
	 * L'item affichant les filtres en cours
56
	 * L'item affichant les filtres en cours
57
	 */
57
	 */
58
	ToolbarTextItem texteFiltres;
58
	ToolbarTextItem texteFiltres;
59
 
59
 
60
	/**
60
	/**
61
	 * Le menu de gestion utilisateur
61
	 * Le menu de gestion utilisateur
62
	 */
62
	 */
63
	MenuIdVue idMenu = null;
63
	MenuIdVue idMenu = null;
64
	
64
	
65
	/**
65
	/**
66
	 * Menu de gestion d'aide
66
	 * Menu de gestion d'aide
67
	 */
67
	 */
68
	MenuAideVue aideMenu = null ;
68
	MenuAideVue aideMenu = null ;
69
 
69
 
70
	/**
70
	/**
71
	 * Constructeur sans argument (ne doit pas être utilisé donc privé)
71
	 * Constructeur sans argument (ne doit pas être utilisé donc privé)
72
	 */
72
	 */
73
	@SuppressWarnings("unused")
73
	@SuppressWarnings("unused")
74
	private BarreOutilsVue() {
74
	private BarreOutilsVue() {
75
		super();
75
		super();
76
	}
76
	}
77
 
77
 
78
	/**
78
	/**
79
	 * Constructeur avec paramètres
79
	 * Constructeur avec paramètres
80
	 * 
80
	 * 
81
	 * @param im
81
	 * @param im
82
	 *            le médiateur à associer à la vue
82
	 *            le médiateur à associer à la vue
83
	 */
83
	 */
84
	public BarreOutilsVue(ImageMediateur im) {
84
	public BarreOutilsVue(ImageMediateur im) {
85
 
85
 
86
		super();
86
		super();
87
 
87
 
88
		iMediateur = im;
88
		iMediateur = im;
89
 
89
 
90
		imageMenu = new MenuImageVue(im);
90
		imageMenu = new MenuImageVue(im);
91
		filtreMenu = new MenuFiltreVue(im);
91
		imageMenuEtendu = new OptionsImages(im);
92
		//aideMenu = new MenuAideVue(im);
92
		//aideMenu = new MenuAideVue(im);
93
		images = new ToolbarMenuButton("Fichiers", imageMenu);
93
		//images = new ToolbarMenuButton("Fichiers", imageMenu);
94
		//aide = new ToolbarMenuButton("Aide", aideMenu);
94
		//aide = new ToolbarMenuButton("Aide", aideMenu);
95
		
95
		
96
		texteFiltres = new ToolbarTextItem("");
96
		texteFiltres = new ToolbarTextItem("");
-
 
97
		
-
 
98
		ToolbarMenuButton menuImage = new ToolbarMenuButton("Ajouter des images", imageMenuEtendu.getMenuImage());
-
 
99
		ToolbarButton menuSuppression = imageMenuEtendu.getBoutonSuppression();
-
 
100
		ToolbarMenuButton menuTampon = new ToolbarMenuButton("Tampon", imageMenuEtendu.getMenuTampon());
97
		
101
		
-
 
102
		this.addButton(menuImage);
-
 
103
		this.addButton(menuSuppression);
98
		this.addButton(images);
104
		this.addButton(menuTampon);
99
		
105
		
100
		this.addItem(texteFiltres);
106
		this.addItem(texteFiltres);
101
		//this.addButton(aide);
107
		//this.addButton(aide);
102
	}
108
	}
103
 
109
 
104
	/**
110
	/**
105
	 * @return the images
111
	 * @return the images
106
	 */
112
	 */
107
	public ToolbarMenuButton getImages() {
113
	public ToolbarMenuButton getImages() {
108
		return images;
114
		return images;
109
	}
115
	}
110
 
116
 
111
	/**
117
	/**
112
	 * @return the iMediateur
118
	 * @return the iMediateur
113
	 */
119
	 */
114
	public ImageMediateur getIMediateur() {
120
	public ImageMediateur getIMediateur() {
115
		return iMediateur;
121
		return iMediateur;
116
	}
122
	}
117
	
123
	
118
	public void setFiltresEnCours(String[][] filtresEnCours) {
124
	public void setFiltresEnCours(String[][] filtresEnCours) {
119
		
125
		
120
		String texteFiltresEnCours = "";
126
		String texteFiltresEnCours = "";
121
		
127
		
122
		for(int i = 0; i < filtresEnCours.length; i++) {
128
		for(int i = 0; i < filtresEnCours.length; i++) {
123
			if(Util.filtreValide(filtresEnCours[i])) {
129
			if(Util.filtreValide(filtresEnCours[i])) {
124
				
130
				
125
				if(!texteFiltresEnCours.equals("")) {
131
				if(!texteFiltresEnCours.equals("")) {
126
					texteFiltresEnCours += " - ";
132
					texteFiltresEnCours += " - ";
127
				}
133
				}
128
				
134
				
129
				texteFiltresEnCours += "<span class=\"affichage_filtre\">"+
135
				texteFiltresEnCours += "<span class=\"affichage_filtre\">"+
130
											transformerNomFiltre(filtresEnCours[i][0])+": "+transformerValeurFiltre(filtresEnCours[i][0], filtresEnCours[i][1])+
136
											transformerNomFiltre(filtresEnCours[i][0])+": "+transformerValeurFiltre(filtresEnCours[i][0], filtresEnCours[i][1])+
131
									   " <input value=\"X\" type=\"button\" rel=\""+filtresEnCours[i][0]+"\" id=\"bouton_raz_filtres_img"+filtresEnCours[i][0]+"\" />"+
137
									   " <input value=\"X\" type=\"button\" rel=\""+filtresEnCours[i][0]+"\" id=\"bouton_raz_filtres_img"+filtresEnCours[i][0]+"\" />"+
132
										"</span>";
138
										"</span>";
133
			}
139
			}
134
		}
140
		}
135
		
141
		
136
		if(!texteFiltresEnCours.equals("")) {
142
		if(!texteFiltresEnCours.equals("")) {
137
			texteFiltresEnCours = "- <span class=\"indicateur_filtres\"> Filtres - "+texteFiltresEnCours+"</span>";
143
			texteFiltresEnCours = "- <span class=\"indicateur_filtres\"> Filtres - "+texteFiltresEnCours+"</span>";
138
		}
144
		}
139
		
145
		
140
		texteFiltres.setText(texteFiltresEnCours);
146
		texteFiltres.setText(texteFiltresEnCours);
141
		
147
		
142
		for(int i = 0; i < filtresEnCours.length; i++) {
148
		for(int i = 0; i < filtresEnCours.length; i++) {
143
			
149
			
144
			if(Util.filtreValide(filtresEnCours[i])) {
150
			if(Util.filtreValide(filtresEnCours[i])) {
145
				if(Ext.get("bouton_raz_filtres_img"+filtresEnCours[i][0]) != null) {
151
				if(Ext.get("bouton_raz_filtres_img"+filtresEnCours[i][0]) != null) {
146
					
152
					
147
					Ext.get("bouton_raz_filtres_img"+filtresEnCours[i][0]).addListener("click", new EventCallback() {
153
					Ext.get("bouton_raz_filtres_img"+filtresEnCours[i][0]).addListener("click", new EventCallback() {
148
						
154
						
149
						public void execute(EventObject e) {
155
						public void execute(EventObject e) {
150
							e.stopEvent();
156
							e.stopEvent();
151
							iMediateur.viderFiltre(e.getTarget().getAttribute("rel"));
157
							iMediateur.viderFiltre(e.getTarget().getAttribute("rel"));
152
						}
158
						}
153
						
159
						
154
					});
160
					});
155
				}
161
				}
156
			}
162
			}
157
		}
163
		}
158
	}
164
	}
159
	
165
	
160
	private String transformerNomFiltre(String nomFiltre) {
166
	private String transformerNomFiltre(String nomFiltre) {
161
				
167
				
162
		//TODO: si le nombre de filtre s'agrandit faire une hashmap
168
		//TODO: si le nombre de filtre s'agrandit faire une hashmap
163
		// (pas la peine pour le moment, un seul nom à changer)
169
		// (pas la peine pour le moment, un seul nom à changer)
164
		if(nomFiltre.equals("ci_recherche_generale")) {
170
		if(nomFiltre.equals("ci_recherche_generale")) {
165
			nomFiltre = "recherche";
171
			nomFiltre = "recherche";
166
		}
172
		}
167
		
173
		
168
		//TODO: si le nombre de filtre s'agrandit faire une hashmap
174
		//TODO: si le nombre de filtre s'agrandit faire une hashmap
169
		// (pas la peine pour le moment, un seul nom à changer)
175
		// (pas la peine pour le moment, un seul nom à changer)
170
		if(nomFiltre.equals("ci_meta_mots_cles")) {
176
		if(nomFiltre.equals("ci_meta_mots_cles")) {
171
			nomFiltre = "mots clés";
177
			nomFiltre = "mots clés";
172
		}
178
		}
173
		
179
		
174
		return nomFiltre;
180
		return nomFiltre;
175
		
181
		
176
	}
182
	}
177
	
183
	
178
	private String transformerValeurFiltre(String nomFiltre, String valeurFiltre) {
184
	private String transformerValeurFiltre(String nomFiltre, String valeurFiltre) {
179
		
185
		
180
		String valeurFiltreTransformee = valeurFiltre;
186
		String valeurFiltreTransformee = valeurFiltre;
181
		
187
		
182
		if(nomFiltre.equals("ci_meta_mots_cles")) {
188
		if(nomFiltre.equals("ci_meta_mots_cles")) {
183
			
189
			
184
			String[] tabMotsCles = valeurFiltre.split(";");
190
			String[] tabMotsCles = valeurFiltre.split(";");
185
			String[] tabMotsClesTexte = iMediateur.obtenirTexteMotsCles(tabMotsCles);
191
			String[] tabMotsClesTexte = iMediateur.obtenirTexteMotsCles(tabMotsCles);
186
			
192
			
187
			if(tabMotsClesTexte.length > 1) {
193
			if(tabMotsClesTexte.length > 1) {
188
				valeurFiltreTransformee = Util.implode(",", tabMotsClesTexte);
194
				valeurFiltreTransformee = Util.implode(",", tabMotsClesTexte);
189
			} else {
195
			} else {
190
				valeurFiltreTransformee = tabMotsClesTexte[0];
196
				valeurFiltreTransformee = tabMotsClesTexte[0];
191
			}
197
			}
192
		}
198
		}
193
		
199
		
194
		if(nomFiltre.equals("mois")) {
200
		if(nomFiltre.equals("mois")) {
195
			valeurFiltreTransformee = Util.renvoyerMois(Integer.parseInt(valeurFiltre));
201
			valeurFiltreTransformee = Util.renvoyerMois(Integer.parseInt(valeurFiltre));
196
		}
202
		}
197
 
203
 
198
		return valeurFiltreTransformee;
204
		return valeurFiltreTransformee;
199
		
205
		
200
	}
206
	}
201
 
207
 
202
}
208
}