Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev Author Line No. Line
12 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
47 aperonnet 4
 
12 aperonnet 5
import com.gwtext.client.core.EventObject;
6
import com.gwtext.client.widgets.menu.BaseItem;
7
import com.gwtext.client.widgets.menu.Item;
8
import com.gwtext.client.widgets.menu.Menu;
36 aperonnet 9
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
12 aperonnet 10
 
36 aperonnet 11
/**
12
 * Menu de gestion des images
13
 * @author aurelien
14
 *
15
 */
12 aperonnet 16
public class MenuImageVue extends Menu {
17
 
36 aperonnet 18
	/**
19
	 * Le médiateur associé à la vue
20
	 */
12 aperonnet 21
	private ImageMediateur iMediateur ;
22
 
36 aperonnet 23
	/**
24
	 * Item pour l'upload
25
	 */
12 aperonnet 26
	private Item uploaderImage = null ;
36 aperonnet 27
	/**
28
	 * Item pour la suppression
29
	 */
12 aperonnet 30
	private Item supprimerImage = null ;
31
 
43 aperonnet 32
	/**
33
	 * Item pour la recherche par mots clés
34
	 */
38 aperonnet 35
	private Item chercherImage = null ;
36
 
36 aperonnet 37
	/**
43 aperonnet 38
	 * Item pour la recherche sur les commentaires
39
	 */
40
	private Item chercherCommentaire = null ;
41
 
42
	/**
36 aperonnet 43
	 * Constructeur sans argument (privé car ne doit être utilisé)
44
	 */
45
	private MenuImageVue()
46
	{
47
		super();
48
	}
49
 
50
	/**
51
	 * Constructeur avec paramètre
52
	 * @param im le médiateur à associer
53
	 */
12 aperonnet 54
	public MenuImageVue(ImageMediateur im)
55
	{
56
		super() ;
57
 
58
		iMediateur = im ;
59
 
36 aperonnet 60
		// on construit le menu
12 aperonnet 61
		uploaderImage = new Item("Uploader des images") ;
22 aperonnet 62
		supprimerImage = new Item("Supprimer les images selectionnées") ;
43 aperonnet 63
		chercherImage = new Item("Filtrer par les mots clés") ;
64
		chercherCommentaire = new Item("Filtrer par les commentaires") ;
12 aperonnet 65
		addItem(uploaderImage);
22 aperonnet 66
		addItem(supprimerImage) ;
43 aperonnet 67
		addSeparator() ;
40 aperonnet 68
		addItem(chercherImage) ;
43 aperonnet 69
		addItem(chercherCommentaire) ;
12 aperonnet 70
 
36 aperonnet 71
		// on ajoute les listeners
72
		ajouterListeners() ;
12 aperonnet 73
	}
74
 
36 aperonnet 75
	/**
76
	 * Ajoute les listeners pour la gestions des évènements
77
	 */
78
	private void ajouterListeners()
12 aperonnet 79
	{
36 aperonnet 80
		this.addListener(new MenuListenerAdapter() {
12 aperonnet 81
 
36 aperonnet 82
			// gestion du clic sur un item
47 aperonnet 83
 
12 aperonnet 84
			public void onItemClick(BaseItem item, EventObject e) {
85
 
36 aperonnet 86
				// si c'est l'upload
12 aperonnet 87
				if(item.equals(uploaderImage))
88
				{
36 aperonnet 89
					// on notifie le médiateur
22 aperonnet 90
					getIMediateur().uploaderImages() ;
12 aperonnet 91
				}
92
 
36 aperonnet 93
				// si c'est la suppression
22 aperonnet 94
				if(item.equals(supprimerImage))
95
				{
36 aperonnet 96
					// on notifie le médiateur
22 aperonnet 97
					getIMediateur().supprimerImages() ;
98
				}
12 aperonnet 99
 
43 aperonnet 100
				// si c'est la recherche par mots clé
40 aperonnet 101
				if(item.equals(chercherImage))
102
				{
43 aperonnet 103
					// on notifie le médiateur
104
					getIMediateur().afficherFiltreMotsCles() ;
40 aperonnet 105
				}
22 aperonnet 106
 
43 aperonnet 107
				// si c'est la recherche par commentaires
108
				if(item.equals(chercherCommentaire))
109
				{
110
					// on notifie le médiateur
111
					getIMediateur().afficherFiltreCommentaires() ;
112
				}
40 aperonnet 113
 
43 aperonnet 114
				// enfin, on cache le menu
115
				hide() ;
116
 
12 aperonnet 117
			}
118
 
119
		}) ;
120
	}
121
 
36 aperonnet 122
	/**
123
	 * Accesseur pour le médiateur
124
	 * @return le médiateur associé à la vue
125
	 */
12 aperonnet 126
	public ImageMediateur getIMediateur()
127
	{
128
		return iMediateur ;
129
	}
130
 
131
}