Subversion Repositories eFlore/Applications.cel

Rev

Rev 706 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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