Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
4
 
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;
9
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
10
 
11
/**
12
 * Menu de gestion des images
5 aperonnet 13
 *
2 aperonnet 14
 * @author aurelien
5 aperonnet 15
 *
2 aperonnet 16
 */
17
public class MenuImageVue extends Menu {
5 aperonnet 18
 
2 aperonnet 19
	/**
20
	 * Le médiateur associé à la vue
21
	 */
5 aperonnet 22
	private ImageMediateur iMediateur;
23
 
2 aperonnet 24
	/**
25
	 * Item pour l'upload
26
	 */
5 aperonnet 27
	private Item uploaderImage = null;
2 aperonnet 28
	/**
29
	 * Item pour la suppression
30
	 */
5 aperonnet 31
	private Item supprimerImage = null;
2 aperonnet 32
 
33
	/**
5 aperonnet 34
	 * Item pour l'ajout d'images à la selection
2 aperonnet 35
	 */
5 aperonnet 36
	private Item ajouterImageSelection = null;
37
 
38
	/**
39
	 * Item pour vider la selection d'images
40
	 */
41
	private Item viderSelection = null;
42
 
43
	/**
44
	 * Item pour lier la selection d'images
45
	 */
46
	private Item afficherSelection = null;
81 jpm 47
 
48
	/**
49
	 * Item pour lier les observations associées
50
	 */
51
	private Item voirObs = null;
5 aperonnet 52
 
53
	/**
54
	 * Constructeur sans argument (privé car ne doit être utilisé)
55
	 */
2 aperonnet 56
	@SuppressWarnings("unused")
5 aperonnet 57
	private MenuImageVue() {
2 aperonnet 58
		super();
59
	}
5 aperonnet 60
 
2 aperonnet 61
	/**
62
	 * Constructeur avec paramètre
5 aperonnet 63
	 *
64
	 * @param im
65
	 *            le médiateur à associer
2 aperonnet 66
	 */
5 aperonnet 67
	public MenuImageVue(ImageMediateur im) {
68
		super();
69
 
70
		iMediateur = im;
71
 
2 aperonnet 72
		// on construit le menu
5 aperonnet 73
		uploaderImage = new Item("Uploader des images");
74
		supprimerImage = new Item("Supprimer les images selectionnées");
75
		ajouterImageSelection = new Item(
76
				"Ajouter les images sélectionnées au tampon");
77
		viderSelection = new Item("Vider le tampon");
78
		afficherSelection = new Item("Afficher le tampon");
81 jpm 79
		voirObs = new Item("Voir les observations associées à cette image") ;
2 aperonnet 80
		addItem(uploaderImage);
5 aperonnet 81
		addItem(supprimerImage);
82
		addSeparator() ;
83
		addItem(ajouterImageSelection);
84
		addItem(viderSelection);
85
		addItem(afficherSelection);
81 jpm 86
		addItem(voirObs) ;
5 aperonnet 87
 
2 aperonnet 88
		// on ajoute les listeners
5 aperonnet 89
		ajouterListeners();
2 aperonnet 90
	}
5 aperonnet 91
 
2 aperonnet 92
	/**
93
	 * Ajoute les listeners pour la gestions des évènements
94
	 */
5 aperonnet 95
	private void ajouterListeners() {
2 aperonnet 96
		this.addListener(new MenuListenerAdapter() {
97
 
98
			// gestion du clic sur un item
5 aperonnet 99
 
2 aperonnet 100
			public void onItemClick(BaseItem item, EventObject e) {
5 aperonnet 101
 
2 aperonnet 102
				// si c'est l'upload
5 aperonnet 103
				if (item.equals(uploaderImage)) {
2 aperonnet 104
					// on notifie le médiateur
5 aperonnet 105
					getIMediateur().uploaderImages();
2 aperonnet 106
				}
5 aperonnet 107
 
2 aperonnet 108
				// si c'est la suppression
5 aperonnet 109
				if (item.equals(supprimerImage)) {
2 aperonnet 110
					// on notifie le médiateur
5 aperonnet 111
					getIMediateur().supprimerImages();
2 aperonnet 112
				}
5 aperonnet 113
 
114
				// si c'est l'ajout à la sélection
115
				if (item.equals(ajouterImageSelection)) {
116
					getIMediateur().ajouterImagesSelection();
117
				}
118
 
119
				// si c'est le vidage de la sélection
120
				if (item.equals(viderSelection)) {
121
					getIMediateur().viderSelection();
122
				}
123
 
81 jpm 124
				// si c'est l'affichage de la selection
5 aperonnet 125
				if (item.equals(afficherSelection)) {
126
					getIMediateur().afficherIdSelectionImages();
127
				}
81 jpm 128
 
129
				if (item.equals(voirObs)) {
130
					getIMediateur().afficherObservationsAssociees() ;
131
				}
5 aperonnet 132
 
2 aperonnet 133
				// enfin, on cache le menu
5 aperonnet 134
				hide();
135
 
2 aperonnet 136
			}
5 aperonnet 137
 
138
		});
2 aperonnet 139
	}
5 aperonnet 140
 
2 aperonnet 141
	/**
142
	 * Accesseur pour le médiateur
5 aperonnet 143
	 *
2 aperonnet 144
	 * @return le médiateur associé à la vue
145
	 */
5 aperonnet 146
	public ImageMediateur getIMediateur() {
147
		return iMediateur;
2 aperonnet 148
	}
149
 
150
}