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