Subversion Repositories eFlore/Applications.cel

Rev

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

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