Subversion Repositories eFlore/Applications.cel

Rev

Rev 2757 | Details | Compare with Previous | Last modification | View Log | RSS feed

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