Subversion Repositories eFlore/Applications.cel

Rev

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

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