Subversion Repositories eFlore/Archives.cel-v2

Rev

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