Subversion Repositories eFlore/Applications.cel

Rev

Rev 173 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 173 Rev 195
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues.image;
2
 
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
3
import org.tela_botanica.client.image.ImageMediateur;
4
 
-
 
5
import com.google.gwt.user.client.Window;
4
 
6
import com.gwtext.client.core.EventObject;
5
import com.gwtext.client.core.EventObject;
7
import com.gwtext.client.widgets.menu.BaseItem;
6
import com.gwtext.client.widgets.menu.BaseItem;
8
import com.gwtext.client.widgets.menu.Item;
7
import com.gwtext.client.widgets.menu.Item;
9
import com.gwtext.client.widgets.menu.Menu;
8
import com.gwtext.client.widgets.menu.Menu;
10
import com.gwtext.client.widgets.menu.MenuItem;
9
import com.gwtext.client.widgets.menu.MenuItem;
11
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
10
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
12
 
11
 
13
/**
12
/**
14
 * Menu de gestion des images
13
 * Menu de gestion des images
15
 * 
14
 * 
16
 * @author aurelien
15
 * @author aurelien
17
 * 
16
 * 
18
 */
17
 */
19
public class MenuImageVue extends Menu {
18
public class MenuImageVue extends Menu {
20
 
19
 
21
	/**
20
	/**
22
	 * Le médiateur associé à la vue
21
	 * Le médiateur associé à la vue
23
	 */
22
	 */
24
	private ImageMediateur iMediateur;
23
	private ImageMediateur iMediateur;
25
 
24
 
26
	/**
25
	/**
27
	 * Item pour l'upload
26
	 * Item pour l'upload
28
	 */
27
	 */
29
	private MenuItem uploaderImage = null;
28
	private MenuItem uploaderImage = null;
30
	/**
29
	/**
31
	 * Item pour la suppression
30
	 * Item pour la suppression
32
	 */
31
	 */
33
	private Item supprimerImage = null;
32
	private Item supprimerImage = null;
34
 
33
 
35
	/**
34
	/**
36
	 * Item pour l'ajout d'images à la selection
35
	 * Item pour l'ajout d'images à la selection
37
	 */
36
	 */
38
	private Item ajouterImageSelection = null;
37
	private Item ajouterImageSelection = null;
39
 
38
 
40
	/**
39
	/**
41
	 * Item pour vider la selection d'images
40
	 * Item pour vider la selection d'images
42
	 */
41
	 */
43
	private Item viderSelection = null;
42
	private Item viderSelection = null;
44
 
43
 
45
	/**
44
	/**
46
	 * Item pour lier la selection d'images
45
	 * Item pour lier la selection d'images
47
	 */
46
	 */
48
	private Item afficherSelection = null;
47
	private Item afficherSelection = null;
49
	
48
	
50
	private Item uploadMultiple = null ;
49
	private Item uploadMultiple = null ;
51
	
50
	
52
	private Item uploadSimple = null ;
51
	private Item uploadSimple = null ;
53
	
52
	
54
	private Menu mn = null ;
53
	private Menu mn = null ;
55
 
54
 
56
	/**
55
	/**
57
	 * Constructeur sans argument (privé car ne doit être utilisé)
56
	 * Constructeur sans argument (privé car ne doit être utilisé)
58
	 */
57
	 */
59
	@SuppressWarnings("unused")
58
	@SuppressWarnings("unused")
60
	private MenuImageVue() {
59
	private MenuImageVue() {
61
		super();
60
		super();
62
	}
61
	}
63
 
62
 
64
	/**
63
	/**
65
	 * Constructeur avec paramètre
64
	 * Constructeur avec paramètre
66
	 * 
65
	 * 
67
	 * @param im
66
	 * @param im
68
	 *            le médiateur à associer
67
	 *            le médiateur à associer
69
	 */
68
	 */
70
	public MenuImageVue(ImageMediateur im) {
69
	public MenuImageVue(ImageMediateur im) {
71
		super();
70
		super();
72
 
71
 
73
		iMediateur = im;
72
		iMediateur = im;
74
		
73
		
75
		mn = new Menu();
74
		mn = new Menu();
76
			uploadMultiple = new Item("Plusieurs dossiers ou fichiers à la fois");
75
			uploadMultiple = new Item("Plusieurs dossiers ou fichiers à la fois");
77
			uploadSimple = new Item("Un fichier à la la fois");
76
			uploadSimple = new Item("Un fichier à la la fois");
78
			
77
			
79
		mn.addItem(uploadMultiple);
78
		mn.addItem(uploadMultiple);
80
		mn.addItem(uploadSimple);
79
		mn.addItem(uploadSimple);
81
 
80
 
82
		// on construit le menu
81
		// on construit le menu
83
		uploaderImage = new MenuItem("Ajouter des images", mn);
82
		uploaderImage = new MenuItem("Ajouter des images", mn);
84
		supprimerImage = new Item("Supprimer les images selectionnées");
83
		supprimerImage = new Item("Supprimer les images selectionnées");
85
		ajouterImageSelection = new Item(
84
		ajouterImageSelection = new Item(
86
				"Ajouter les images sélectionnées au tampon");
85
				"Ajouter les images sélectionnées au tampon");
87
		viderSelection = new Item("Vider le tampon");
86
		viderSelection = new Item("Vider le tampon");
88
		afficherSelection = new Item("Afficher le tampon");
87
		afficherSelection = new Item("Afficher le tampon");
89
		addItem(uploaderImage);
88
		addItem(uploaderImage);
90
		addItem(supprimerImage);
89
		addItem(supprimerImage);
91
		addSeparator() ;
90
		addSeparator() ;
92
		addItem(ajouterImageSelection);
91
		addItem(ajouterImageSelection);
93
		addItem(viderSelection);
92
		addItem(viderSelection);
94
		addItem(afficherSelection);
93
		addItem(afficherSelection);
95
 
94
 
96
		// on ajoute les listeners
95
		// on ajoute les listeners
97
		ajouterListeners();
96
		ajouterListeners();
98
	}
97
	}
99
 
98
 
100
	/**
99
	/**
101
	 * Ajoute les listeners pour la gestions des évènements
100
	 * Ajoute les listeners pour la gestions des évènements
102
	 */
101
	 */
103
	private void ajouterListeners() {
102
	private void ajouterListeners() {
104
		this.addListener(new MenuListenerAdapter() {
103
		this.addListener(new MenuListenerAdapter() {
105
 
104
 
106
			// gestion du clic sur un item
105
			// gestion du clic sur un item
107
 
106
 
108
			public void onItemClick(BaseItem item, EventObject e) {
107
			public void onItemClick(BaseItem item, EventObject e) {
109
				
108
				
110
				// si c'est la suppression
109
				// si c'est la suppression
111
				if (item.equals(supprimerImage)) {
110
				if (item.equals(supprimerImage)) {
112
					// on notifie le médiateur
111
					// on notifie le médiateur
113
					getIMediateur().supprimerImages();
112
					getIMediateur().supprimerImages();
114
				}
113
				}
115
 
114
 
116
				// si c'est l'ajout à la sélection
115
				// si c'est l'ajout à la sélection
117
				if (item.equals(ajouterImageSelection)) {
116
				if (item.equals(ajouterImageSelection)) {
118
					getIMediateur().ajouterImagesSelection();
117
					getIMediateur().ajouterImagesSelection();
119
				}
118
				}
120
 
119
 
121
				// si c'est le vidage de la sélection
120
				// si c'est le vidage de la sélection
122
				if (item.equals(viderSelection)) {
121
				if (item.equals(viderSelection)) {
123
					getIMediateur().viderSelection();
122
					getIMediateur().viderSelection();
124
				}
123
				}
125
 
124
 
126
				// si c'est l'affichage de la selection
125
				// si c'est l'affichage de la selection
127
				if (item.equals(afficherSelection)) {
126
				if (item.equals(afficherSelection)) {
128
					getIMediateur().afficherIdSelectionImages();
127
					getIMediateur().afficherIdSelectionImages();
129
				}
128
				}
130
				
129
				
131
				// enfin, on cache le menu
130
				// enfin, on cache le menu
132
				hide();
131
				hide();
133
 
132
 
134
			}
133
			}
135
			
134
			
136
			public void onShow(Menu menu) {
135
			public void onShow(Menu menu) {
137
				if(getIMediateur().getCompteSelection() != 0) {
136
				if(getIMediateur().getCompteSelection() != 0) {
138
					afficherSelection.enable();
137
					afficherSelection.enable();
139
					viderSelection.enable();
138
					viderSelection.enable();
140
				}
139
				}
141
				else {
140
				else {
142
					afficherSelection.disable();
141
					afficherSelection.disable();
143
					viderSelection.disable();
142
					viderSelection.disable();
144
				}
143
				}
145
			}
144
			}
146
 
145
 
147
		});
146
		});
148
		
147
		
149
		mn.addListener(new MenuListenerAdapter() {
148
		mn.addListener(new MenuListenerAdapter() {
150
			
149
			
151
			public void onItemClick(BaseItem item, EventObject e) {
150
			public void onItemClick(BaseItem item, EventObject e) {
152
				
151
				
153
				// si c'est l'upload
152
				// si c'est l'upload
154
				if (item.equals(uploadMultiple)) {
153
				if (item.equals(uploadMultiple)) {
155
					// on notifie le médiateur
154
					// on notifie le médiateur
156
					getIMediateur().uploaderImages(true);
155
					getIMediateur().uploaderImages(true);
157
				}
156
				}
158
				
157
				
159
				// si c'est l'upload
158
				// si c'est l'upload
160
				if (item.equals(uploadSimple)) {
159
				if (item.equals(uploadSimple)) {
161
					// on notifie le médiateur
160
					// on notifie le médiateur
162
					getIMediateur().uploaderImages(false);
161
					getIMediateur().uploaderImages(false);
163
				}
162
				}
164
			}
163
			}
165
			
164
			
166
		});
165
		});
167
	
166
	
168
	}
167
	}
169
 
168
 
170
	/**
169
	/**
171
	 * Accesseur pour le médiateur
170
	 * Accesseur pour le médiateur
172
	 * 
171
	 * 
173
	 * @return le médiateur associé à la vue
172
	 * @return le médiateur associé à la vue
174
	 */
173
	 */
175
	public ImageMediateur getIMediateur() {
174
	public ImageMediateur getIMediateur() {
176
		return iMediateur;
175
		return iMediateur;
177
	}
176
	}
178
 
177
 
179
}
178
}