Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
195 david 1
package org.tela_botanica.client.vues.observation;
108 aurelien 2
 
3
import org.tela_botanica.client.observation.ObservationMediateur;
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
public class MenuObservationVue extends Menu {
12
 
13
	/**
14
	 * Le médiateur associé à la vue
15
	 */
16
	private ObservationMediateur oMediateur;
17
 
18
	/**
19
	 * Item pour la suppression d'obs
20
	 */
21
	private Item supprimerObservation = null;
22
 
23
	private Item transmettreObservation = null;
145 aurelien 24
 
25
	private Item deTransmettreObservation = null;
108 aurelien 26
 
27
	/**
28
	 * Constructeur sans argument (privé car ne doit être utilisé)
29
	 */
30
	@SuppressWarnings("unused")
31
	private MenuObservationVue() {
32
		super();
33
	}
34
 
35
	/**
36
	 * Constructeur avec paramètre
37
	 *
38
	 * @param im
39
	 *            le médiateur à associer
40
	 */
41
	public MenuObservationVue(ObservationMediateur om) {
42
		super();
43
 
44
		oMediateur = om;
111 aurelien 45
 
145 aurelien 46
		transmettreObservation = new Item("Rendre publiques les observations séléctionnées");
108 aurelien 47
		addItem(transmettreObservation);
111 aurelien 48
 
145 aurelien 49
		deTransmettreObservation = new Item("Rendre privées les observations séléctionnées");
50
		addItem(deTransmettreObservation);
51
 
111 aurelien 52
		supprimerObservation = new Item("Supprimer les observations séléctionnées");
53
		addItem(supprimerObservation);
108 aurelien 54
 
55
		// on ajoute les listeners
56
		ajouterListeners();
57
	}
58
 
59
	/**
60
	 * Ajoute les listeners pour la gestions des évènements
61
	 */
62
	private void ajouterListeners() {
63
		this.addListener(new MenuListenerAdapter() {
64
 
65
			// gestion du clic sur un item
66
 
1292 aurelien 67
			@Override
108 aurelien 68
			public void onItemClick(BaseItem item, EventObject e) {
69
 
70
				// si c'est la suppression
71
				if (item.equals(supprimerObservation)) {
72
					// on notifie le médiateur
73
					getOMediateur().supprimerObservations();
74
				}
75
 
76
				// si c'est la transmission
77
				if (item.equals(transmettreObservation)) {
78
					// on notifie le médiateur
145 aurelien 79
					getOMediateur().transmettreObservations(true);
108 aurelien 80
				}
111 aurelien 81
 
145 aurelien 82
				// si c'est la detransmission
83
				if (item.equals(deTransmettreObservation)) {
84
					// on notifie le médiateur
85
					getOMediateur().transmettreObservations(false);
86
				}
87
 
108 aurelien 88
				// enfin, on cache le menu
89
				hide();
90
 
91
			}
92
 
93
		});
94
	}
95
 
96
	/**
97
	 * Accesseur pour le médiateur
98
	 *
99
	 * @return le médiateur associé à la vue
100
	 */
101
	public ObservationMediateur getOMediateur() {
102
		return oMediateur;
103
	}
104
 
105
}