Subversion Repositories eFlore/Applications.cel

Rev

Rev 2 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 5
Line 1... Line 1...
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
Line -... Line 2...
-
 
2
 
2
 
3
 
3
import org.tela_botanica.client.interfaces.IdVue;
4
import org.tela_botanica.client.interfaces.IdVue;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.VueListable;
6
import org.tela_botanica.client.interfaces.VueListable;
6
import org.tela_botanica.client.observation.ObservationMediateur;
7
import org.tela_botanica.client.observation.ObservationMediateur;
7
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
8
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
8
import org.tela_botanica.client.vues.BarreOutilsVue;
9
import org.tela_botanica.client.vues.BarreOutilsVue;
9
import org.tela_botanica.client.vues.BarreRechercheFiltreVue;
10
import org.tela_botanica.client.vues.BarreRechercheFiltreVue;
10
import org.tela_botanica.client.vues.GalerieImageVue;
11
import org.tela_botanica.client.vues.GalerieImageVue;
11
import org.tela_botanica.client.vues.ListeImageVue;
12
import org.tela_botanica.client.vues.ListeImageVue;
-
 
13
import org.tela_botanica.client.vues.MenuImageVue;
12
import org.tela_botanica.client.vues.MenuImageVue;
14
import org.tela_botanica.client.vues.MiniListeObservationVue;
13
import org.tela_botanica.client.vues.PanneauFiltresVues;
15
import org.tela_botanica.client.vues.PanneauFiltresVues;
14
import org.tela_botanica.client.vues.PanneauMetadonneesVue;
16
import org.tela_botanica.client.vues.PanneauMetadonneesVue;
Line 15... Line 17...
15
import org.tela_botanica.client.vues.ZoomImageVue;
17
import org.tela_botanica.client.vues.ZoomImageVue;
Line 23... Line 25...
23
import com.gwtext.client.core.ExtElement;
25
import com.gwtext.client.core.ExtElement;
24
import com.gwtext.client.core.RegionPosition;
26
import com.gwtext.client.core.RegionPosition;
25
import com.gwtext.client.data.Record;
27
import com.gwtext.client.data.Record;
26
import com.gwtext.client.data.Store;
28
import com.gwtext.client.data.Store;
27
import com.gwtext.client.data.Tree;
29
import com.gwtext.client.data.Tree;
-
 
30
import com.gwtext.client.dd.DragData;
-
 
31
import com.gwtext.client.dd.DragSource;
28
import com.gwtext.client.widgets.DataView;
32
import com.gwtext.client.widgets.DataView;
29
import com.gwtext.client.widgets.Panel;
33
import com.gwtext.client.widgets.Panel;
30
import com.gwtext.client.widgets.TabPanel;
34
import com.gwtext.client.widgets.TabPanel;
31
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
35
import com.gwtext.client.widgets.grid.GridDragData;
32
import com.gwtext.client.widgets.layout.BorderLayout;
36
import com.gwtext.client.widgets.layout.BorderLayout;
33
import com.gwtext.client.widgets.layout.BorderLayoutData;
37
import com.gwtext.client.widgets.layout.BorderLayoutData;
34
import com.gwtext.client.widgets.layout.FitLayout;
38
import com.gwtext.client.widgets.layout.FitLayout;
35
import com.gwtext.client.widgets.menu.BaseItem;
39
import com.gwtext.client.widgets.menu.BaseItem;
36
import com.gwtext.client.widgets.menu.Item;
40
import com.gwtext.client.widgets.menu.Item;
Line 38... Line 42...
38
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
42
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
39
import com.gwtext.client.widgets.tree.TreeEditor;
43
import com.gwtext.client.widgets.tree.TreeEditor;
40
import com.gwtext.client.widgets.tree.TreeNode;
44
import com.gwtext.client.widgets.tree.TreeNode;
Line 41... Line 45...
41
 
45
 
42
/**
46
/**
43
 * Mediateur gérant les interactions entre vues et les echanges de données
47
 * Mediateur gérant les interactions entre vues et les echanges de données C'est
-
 
48
 * un singleton.
44
 * C'est un singleton. 
49
 * 
45
 * @author aurelien
50
 * @author aurelien
46
 *
51
 * 
47
 */
52
 */
48
public class ImageMediateur {
53
public class ImageMediateur {
49
	
54
 
50
	/**
55
	/**
51
	 * le mediateur des observations qui lie la partie images au carnet 
56
	 * le mediateur des observations qui lie la partie images au carnet
52
	 */
57
	 */
53
	private ObservationMediateur oMediateur = null ;
58
	private ObservationMediateur oMediateur = null;
54
	
59
 
55
	/**
60
	/**
56
	 * booleen qui verifie l'unicite de l'instance (donc static)
61
	 * booleen qui verifie l'unicite de l'instance (donc static)
57
	 */
62
	 */
58
	private static boolean estInstancie = false ;  
63
	private static boolean estInstancie = false;
59
	
64
 
60
	/**
65
	/**
61
	 * modele de données
66
	 * modele de données
62
	 */
67
	 */
63
	private ImageModele iModele = null ;
68
	private ImageModele iModele = null;
64
	
69
 
65
	/**
70
	/**
66
	 * L'identifiant utilisateur.
-
 
67
	 * Par défaut, il vaut 0 
71
	 * L'identifiant utilisateur. Par défaut, il vaut 0
68
	 */
72
	 */
Line 69... Line 73...
69
	private String identifiant = "0" ;
73
	private String identifiant = "0";
70
 
74
 
71
	/**
75
	/**
72
	 * panneau principal des images (onglet "images")
76
	 * panneau principal des images (onglet "images")
73
	 */
77
	 */
74
	private final Panel panneauPrincipalImage = new Panel("Images");
78
	private final Panel panneauPrincipalImage = new Panel("Images");
75
	
79
 
76
	/**
80
	/**
77
	 * panneau a onglet pour la liste, la galerie et la vue en grand
81
	 * panneau a onglet pour la liste, la galerie et la vue en grand
78
	 */ 
82
	 */
79
	private TabPanel ongletsImage = null ;
83
	private TabPanel ongletsImage = null;
80
	
84
 
81
	/**
85
	/**
82
	 * panneau de filtrage
86
	 * panneau de filtrage
83
	 */
87
	 */
84
	private PanneauFiltresVues filtres = null ;
88
	private PanneauFiltresVues filtres = null;
85
	
89
 
86
	/**
90
	/**
87
	 * conteneur du panneau a onglets
91
	 * conteneur du panneau a onglets
88
	 */
92
	 */
89
	private Panel panneauMenuEtOngletsImage = null ;
93
	private Panel panneauMenuEtOngletsImage = null;
90
	
94
 
91
	/**
95
	/**
92
	 * galerie de miniature
96
	 * galerie de miniature
93
	 */
97
	 */
94
	private GalerieImageVue galerieImage = null ;
98
	private GalerieImageVue galerieImage = null;
95
	
99
 
96
	/**
100
	/**
97
	 * liste détaillée des images
101
	 * liste détaillée des images
98
	 */
102
	 */
99
	private ListeImageVue listeImage = null ;
103
	private ListeImageVue listeImage = null;
100
	
104
 
101
	/**
105
	/**
102
	 * vue agrandie de la l'image selectionnée
106
	 * vue agrandie de la l'image selectionnée
103
	 */
107
	 */
104
	private ZoomImageVue zoomImage = null ;
108
	private ZoomImageVue zoomImage = null;
105
	
109
 
106
	/**
110
	/**
107
	 * panneau a onglets affichant les métadonnées et les mots clés
111
	 * panneau a onglets affichant les métadonnées et les mots clés
108
	 */
112
	 */
109
	private PanneauMetadonneesVue metadonneesIptcExif = null ;
113
	private PanneauMetadonneesVue metadonneesIptcExif = null;
110
	
114
 
111
	/**
115
	/**
112
	 * panneau conteneur pour le panneau a onglet des metadonnées
116
	 * panneau conteneur pour le panneau a onglet des metadonnées
113
	 */
117
	 */
114
	private final Panel detailsEtMotsCles = new Panel("Détails et mots clés");
118
	private final Panel detailsEtMotsCles = new Panel("Détails et mots clés");
115
	
119
 
116
	/**
120
	/**
117
	 * menu contextuel de manipulation des images
121
	 * menu contextuel de manipulation des images
118
	 */
122
	 */
119
	private MenuImageVue menuImageVue = null ;
123
	private MenuImageVue menuImageVue = null;
120
	
124
 
121
	/**
125
	/**
122
	 * barre d'outils
126
	 * barre d'outils
123
	 */
127
	 */
124
	private BarreOutilsVue barreOutilsVue = null ;
128
	private BarreOutilsVue barreOutilsVue = null;
125
	
129
 
126
	/**
130
	/**
127
	 * l'indice du dernier onglet sélectionné
131
	 * l'indice du dernier onglet sélectionné
128
	 */
132
	 */
129
	private int dernierIndexOnglet = 0 ; 
133
	private int dernierIndexOnglet = 0;
130
	
134
 
131
	/**
135
	/**
132
	 * booleen explicitant s'il y a une selection en cours
136
	 * booleen explicitant s'il y a une selection en cours
133
	 */
137
	 */
134
	private boolean selection = false ;
138
	private boolean selection = false;
135
	
139
 
136
	/**
140
	/**
137
	 * Filtre pour les mots cles
141
	 * Filtre pour les mots cles
138
	 */
142
	 */
139
	private ArbreMotsClesFiltreVue filtreMotsCles = null ;
143
	private ArbreMotsClesFiltreVue filtreMotsCles = null;
140
	
144
 
141
	/**
145
	/**
142
	 * Filtre pour les commentaires
146
	 * Filtre pour les commentaires
Line 143... Line 147...
143
	 */
147
	 */
144
	private BarreRechercheFiltreVue filtreCommentaires = null ;
148
	private BarreRechercheFiltreVue filtreCommentaires = null;
145
 
149
 
146
	/**
150
	/**
147
	 * constructeur privé (on accède a la classe par la méthode getInstance)
-
 
148
	 */
151
	 * constructeur privé (on accède a la classe par la méthode getInstance)
149
	private ImageMediateur()
152
	 */
150
	{
153
	private ImageMediateur() {
151
		// quelques variables de position pour les borderlayouts
154
		// quelques variables de position pour les borderlayouts
152
		final BorderLayoutData regionNord = new BorderLayoutData(
155
		final BorderLayoutData regionNord = new BorderLayoutData(
153
				RegionPosition.NORTH) ;
156
				RegionPosition.NORTH);
Line 154... Line 157...
154
		
157
 
155
		final BorderLayoutData regionCentre = new BorderLayoutData(
158
		final BorderLayoutData regionCentre = new BorderLayoutData(
156
				RegionPosition.CENTER) ;
159
				RegionPosition.CENTER);
157
 
160
 
158
		final BorderLayoutData regionEst = new BorderLayoutData(
161
		final BorderLayoutData regionEst = new BorderLayoutData(
159
				RegionPosition.EAST);
162
				RegionPosition.EAST);
160
		regionEst.setSplit(true);
163
		regionEst.setSplit(true);
161
		
-
 
162
		final BorderLayoutData regionOuest = new BorderLayoutData(
-
 
Line -... Line 164...
-
 
164
 
163
				RegionPosition.WEST);
165
		final BorderLayoutData regionOuest = new BorderLayoutData(
164
		regionOuest.setSplit(true);
166
				RegionPosition.WEST);
165
		
167
		regionOuest.setSplit(true);
166
		afficherMenuId() ;
168
 
167
 
169
		afficherMenuId();
168
		
170
 
169
		// on crée un modèle
171
		// on crée un modèle
170
		iModele = ImageModele.Instance(this);
172
		iModele = ImageModele.Instance(this);
171
		// et on demande l'arbre des mots clés
173
		// et on demande l'arbre des mots clés
172
		iModele.initialiserArbreMotsCles() ;
174
		iModele.initialiserArbreMotsCles();
173
		
175
 
174
		// on gère la mise en page du panneau principal
176
		// on gère la mise en page du panneau principal
175
		panneauPrincipalImage.setLayout(new BorderLayout());
177
		panneauPrincipalImage.setLayout(new BorderLayout());
176
		panneauPrincipalImage.setId("x-main-panel-image") ;
178
		panneauPrincipalImage.setId("x-main-panel-image");
-
 
179
 
177
		
180
		// on crée le panneau des filtres
178
		// on crée le panneau des filtres
181
		filtres = new PanneauFiltresVues(this);
179
		filtres = new PanneauFiltresVues(this) ;
182
 
180
		
183
		// on crée le panneau qui contient les differentes onglets ainsi que le
181
		// on crée le panneau qui contient les differentes onglets ainsi que le menu supérieur
184
		// menu supérieur
182
		panneauMenuEtOngletsImage = new Panel() ;
185
		panneauMenuEtOngletsImage = new Panel();
183
		panneauMenuEtOngletsImage.setLayout(new BorderLayout()) ;
186
		panneauMenuEtOngletsImage.setLayout(new BorderLayout());
184
		
187
 
185
		// le panneau à onglet qui contient les trois vues
188
		// le panneau à onglet qui contient les trois vues
186
		ongletsImage = new TabPanel();
189
		ongletsImage = new TabPanel();
187
		
190
 
188
		// la galerie
191
		// la galerie
189
		galerieImage = new GalerieImageVue(this) ;
192
		galerieImage = new GalerieImageVue(this);
190
		
193
 
191
		// la liste des images
194
		// la liste des images
192
		Panel panneauListeImage = new Panel("Liste");
195
		Panel panneauListeImage = new Panel("Liste");
193
		listeImage = new ListeImageVue(this);
196
		listeImage = new ListeImageVue(this);
194
		panneauListeImage.setLayout(new FitLayout());
197
		panneauListeImage.setLayout(new FitLayout());
195
		panneauListeImage.add(listeImage);
198
		panneauListeImage.add(listeImage);
196
		
199
 
197
		// le panneau zoom
200
		// le panneau zoom
198
		zoomImage = new ZoomImageVue(this);
201
		zoomImage = new ZoomImageVue(this);
199
		
202
 
200
		// on ajoute les panneaux au panneau à onglets
203
		// on ajoute les panneaux au panneau à onglets
201
		ongletsImage.add(galerieImage);
204
		ongletsImage.add(galerieImage);
202
		ongletsImage.add(panneauListeImage);
205
		ongletsImage.add(panneauListeImage);
203
		ongletsImage.add(zoomImage);
206
		ongletsImage.add(zoomImage);
204
		
207
 
205
		// on crée les menu et la barre de vue
208
		// on crée les menu et la barre de vue
206
		menuImageVue = new MenuImageVue(this) ;
209
		menuImageVue = new MenuImageVue(this);
207
		barreOutilsVue = new BarreOutilsVue(this) ;
210
		barreOutilsVue = new BarreOutilsVue(this);
208
		
211
 
209
		// on initialise le volet qui contient les mots clés
212
		// on initialise le volet qui contient les mots clés
210
		detailsEtMotsCles.setAnimCollapse(true);
213
		detailsEtMotsCles.setAnimCollapse(true);
211
		detailsEtMotsCles.setTitleCollapse(true);
214
		detailsEtMotsCles.setTitleCollapse(true);
212
		detailsEtMotsCles.setCollapsible(true);
215
		detailsEtMotsCles.setCollapsible(true);
213
		
216
 
214
		filtreMotsCles = new ArbreMotsClesFiltreVue(this) ;
217
		filtreMotsCles = new ArbreMotsClesFiltreVue(this);
215
		filtreCommentaires = new BarreRechercheFiltreVue(this) ;
218
		filtreCommentaires = new BarreRechercheFiltreVue(this);
216
		
219
 
217
		// on crée le panneau conteneur des métadonnées et infos
220
		// on crée le panneau conteneur des métadonnées et infos
-
 
221
		metadonneesIptcExif = new PanneauMetadonneesVue(this);
218
		metadonneesIptcExif = new PanneauMetadonneesVue(this) ;
222
		// et on l'inclut dans le volet approprié
219
		// et on l'inclut dans le volet approprié
223
		detailsEtMotsCles.add(metadonneesIptcExif);
220
		detailsEtMotsCles.add(metadonneesIptcExif) ;
224
 
221
		
225
		// on ajoute la barre de vue au nord du panneau qui contient menu et
222
		// on ajoute la barre de vue au nord du panneau qui contient menu et onglets d'images
226
		// onglets d'images
-
 
227
		panneauMenuEtOngletsImage.add(barreOutilsVue, regionNord);
223
		panneauMenuEtOngletsImage.add(barreOutilsVue,regionNord) ;
228
		// les onglets au centre
224
		// les onglets au centre
229
		panneauMenuEtOngletsImage.add(ongletsImage, regionCentre);
225
		panneauMenuEtOngletsImage.add(ongletsImage,regionCentre);
230
 
226
		
231
		// on ajoute le panneau qui contient le menu et les onglets d'images au
227
		// on ajoute le panneau qui contient le menu et les onglets d'images au centre
-
 
228
		panneauPrincipalImage.add(panneauMenuEtOngletsImage,regionCentre);				
232
		// centre
229
		
233
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
230
		// et le panneau de métadonnées et d'info sur le coté droit
234
 
231
		panneauPrincipalImage.add(detailsEtMotsCles,regionEst);
235
		// et le panneau de métadonnées et d'info sur le coté droit
232
		
236
		panneauPrincipalImage.add(detailsEtMotsCles, regionEst);
233
		
237
 
234
		// on ajoute les filtres au panneau gauche
238
		// on ajoute les filtres au panneau gauche
235
		panneauPrincipalImage.add(filtres,regionOuest) ;
-
 
236
		
-
 
237
		filtres.setWidth("15%") ;
239
		panneauPrincipalImage.add(filtres, regionOuest);
238
		detailsEtMotsCles.setWidth("15%");
240
 
239
		
241
		filtres.setWidth("15%");
240
		ajouterListeners() ;
242
		detailsEtMotsCles.setWidth("15%");
-
 
243
 
-
 
244
	}
-
 
245
 
241
		
246
	/**
242
	}
247
	 * constructeur avec paramètres privé (on accède a la classe par la méthode
243
	
248
	 * getInstance)
244
	/**
-
 
245
	 * constructeur avec paramètres privé (on accède a la classe par la méthode getInstance)
249
	 * 
246
	 * @param om le médiateur des observations à associer à la partie image
250
	 * @param om
247
	 */
251
	 *            le médiateur des observations à associer à la partie image
248
	private ImageMediateur(ObservationMediateur om) 
252
	 */
249
	{
253
	private ImageMediateur(ObservationMediateur om) {
250
		oMediateur = om ; 
254
		oMediateur = om;
251
		
255
 
252
		// quelques variables de position pour les borderlayouts
256
		// quelques variables de position pour les borderlayouts
Line 253... Line 257...
253
		final BorderLayoutData regionNord = new BorderLayoutData(
257
		final BorderLayoutData regionNord = new BorderLayoutData(
254
				RegionPosition.NORTH) ;
258
				RegionPosition.NORTH);
255
		
259
 
256
		final BorderLayoutData regionCentre = new BorderLayoutData(
260
		final BorderLayoutData regionCentre = new BorderLayoutData(
257
				RegionPosition.CENTER) ;
261
				RegionPosition.CENTER);
258
 
262
 
259
		final BorderLayoutData regionEst = new BorderLayoutData(
263
		final BorderLayoutData regionEst = new BorderLayoutData(
260
				RegionPosition.EAST);
-
 
261
		regionEst.setSplit(true);
-
 
Line -... Line 264...
-
 
264
				RegionPosition.EAST);
262
		
265
		regionEst.setSplit(true);
263
		final BorderLayoutData regionOuest = new BorderLayoutData(
266
 
264
				RegionPosition.WEST);
267
		final BorderLayoutData regionOuest = new BorderLayoutData(
265
		regionOuest.setSplit(true);
268
				RegionPosition.WEST);
266
		
269
		regionOuest.setSplit(true);
267
		afficherMenuId() ;
270
 
268
 
271
		afficherMenuId();
269
		
272
 
270
		// on crée un modèle
273
		// on crée un modèle
271
		iModele = ImageModele.Instance(this);
274
		iModele = ImageModele.Instance(this);
272
		// et on demande l'arbre des mots clés
275
		// et on demande l'arbre des mots clés
273
		iModele.initialiserArbreMotsCles() ;
276
		iModele.initialiserArbreMotsCles();
274
		
277
 
275
		// on gère la mise en page du panneau principal
278
		// on gère la mise en page du panneau principal
-
 
279
		panneauPrincipalImage.setLayout(new BorderLayout());
276
		panneauPrincipalImage.setLayout(new BorderLayout());
280
 
277
		
281
		// on crée le panneau des filtres
278
		// on crée le panneau des filtres
282
		filtres = new PanneauFiltresVues(this);
279
		filtres = new PanneauFiltresVues(this) ;
283
		filtres.setWidth(200);
280
		filtres.setWidth(200) ;
284
 
281
		
285
		// on crée le panneau qui contient les differentes onglets ainsi que le
282
		// on crée le panneau qui contient les differentes onglets ainsi que le menu supérieur
286
		// menu supérieur
283
		panneauMenuEtOngletsImage = new Panel() ;
287
		panneauMenuEtOngletsImage = new Panel();
284
		panneauMenuEtOngletsImage.setLayout(new BorderLayout()) ;
288
		panneauMenuEtOngletsImage.setLayout(new BorderLayout());
285
		
289
 
286
		// le panneau à onglet qui contient les trois vues
290
		// le panneau à onglet qui contient les trois vues
287
		ongletsImage = new TabPanel();
291
		ongletsImage = new TabPanel();
288
		
292
 
289
		// la galerie
293
		// la galerie
290
		galerieImage = new GalerieImageVue(this) ;
294
		galerieImage = new GalerieImageVue(this);
291
		
295
 
292
		// la liste des images
296
		// la liste des images
293
		Panel panneauListeImage = new Panel("Liste");
297
		Panel panneauListeImage = new Panel("Liste");
294
		listeImage = new ListeImageVue(this);
298
		listeImage = new ListeImageVue(this);
295
		panneauListeImage.setLayout(new FitLayout());
299
		panneauListeImage.setLayout(new FitLayout());
296
		panneauListeImage.add(listeImage);
-
 
297
		
300
		panneauListeImage.add(listeImage);
-
 
301
 
298
		// le panneau zoom
302
		// le panneau zoom
299
		zoomImage = new ZoomImageVue(this);
303
		zoomImage = new ZoomImageVue(this);
300
		
304
 
301
		// on ajoute les panneaux au panneau à onglets
305
		// on ajoute les panneaux au panneau à onglets
302
		ongletsImage.add(galerieImage);
306
		ongletsImage.add(galerieImage);
303
		ongletsImage.add(zoomImage);
307
		ongletsImage.add(panneauListeImage);
304
		ongletsImage.add(panneauListeImage);
308
		ongletsImage.add(zoomImage);
305
		
309
 
306
		// on crée les menu et la barre de vue
310
		// on crée les menu et la barre de vue
307
		menuImageVue = new MenuImageVue(this) ;
311
		menuImageVue = new MenuImageVue(this);
308
		barreOutilsVue = new BarreOutilsVue(this) ;
312
		barreOutilsVue = new BarreOutilsVue(this);
309
		
313
 
310
		// on initialise le volet qui contient les mots clés
314
		// on initialise le volet qui contient les mots clés
311
		detailsEtMotsCles.setWidth("25%");
315
		detailsEtMotsCles.setWidth("25%");
312
		detailsEtMotsCles.setAnimCollapse(true);
316
		detailsEtMotsCles.setAnimCollapse(true);
313
		detailsEtMotsCles.setTitleCollapse(true);
317
		detailsEtMotsCles.setTitleCollapse(true);
314
		detailsEtMotsCles.setCollapsible(true);
318
		detailsEtMotsCles.setCollapsible(true);
315
		
319
 
316
		filtreMotsCles = new ArbreMotsClesFiltreVue(this) ;
320
		filtreMotsCles = new ArbreMotsClesFiltreVue(this);
317
		filtreCommentaires = new BarreRechercheFiltreVue(this) ;
321
		filtreCommentaires = new BarreRechercheFiltreVue(this);
-
 
322
 
318
		
323
		// on crée le panneau conteneur des métadonnées et infos
319
		// on crée le panneau conteneur des métadonnées et infos
324
		metadonneesIptcExif = new PanneauMetadonneesVue(this);
320
		metadonneesIptcExif = new PanneauMetadonneesVue(this) ;
325
		// et on l'inclut dans le volet approprié
321
		// et on l'inclut dans le volet approprié
326
		detailsEtMotsCles.add(metadonneesIptcExif);
322
		detailsEtMotsCles.add(metadonneesIptcExif) ;
327
 
-
 
328
		// on ajoute la barre de vue au nord du panneau qui contient menu et
323
		
329
		// onglets d'images
324
		// on ajoute la barre de vue au nord du panneau qui contient menu et onglets d'images
330
		panneauMenuEtOngletsImage.add(barreOutilsVue, regionNord);
325
		panneauMenuEtOngletsImage.add(barreOutilsVue,regionNord) ;
331
		// les onglets au centre
326
		// les onglets au centre
332
		panneauMenuEtOngletsImage.add(ongletsImage, regionCentre);
327
		panneauMenuEtOngletsImage.add(ongletsImage,regionCentre);
333
 
328
				
334
		// on ajoute le panneau qui contient le menu et les onglets d'images au
329
		// on ajoute le panneau qui contient le menu et les onglets d'images au centre
335
		// centre
330
		panneauPrincipalImage.add(panneauMenuEtOngletsImage,regionCentre);
336
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
331
		// et le panneau de métadonnées et d'info sur le coté droit
337
		// et le panneau de métadonnées et d'info sur le coté droit
332
		panneauPrincipalImage.add(detailsEtMotsCles,regionEst);
338
		panneauPrincipalImage.add(detailsEtMotsCles, regionEst);
333
		
339
 
334
		// on ajoute les filtres au panneau gauche
340
		// on ajoute les filtres au panneau gauche
335
		//panneauMenuEtOngletsImage.add(filtres,regionOuest) ;
341
		// panneauMenuEtOngletsImage.add(filtres,regionOuest) ;
-
 
342
 
-
 
343
		// filtres.setCollapsed(false) ;
336
		
344
 
337
		//filtres.setCollapsed(false) ;
345
	}
338
		
346
 
339
	}
347
	/**
340
	
348
	 * Change la valeur du booleen de selection
Line 341... Line 349...
341
	/**
349
	 * 
342
	 * Change la valeur du booleen de selection
350
	 * @param selection
-
 
351
	 *            la nouvelle valeur du booléen
343
	 * @param selection la nouvelle valeur du booléen
352
	 */
344
	 */
353
	public void setSelection(boolean selection) {
345
	public void setSelection(boolean selection) {
354
		this.selection = selection;
346
		this.selection = selection;
355
	}
347
	}
356
 
Line 348... Line 357...
348
 
357
	/**
349
	/**
358
	 * renvoie la valeur du booleen de selection
-
 
359
	 * 
350
	 * renvoie la valeur du booleen de selection
360
	 * @return la valeur du booleen de selection
351
	 * @return la valeur du booleen de selection
361
	 */
352
	 */
362
	public boolean isSelection() {
353
	public boolean isSelection() {
-
 
354
		return selection;
363
		return selection;
355
	}
-
 
356
 
364
	}
357
	/**
365
 
358
	 * Retourne une instance de manière unique
-
 
359
	 * @return l'instance unique du médiateur
366
	/**
360
	 */
-
 
361
	public static ImageMediateur Instance()
367
	 * Retourne une instance de manière unique
362
	{
368
	 * 
363
			if(!estInstancie)
369
	 * @return l'instance unique du médiateur
364
			{
370
	 */
365
				estInstancie = true ;
371
	public static ImageMediateur Instance() {
366
				return new ImageMediateur() ;
372
		if (!estInstancie) {
367
			}
373
			estInstancie = true;
-
 
374
			return new ImageMediateur();
-
 
375
		} else {
-
 
376
			return null;
368
			else
377
 
369
			{
378
		}
370
				return null ;
379
	}
371
				
380
 
372
			}
-
 
373
	}
381
	/**
374
	
-
 
375
	/**
382
	 * Retourne une instance de manière unique en lui associant un médiateur
376
	 * Retourne une instance de manière unique en lui associant un médiateur pour les observations
383
	 * pour les observations
377
	 * @param le médiateur des observations à associer
-
 
378
	 * @return l'instance unique du médiateur
384
	 * 
379
	 */
-
 
380
	public static ImageMediateur Instance(ObservationMediateur om)
385
	 * @param le
381
	{
386
	 *            médiateur des observations à associer
382
			if(!estInstancie)
387
	 * @return l'instance unique du médiateur
383
			{
388
	 */
384
				estInstancie = true ;
389
	public static ImageMediateur Instance(ObservationMediateur om) {
385
				return new ImageMediateur(om) ;
390
		if (!estInstancie) {
386
			}
391
			estInstancie = true;
-
 
392
			return new ImageMediateur(om);
387
			else
393
		} else {
388
			{
394
			return null;
389
				return null ;
395
 
390
				
-
 
391
			}
396
		}
392
	}
397
	}
393
	
398
 
394
	/**
399
	/**
395
	 * Renvoie l'identifiant de l'utilisateur en cours
400
	 * Renvoie l'identifiant de l'utilisateur en cours
-
 
401
	 * 
-
 
402
	 * @return l'identifiant de l'utilisateur
396
	 * @return l'identifiant de l'utilisateur
403
	 */
397
	 */
404
	public String getIdentifiant() {
398
	public String getIdentifiant()
405
		return identifiant;
399
	{
-
 
400
		return identifiant ;
406
	}
401
	}
407
 
402
	
408
	/**
403
	/**.
409
	 * . Setteur pour l'identifiant de l'utilisateur en cours
404
	 * Setteur pour l'identifiant de l'utilisateur en cours
410
	 * 
405
	 * @param id le nouvel identifiant utilisateur 
411
	 * @param id
-
 
412
	 *            le nouvel identifiant utilisateur
406
	 */
413
	 */
407
	public void setIdentifiant(String id)
414
	public void setIdentifiant(String id) {
408
	{
-
 
409
		identifiant = id ;
415
		identifiant = id;
410
	}
416
	}
411
	
417
 
Line 412... Line 418...
412
	/**
418
	/**
413
	 * Appelle les fonctions de chargement de données, suit généralement un appel
419
	 * Appelle les fonctions de chargement de données, suit généralement un
-
 
420
	 * appel à setIdentifiant, pour obtenir l'arbre des mots clés et les images
414
	 * à setIdentifiant, pour obtenir l'arbre des mots clés et les images du nouvel utilisateur
421
	 * du nouvel utilisateur
415
	 */
422
	 */
416
	public void changerUtilisateur()
423
	public void changerUtilisateur() {
417
	{
424
		getIModele().initialiserArbreMotsCles();
418
		getIModele().initialiserArbreMotsCles() ;
425
		obtenirPhotoGalerie(getGalerieImage());
Line 419... Line 426...
419
		obtenirPhotoGalerie(getGalerieImage()) ;
426
	}
420
	}
427
 
-
 
428
	/**
421
 
429
	 * Accesseur pour le modèle associé au médiateur
422
	/**
430
	 * 
423
	 * Accesseur pour le modèle associé au médiateur
431
	 * @return le modèle associé
424
	 * @return le modèle associé
432
	 */
425
	 */
433
	public ImageModele getIModele() {
Line 426... Line 434...
426
	public ImageModele getIModele() {
434
		return iModele;
427
		return iModele;
435
	}
-
 
436
 
428
	}
437
	/**
429
 
438
	 * Accesseur pour le panneau principal
430
	/**
439
	 * 
431
	 * Accesseur pour le panneau principal
440
	 * @return le panneau principal
432
	 * @return le panneau principal
441
	 */
Line 433... Line 442...
433
	 */
442
	public Panel getPanneauPrincipalImage() {
434
	public Panel getPanneauPrincipalImage() {
443
		return panneauPrincipalImage;
-
 
444
	}
435
		return panneauPrincipalImage;
445
 
436
	}
446
	/**
437
 
447
	 * Accesseur pour le panneau à onglets
438
	/**
448
	 * 
439
	 * Accesseur pour le panneau à onglets
449
	 * @return le panneau à onglets
Line 455... Line 465...
455
		return listeImage;
465
		return listeImage;
456
	}
466
	}
Line 457... Line 467...
457
 
467
 
458
	/**
468
	/**
-
 
469
	 * Accesseur pour le panneau "zoom"
459
	 * Accesseur pour le panneau "zoom"
470
	 * 
460
	 * @return le panneau zoom
471
	 * @return le panneau zoom
461
	 */
472
	 */
462
	public ZoomImageVue getZoomImage() {
473
	public ZoomImageVue getZoomImage() {
463
		return zoomImage;
474
		return zoomImage;
Line 464... Line 475...
464
	}
475
	}
465
 
476
 
-
 
477
	/**
466
	/**
478
	 * Accesseur pour le panneau détails et mot clés
467
	 * Accesseur pour le panneau détails et mot clés
479
	 * 
468
	 * @return le panneau détails et mots clés
480
	 * @return le panneau détails et mots clés
469
	 */
481
	 */
470
	public Panel getDetailsEtMotsCles() {
482
	public Panel getDetailsEtMotsCles() {
471
		return detailsEtMotsCles;
483
		return detailsEtMotsCles;
472
	}
484
	}
473
	
485
 
-
 
486
	/**
474
	/**
487
	 * Accesseur pour le booleen d'instanciation
475
	 * Accesseur pour le booleen d'instanciation
488
	 * 
476
	 * @return le booleen d'instanciation
489
	 * @return le booleen d'instanciation
477
	 */
490
	 */
478
	public static boolean isEstInstancie() {
491
	public static boolean isEstInstancie() {
Line 479... Line 492...
479
		return estInstancie;
492
		return estInstancie;
480
	}
493
	}
-
 
494
 
481
 
495
	/**
482
	/**
496
	 * Accesseur pour la panneau contenant le menu et les onglets images
483
	 * Accesseur pour la panneau contenant le menu et les onglets images
497
	 * 
484
	 * @return le panneauMenuEtOngletsImage
498
	 * @return le panneauMenuEtOngletsImage
485
	 */
499
	 */
Line 486... Line 500...
486
	public Panel getPanneauMenuEtOngletsImage() {
500
	public Panel getPanneauMenuEtOngletsImage() {
487
		return panneauMenuEtOngletsImage;
501
		return panneauMenuEtOngletsImage;
-
 
502
	}
488
	}
503
 
489
 
504
	/**
490
	/**
505
	 * Accesseur pour le menu image
491
	 * Accesseur pour le menu image
506
	 * 
492
	 * @return the menuImageVue
507
	 * @return the menuImageVue
Line 493... Line 508...
493
	 */
508
	 */
494
	public MenuImageVue getMenuImageVue() {
509
	public MenuImageVue getMenuImageVue() {
-
 
510
		return menuImageVue;
495
		return menuImageVue;
511
	}
496
	}
512
 
497
 
513
	/**
498
	/**
514
	 * Accesseur pour la barre d'outils
499
	 * Accesseur pour la barre d'outils
515
	 * 
Line 500... Line 516...
500
	 * @return the barreOutilsVue
516
	 * @return the barreOutilsVue
501
	 */
517
	 */
-
 
518
	public BarreOutilsVue getBarreOutilsVue() {
502
	public BarreOutilsVue getBarreOutilsVue() {
519
		return barreOutilsVue;
503
		return barreOutilsVue;
520
	}
504
	}
521
 
505
 
522
	/**
506
	/**
523
	 * Accesseur pour le panneau infos et métadonnées
Line 507... Line 524...
507
	 * Accesseur pour le panneau infos et métadonnées
524
	 * 
508
	 * @return the metadonneesIptcExif
525
	 * @return the metadonneesIptcExif
-
 
526
	 */
509
	 */
527
	public PanneauMetadonneesVue getMetadonneesIptcExif() {
510
	public PanneauMetadonneesVue getMetadonneesIptcExif() {
528
		return metadonneesIptcExif;
511
		return metadonneesIptcExif;
529
	}
512
	}
530
 
513
 
531
	/**
514
	/**
532
	 * Renvoie l'index du dernier onglet sélectionné
515
	 * Renvoie l'index du dernier onglet sélectionné
533
	 * 
516
	 * @return l'index du dernier onglet
534
	 * @return l'index du dernier onglet
-
 
535
	 */
517
	 */
536
	public int getDernierIndexOnglet() {
518
	public int getDernierIndexOnglet() {
537
		return dernierIndexOnglet;
519
		return dernierIndexOnglet;
538
	}
520
	}
-
 
521
	
539
 
522
	/**
540
	/**
523
	 * Accesseur pour l'arbre des filtres
541
	 * Accesseur pour l'arbre des filtres
524
	 * @return l'arbre pour filtrer les mots clés
542
	 * 
525
	 */
543
	 * @return l'arbre pour filtrer les mots clés
-
 
544
	 */
526
	public ArbreMotsClesFiltreVue getFiltreMotsCles()
545
	public ArbreMotsClesFiltreVue getFiltreMotsCles() {
527
	{
546
		return filtreMotsCles;
528
		return filtreMotsCles ;
547
	}
529
	}
-
 
530
	
548
 
531
	/**
549
	/**
532
	 * Accesseur pour la barre de recherche
550
	 * Accesseur pour la barre de recherche
533
	 * @return la barre de recherche pour filtrer les commentaires
551
	 * 
534
	 */
552
	 * @return la barre de recherche pour filtrer les commentaires
-
 
553
	 */
535
	public BarreRechercheFiltreVue getFiltreCommentaires()
554
	public BarreRechercheFiltreVue getFiltreCommentaires() {
536
	{
555
		return filtreCommentaires;
537
		return filtreCommentaires ;
556
	}
538
	}
-
 
539
	
557
 
540
	/**
558
	/**
541
	 * Renvoie la vue sélectionné par l'utilisateur
-
 
542
	 * @return la vue selectionnée par l'utilisateur
559
	 * Renvoie la vue sélectionné par l'utilisateur
-
 
560
	 * 
543
	 */
561
	 * @return la vue selectionnée par l'utilisateur
544
	public VueListable getVueSelectionnee()
562
	 */
545
	{
563
	public VueListable getVueSelectionnee() {
546
		Panel active = ongletsImage.getActiveTab() ;
-
 
547
		if(active != zoomImage)
-
 
548
		{
-
 
549
			if(active == galerieImage)
-
 
550
			{
564
		Panel active = ongletsImage.getActiveTab();
551
				return galerieImage ;
-
 
552
			}
565
		if (active != zoomImage) {
553
			else
-
 
554
			{
566
			if (active == galerieImage) {
555
				return listeImage ;
-
 
556
			}
567
				return galerieImage;
557
			
-
 
558
		}
568
			} else {
559
		else
-
 
560
		{
569
				return listeImage;
561
			if(dernierIndexOnglet == 0)
570
			}
Line 562... Line 571...
562
			{
571
 
563
				return galerieImage ;
572
		} else {
564
			}
573
			if (dernierIndexOnglet == 0) {
565
			else
574
				return galerieImage;
566
			{
575
			} else {
567
				return listeImage ;
576
				return listeImage;
-
 
577
			}
568
			}
578
 
569
 
579
		}
570
		}
580
 
571
		
-
 
572
	}
581
	}
573
	
582
 
574
	/**
-
 
575
	 * Renvoie l'identifiant de la vue en cours
583
	/**
-
 
584
	 * Renvoie l'identifiant de la vue en cours
576
	 * @return l'identifiant de la vue en cours de visualisation
585
	 * 
577
	 */
586
	 * @return l'identifiant de la vue en cours de visualisation
578
	public String getIdVueSelectionnee()
587
	 */
579
	{
-
 
580
		Panel active = ongletsImage.getActiveTab() ;
-
 
581
		if(active != zoomImage)
-
 
582
		{
-
 
583
			if(active == galerieImage)
588
	public String getIdVueSelectionnee() {
584
			{
-
 
585
				return galerieImage.getId() ;
589
		Panel active = ongletsImage.getActiveTab();
586
			}
-
 
587
			else
590
		if (active != zoomImage) {
588
			{
-
 
589
				return listeImage.getId() ;
591
			if (active == galerieImage) {
590
			}
-
 
591
			
592
				return galerieImage.getId();
592
		}
-
 
593
		else
593
			} else {
594
		{
594
				return listeImage.getId();
Line 595... Line 595...
595
			if(dernierIndexOnglet == 0)
595
			}
596
			{
596
 
597
				return galerieImage.getId() ;
597
		} else {
598
			}
598
			if (dernierIndexOnglet == 0) {
599
			else
599
				return galerieImage.getId();
600
			{
600
			} else {
-
 
601
				return listeImage.getId();
-
 
602
			}
-
 
603
 
601
				return listeImage.getId() ;
604
		}
-
 
605
 
602
			}
606
	}
603
 
607
 
604
		}
608
	/**
605
		
-
 
606
	}
609
	 * Met a jour les données provenant du modèle et synchronise les vues entre
607
	
610
	 * elles
608
	/**
611
	 * 
609
	 * Met a jour les données provenant du modèle et synchronise les vues entre elles 
612
	 * @param o
610
	 * @param o données de mises a jour pour les vues
613
	 *            données de mises a jour pour les vues
611
	 * @param r le refraichissable qui a demandé la mise a jour
614
	 * @param r
612
	 */
-
 
613
	public void synchroniserDonneesZoomListeGalerie(Object o, Rafraichissable r)
615
	 *            le refraichissable qui a demandé la mise a jour
614
	{		
-
 
615
		
616
	 */
616
		if(o instanceof Store) {
-
 
617
		
617
	public void synchroniserDonneesZoomListeGalerie(Object o, Rafraichissable r) {
618
			Store li = (Store)o ;
618
 
619
			
619
		if (o instanceof Store) {
620
			if(li.getCount() <= 0)
620
 
621
			{
621
			Store li = (Store) o;
622
				aucuneSelection() ;
622
 
623
			}
-
 
624
			else
623
			if (li.getCount() <= 0) {
625
			{
-
 
626
				selection() ;
-
 
627
			}
-
 
628
			
-
 
629
		}
-
 
630
		
-
 
631
		if(r != getGalerieImage())
-
 
632
		{
-
 
633
			getGalerieImage().rafraichir(o,false);
624
				aucuneSelection();
-
 
625
			} else {
-
 
626
				selection();
-
 
627
			}
-
 
628
 
-
 
629
		}
-
 
630
 
634
		}
631
		if (r != getGalerieImage()) {
635
		if(r != getZoomImage())
632
			getGalerieImage().rafraichir(o, false);
636
		{
633
		}
637
			getZoomImage().rafraichir(o,false);
634
		if (r != getZoomImage()) {
638
		}
635
			getZoomImage().rafraichir(o, false);
639
		if(r != getListeImage())
636
		}
640
		{
637
		if (r != getListeImage()) {
-
 
638
			getListeImage().rafraichir(o, false);
-
 
639
		}
641
			getListeImage().rafraichir(o,false);
640
 
642
		}
641
		aucuneSelection();
643
		
642
		demasquerChargement();
644
		aucuneSelection() ;
-
 
645
		demasquerChargement() ;
643
	}
646
	}
644
 
647
	
645
	/**
648
	/**
646
	 * envoie au modèle une demande de mise a jour
649
	 * envoie au modèle une demande de mise a jour
647
	 * 
650
	 * @param r la vue demandeuse de mise a jour
648
	 * @param r
-
 
649
	 *            la vue demandeuse de mise a jour
-
 
650
	 */
651
	 */
651
	public void obtenirPhotoGalerie(Rafraichissable r) {
-
 
652
		masquerChargement();
652
	public void obtenirPhotoGalerie(Rafraichissable r)
653
		getIModele().obtenirNombrePhotoGalerie(r);
653
	{
654
	}
654
		masquerChargement() ;
655
 
655
		getIModele().obtenirPhotoGalerie(r) ;
-
 
656
	}
656
	/**
657
	
657
	 * demande au modèle les métadonnées associées a une image
658
	/**
658
	 * 
659
	 * demande au modèle les métadonnées associées a une image
659
	 * @param r
660
	 * @param r la vue demandeuse de mise a jour
660
	 *            la vue demandeuse de mise a jour
-
 
661
	 * @param id
-
 
662
	 *            l'identifiant de l'image
661
	 * @param id l'identifiant de l'image
663
	 */
-
 
664
	public void obtenirMetadonnees(Rafraichissable r, String id) {
662
	 */
665
		getIModele().obtenirMetadonnees(r, id);
663
	public void obtenirMetadonnees(Rafraichissable r, String id)
666
	}
664
	{
667
 
665
		getIModele().obtenirMetadonnees(r, id) ;
-
 
666
	}
668
	/**
667
	
669
	 * demande au modèle les ids des mots clés associés a une image
668
	/**
670
	 * 
669
	 * demande au modèle les ids des mots clés associés a une image
671
	 * @param r
670
	 * @param r la vue demandeuse de mise a jour
672
	 *            la vue demandeuse de mise a jour
-
 
673
	 * @param id
-
 
674
	 *            l'identifiant de l'image
671
	 * @param id l'identifiant de l'image
675
	 */
672
	 */
676
	public void obtenirMotsClesId(Rafraichissable r, String id) {
673
	public void obtenirMotsClesId(Rafraichissable r, String id)
677
		getIModele().obtenirMotsClesId(r, id);
674
	{
-
 
675
		getIModele().obtenirMotsClesId(r, id) ;
678
	}
676
	}
679
 
677
	
680
	/**
678
	/**
681
	 * Envoie au modèle une demande pour obtenir l'arbre des mots clés
679
	 * Envoie au modèle une demande pour obtenir l'arbre des mots clés 
682
	 * 
680
	 * @param r le raffraichissable qui a demandé la mise à jour
683
	 * @param r
-
 
684
	 *            le raffraichissable qui a demandé la mise à jour
-
 
685
	 */
681
	 */
686
	public void obtenirArbreMotsCles(Rafraichissable r) {
-
 
687
		getIModele().obtenirArbreMotCle(r);
682
	public void obtenirArbreMotsCles(Rafraichissable r)
688
	}
683
	{
689
 
684
		getIModele().obtenirArbreMotCle(r) ;
690
	/**
685
	}
-
 
686
	
691
	 * envoie au modèle une demande de mise a jour des informations modifiables
687
	/**
692
	 * associées a une image
688
	 * envoie au modèle une demande de mise a jour des informations modifiables
693
	 * 
689
	 * associées a une image
694
	 * @param commentaires
690
	 * @param commentaires le commentaire de l'image
695
	 *            le commentaire de l'image
691
	 * @param date la date modifiée par l'utilisateur
696
	 * @param date
692
	 */
697
	 *            la date modifiée par l'utilisateur
693
	public void mettreAJourInfo(String commentaires, String date, String note)
698
	 */
-
 
699
	public void mettreAJourInfo(String commentaires, String date, String note) {
-
 
700
		String ids[] = getVueSelectionnee().getIdSelectionnees();
-
 
701
 
694
	{
702
		getIModele().mettreAJourCacheImage(commentaires, date, note, ids);
695
		String ids[] = getVueSelectionnee().getIdSelectionnees() ;
703
		getListeImage().mettreAjourInfos(commentaires, date, note);
696
		
704
	}
697
			getIModele().mettreAJourCacheImage(commentaires, date, note, ids) ;
-
 
698
			getListeImage().mettreAjourInfos(commentaires, date, note) ;
705
 
699
	}
706
	/**
700
	
707
	 * Met à jour l'arbre des mots clés affichés dans le volet de droite à
701
	/**
708
	 * partir de l'arbre passé en paramètre
702
	 * Met à jour l'arbre des mots clés affichés dans le volet de droite à partir de l'arbre passé en paramètre 
709
	 * 
703
	 * @param arbreMC le nouvel arbre des mots clés
710
	 * @param arbreMC
-
 
711
	 *            le nouvel arbre des mots clés
704
	 */
712
	 */
705
	public void rafraichirArbreMotsCles(Tree arbreMC)
713
	public void rafraichirArbreMotsCles(Tree arbreMC) {
706
	{
-
 
707
		metadonneesIptcExif.getPanneauMotsCles().rafraichir(arbreMC, false) ;
714
		metadonneesIptcExif.getPanneauMotsCles().rafraichir(arbreMC, false);
708
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false) ;
715
		filtres.getMotsClesFiltre().rafraichir(arbreMC, false);
709
	}
716
	}
710
	
717
 
711
	/**
718
	/**
-
 
719
	 * envoie au modèle une demande pour lancer le formulaire ou l'application
712
	 * envoie au modèle une demande pour lancer le formulaire ou l'application d'upload
720
	 * d'upload
-
 
721
	 */
-
 
722
	public void uploaderImages() {
713
	 */
723
		getIModele().uploaderImages();
714
	public void uploaderImages()
724
	}
715
	{
725
 
716
		getIModele().uploaderImages() ;
-
 
717
	}
726
	/**
718
	
727
	 * Envoie une demande au modèle pour obtenir toutes les données annexes de
719
	/**
728
	 * l'image (métadonnées, note, etc ...), on y centralise tous les appels a
720
	 * Envoie une demande au modèle pour obtenir toutes les données annexes de l'image (métadonnées, note, etc ...),
729
	 * obtenirQuelqueChose
721
	 * on y centralise tous les appels a obtenirQuelqueChose
730
	 * 
722
	 * @param imgNum l'identifiant de l'image
731
	 * @param imgNum
723
	 */
732
	 *            l'identifiant de l'image
-
 
733
	 */
-
 
734
	public void obtenirDonnes(String imgNum) {
724
	public void obtenirDonnes(String imgNum)
735
		obtenirMetadonnees(metadonneesIptcExif, imgNum);
-
 
736
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum);
725
	{
737
		obtenirNote(metadonneesIptcExif.getNoteVue(), imgNum);
726
		obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
738
	}
727
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum) ;
739
 
728
		obtenirNote(metadonneesIptcExif.getNoteVue(), imgNum) ;
740
	/**
729
	}
741
	 * Envoie une demande au modèle pour obtenir la note associée à une image
730
	
742
	 * 
Line 731... Line 743...
731
	/**
743
	 * @param noteVue
732
	 * Envoie une demande au modèle pour obtenir la note associée à une image
744
	 *            le rafraichissable à qui est destiné cette information
733
	 * @param noteVue le rafraichissable à qui est destiné cette information
745
	 * @param imgNum
-
 
746
	 *            l'identifiant de l'image
-
 
747
	 */
734
	 * @param imgNum l'identifiant de l'image
748
	private void obtenirNote(Rafraichissable r, String imgNum) {
-
 
749
 
735
	 */
750
		getIModele().obtenirNote(r, imgNum);
-
 
751
	}
736
	private void obtenirNote(Rafraichissable r, String imgNum) {
752
 
737
		
753
	/**
738
		getIModele().obtenirNote(r,imgNum) ;	
754
	 * est appelé lors d'un clic de souris sur une vignette dans la galerie le
739
	}
-
 
740
 
-
 
741
	/**
755
	 * médiateur gère alors les conséquences
742
	 * est appelé lors d'un clic de souris sur une vignette dans la galerie
756
	 * 
743
	 * le médiateur gère alors les conséquences
-
 
-
 
757
	 * @param index
744
	 * @param index l'index du noeud dans la galerie
758
	 *            l'index du noeud dans la galerie
745
	 * @param node le noeud selectionné
-
 
-
 
759
	 * @param node
746
	 * @param e l'object source de l'évenement
760
	 *            le noeud selectionné
747
	 */
761
	 * @param e
748
	public void clicGalerieImage(int index, Element node,
762
	 *            l'object source de l'évenement
749
			EventObject e)
763
	 */
750
	{
764
	public void clicGalerieImage(int index, Element node, EventObject e) {
751
		Record rd = getGalerieImage().getDView().getRecord(node) ;
765
		Record rd = getGalerieImage().getDView().getRecord(node);
752
		String imgUrl = rd.getAsString("url_image");
-
 
753
		
766
		String imgUrl = rd.getAsString("url_image");
754
		String[] imgXY = getIModele().obtenirTailleImage(rd.getAsString("num_image")) ;
767
		String imgNum = rd.getAsString("num_image");
755
		
768
		String[] imgXY = getIModele().obtenirTailleImage(
756
		String[] infosImage = {imgUrl , imgXY[0] , imgXY[1] } ; 
769
				rd.getAsString("num_image"));
757
		
-
 
758
		getZoomImage().rafraichir(infosImage,false);
770
		String[] infosImage = { imgUrl, imgXY[0], imgXY[1], imgNum };
759
		dernierIndexOnglet = 0 ;
771
 
760
		
772
		getZoomImage().rafraichir(infosImage, false);
761
		if(DOM.eventGetType(e.getBrowserEvent()) == Event.ONDBLCLICK)
773
		dernierIndexOnglet = 0;
762
		{
774
 
763
			
775
		if (DOM.eventGetType(e.getBrowserEvent()) == Event.ONDBLCLICK) {
764
			getOngletsImage().setActiveTab(2);
776
 
-
 
777
			getOngletsImage().setActiveTab(2);
-
 
778
		}
765
		}
779
 
766
		
780
		obtenirDonnes(imgNum);
767
		String imgNum = rd.getAsString("num_image");
781
 
768
		obtenirDonnes(imgNum) ;
-
 
769
		
782
	}
770
	}
783
 
771
	
-
 
772
	/**
-
 
773
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste
-
 
774
	 * le médiateur gère alors les conséquences
-
 
775
	 * @param rowIndex le numéro de ligne selectionné
-
 
776
	 */
-
 
777
	public void clicListeImage(int rowIndex)
-
 
778
	{
-
 
779
		Record rd = getListeImage().getSelectionModel().getSelected() ;
-
 
780
		String imgUrl = rd.getAsString("url_image");
784
	/**
-
 
785
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste le
-
 
786
	 * médiateur gère alors les conséquences
-
 
787
	 * 
-
 
788
	 * @param rowIndex
-
 
789
	 *            le numéro de ligne selectionné
-
 
790
	 */
-
 
791
	public void clicListeImage(int rowIndex) {
-
 
792
		Record rd = getListeImage().getSelectionModel().getSelected();
781
		
793
		String imgUrl = rd.getAsString("url_image");
782
		String[] imgXY = getIModele().obtenirTailleImage(rd.getAsString("num_image")) ;
794
		String imgNum = rd.getAsString("num_image");
783
		
795
		String[] imgXY = getIModele().obtenirTailleImage(
784
		String[] infosImage = {imgUrl , imgXY[0] , imgXY[1] } ; 
796
				rd.getAsString("num_image"));
785
		
797
		String[] infosImage = { imgUrl, imgXY[0], imgXY[1], imgNum };
-
 
798
 
786
		getZoomImage().rafraichir(infosImage,false);
799
		getZoomImage().rafraichir(infosImage, false);
787
		
800
 
788
		dernierIndexOnglet = 1 ;
801
		dernierIndexOnglet = 1;
789
		
-
 
790
		String imgNum = rd.getAsString("num_image");
802
 
791
		obtenirDonnes(imgNum) ;
803
		obtenirDonnes(imgNum);
792
	}
804
	}
793
	
805
 
794
	/**
806
	/**
795
	 * gestion du double clic dans la liste
807
	 * gestion du double clic dans la liste
796
	 * @param rowIndex
808
	 * 
797
	 */
809
	 * @param rowIndex
798
	public void doubleClicListeImage(int rowIndex)
-
 
799
	{
810
	 */
800
		clicListeImage(rowIndex) ;
811
	public void doubleClicListeImage(int rowIndex) {
801
		getOngletsImage().setActiveTab(2);
812
		clicListeImage(rowIndex);
802
	}
813
		getOngletsImage().setActiveTab(2);
803
	
814
	}
-
 
815
 
-
 
816
	/**
804
	/**
817
	 * envoie une demande de mise a jour des données au modèle
805
	 * envoie une demande de mise a jour des données au modèle
818
	 */
806
	 */
819
	public void rafraichirToutesVues() {
807
	public void rafraichirToutesVues()
-
 
808
	{
820
		obtenirPhotoGalerie(getIModele());
809
		obtenirPhotoGalerie(getIModele());
821
	}
810
	}
822
 
811
	
823
	/**
812
	/**
824
	 * montre le menu au coordonnées indiquées
813
	 * montre le menu au coordonnées indiquées
825
	 * 
814
	 * @param e l'objet source de l'évenement
826
	 * @param e
815
	 */
-
 
816
	public void montrerContextMenu(EventObject e)
827
	 *            l'objet source de l'évenement
817
	{
828
	 */
818
		menuImageVue.showAt(e.getXY()) ;
829
	public void montrerContextMenu(EventObject e) {
819
	}
830
		menuImageVue.showAt(e.getXY());
820
	
831
	}
-
 
832
 
-
 
833
	/**
821
	/**
834
	 * appelé lors du double clic sur l'image agrandie
822
	 * appelé lors du double clic sur l'image agrandie
835
	 */
823
	 */
836
	public void doubleClicZoomImage() {
824
	public void doubleClicZoomImage()
-
 
825
	{
837
		getOngletsImage().setActiveTab(dernierIndexOnglet);
826
		getOngletsImage().setActiveTab(dernierIndexOnglet);
838
	}
827
	}
839
 
828
	
840
	/**
829
	/**
841
	 * appelé lors du clic sur un des boutons de la zone zoom
830
	 * appelé lors du clic sur un des boutons de la zone zoom
842
	 * 
831
	 * @param arg le nom du bouton qui a cliqué 
843
	 * @param arg
832
	 */
844
	 *            le nom du bouton qui a cliqué
833
	public void clicBoutonZoomImage(String arg)
-
 
834
	{
845
	 */
835
		
846
	public void clicBoutonZoomImage(String arg) {
836
		Store st ;
847
 
837
		int selected ;
848
		Store st;
838
		int storeIndex ;
-
 
839
		Record nRec = null ;
849
		int selected;
840
		
850
		int storeIndex;
841
		// tout d'abord on obtient les index selectionnés suivant la vue
851
		Record nRec = null;
842
		if(getVueSelectionnee() == galerieImage)
852
 
843
		{
853
		// tout d'abord on obtient les index selectionnés suivant la vue
844
			DataView dv = getGalerieImage().getDView();
-
 
845
			st = getGalerieImage().getSt();
854
		if (getVueSelectionnee() == galerieImage) {
846
			
-
 
847
			if(st.getCount() <= 0)
855
			DataView dv = getGalerieImage().getDView();
848
			{
856
			st = getGalerieImage().getSt();
849
				return ;
857
 
850
			}
-
 
851
			
858
			if (st.getCount() <= 0) {
852
			selected = st.indexOf(dv.getSelectedRecords()[0]);
859
				return;
853
			storeIndex = dv.indexOf(selected);
860
			}
854
		}
861
 
855
		else
862
			selected = st.indexOf(dv.getSelectedRecords()[0]);
856
		{
863
			storeIndex = dv.indexOf(selected);
857
			st = listeImage.getSt() ;
864
		} else {
858
			
865
			st = listeImage.getSt();
859
			if(st.getCount() <= 0)
-
 
860
			{
866
 
861
				return ;
867
			if (st.getCount() <= 0) {
862
			}
868
				return;
863
			
869
			}
864
			selected = st.indexOf(listeImage.getSelectionModel().getSelected()) ;
870
 
865
			storeIndex = selected ;
871
			selected = st.indexOf(listeImage.getSelectionModel().getSelected());
866
		}
-
 
867
		
872
			storeIndex = selected;
868
		if(arg.equals("prev"))
-
 
869
		{
873
		}
870
			// si la photo séléctionnée est la première, on passe a la
874
 
871
			// dernière
875
		if (arg.equals("prev")) {
872
			if (selected == 0) {
-
 
873
				storeIndex = st.getCount() - 1 ;
876
			// si la photo séléctionnée est la première, on passe a la
874
				nRec = st.getAt(storeIndex);
877
			// dernière
875
	
878
			if (selected == 0) {
876
			} 
879
				storeIndex = st.getCount() - 1;
877
			else 
-
 
878
			{
880
				nRec = st.getAt(storeIndex);
879
				storeIndex = storeIndex - 1 ;
881
 
880
				nRec = st.getAt(storeIndex);
882
			} else {
881
			}
883
				storeIndex = storeIndex - 1;
882
			
884
				nRec = st.getAt(storeIndex);
883
			
885
			}
884
		}
-
 
885
		
886
 
886
		if(arg.equals("suiv"))
-
 
887
		{
887
		}
888
			// si la photo selectionnée est la dernière on passe a la
888
 
889
			// première
889
		if (arg.equals("suiv")) {
890
			if (selected == st.getCount() - 1) {
890
			// si la photo selectionnée est la dernière on passe a la
891
				
891
			// première
892
				storeIndex = 0 ;
892
			if (selected == st.getCount() - 1) {
893
				nRec = st.getAt(0);
-
 
894
			} 
893
 
-
 
894
				storeIndex = 0;
895
			else 
895
				nRec = st.getAt(0);
-
 
896
			} else {
896
			{
897
				storeIndex = storeIndex + 1;
897
				storeIndex = storeIndex + 1 ;
898
				nRec = st.getAt(storeIndex);
898
				nRec = st.getAt(storeIndex);
899
			}
899
			}
900
		}
900
		}
-
 
901
		
901
 
902
		if(nRec != null)
902
		if (nRec != null) {
903
		{
903
			String imgUrl = nRec.getAsString("url_image");
904
			String imgUrl = nRec.getAsString("url_image");			
904
			String imgNum = nRec.getAsString("num_image");
905
			String[] imgXY = getIModele().obtenirTailleImage(nRec.getAsString("num_image")) ;			
-
 
906
			String[] infosImage = {imgUrl , imgXY[0] , imgXY[1] } ; 			
905
			String[] imgXY = getIModele().obtenirTailleImage(
907
			getZoomImage().rafraichir(infosImage,false);
906
					nRec.getAsString("num_image"));
908
			
907
			String[] infosImage = { imgUrl, imgXY[0], imgXY[1], imgNum };
909
			if(getGalerieImage().isRendered())
-
 
910
			{
908
			getZoomImage().rafraichir(infosImage, false);
911
				getGalerieImage().getDView().select(storeIndex);
909
 
912
			}
910
			if (getGalerieImage().isRendered()) {
913
			
-
 
Line 914... Line 911...
914
			if(getListeImage().isRendered())
911
				getGalerieImage().getDView().select(storeIndex);
915
			{
912
			}
-
 
913
 
-
 
914
			if (getListeImage().isRendered()) {
916
				getListeImage().getSelectionModel().selectRecords(nRec) ;
915
				getListeImage().getSelectionModel().selectRecords(nRec);
917
			}
916
			}
918
			
917
 
919
			String imgNum = nRec.getAsString("num_image");
918
			obtenirDonnes(imgNum);
920
			obtenirDonnes(imgNum) ;
919
		}
921
		}
-
 
922
	}
920
	}
923
	
921
 
924
 
922
	/**
925
	/**
923
	 * synchronise la selection entre la galerie et la liste
926
	 * synchronise la selection entre la galerie et la liste
924
	 * 
927
	 * @param string le nom de la vue qui doit être synchronisee
-
 
928
	 */
925
	 * @param string
929
	public void synchroniserSelection(String string) {
926
	 *            le nom de la vue qui doit être synchronisee
930
		
927
	 */
931
		if(string.equals("galerie") && getDernierIndexOnglet() != 2)
928
	public void synchroniserSelection(String string) {
932
		{
929
 
933
				Record[] sel = getGalerieImage().getDView().getSelectedRecords() ;
930
		if (string.equals("galerie") && getDernierIndexOnglet() != 2) {
934
				getListeImage().selectionnerEnregistrements(sel) ;
931
			Record[] sel = getGalerieImage().getDView().getSelectedRecords();
935
		}
932
			getListeImage().selectionnerEnregistrements(sel);
936
		
933
		}
937
		if(string.equals("liste") && getDernierIndexOnglet() != 0)
934
 
938
		{
935
		if (string.equals("liste") && getDernierIndexOnglet() != 0) {
939
		
936
 
940
				Record[] sel = getListeImage().getSelectionModel().getSelections() ;
937
			Record[] sel = getListeImage().getSelectionModel().getSelections();
Line 941... Line 938...
941
				int[] ids = new int[sel.length] ;
938
			int[] ids = new int[sel.length];
942
				
939
 
943
				for (int i = 0; i < sel.length; i++) {
940
			for (int i = 0; i < sel.length; i++) {
944
					
941
 
945
					ids[i] = getGalerieImage().getSt().indexOf(sel[i]) ;
942
				ids[i] = getGalerieImage().getSt().indexOf(sel[i]);
946
				}
943
			}
947
				
944
 
948
				getGalerieImage().selectionnerImages(ids) ;
945
			getGalerieImage().selectionnerImages(ids);
949
		}
-
 
950
		
946
		}
951
	}
-
 
952
 
947
 
953
	/**
-
 
954
	 * fait une demande de suppression des images (en local et en distant)
948
	}
955
	 * des images selectionnees
-
 
956
	 */
949
 
957
	public void supprimerImages() {
-
 
958
		
-
 
959
		String[] ids = null ;
-
 
960
		
-
 
961
		
-
 
962
			if(dernierIndexOnglet == 0)
-
 
963
			{
-
 
964
				ids = getGalerieImage().getIdSelectionnees() ;
-
 
965
			}
-
 
966
			else
-
 
967
			{
-
 
968
				ids = getListeImage().getIdSelectionnees() ;
-
 
969
			}
950
	/**
-
 
951
	 * fait une demande de suppression des images (en local et en distant) des
-
 
952
	 * images selectionnees
-
 
953
	 */
-
 
954
	public void supprimerImages() {
-
 
955
 
-
 
956
		String[] ids = null;
-
 
957
 
-
 
958
		if (dernierIndexOnglet == 0) {
970
			
959
			ids = getGalerieImage().getIdSelectionnees();
971
		if(ids.length > 0)
960
		} else {
972
		{
961
			ids = getListeImage().getIdSelectionnees();
973
			
962
		}
974
			if(com.google.gwt.user.client.Window
963
 
975
					.confirm("Supprimer les images selectionnees ?"))
964
		if (ids.length > 0) {
Line 976... Line 965...
976
			{
965
 
977
				masquerChargement() ;
966
			if (com.google.gwt.user.client.Window
-
 
967
					.confirm("Supprimer les images selectionnees ?")) {
978
				getIModele().supprimerImages(ids) ;
968
				masquerChargement();
979
				aucuneSelection() ;
969
				getIModele().supprimerImages(ids);
980
			}
970
				aucuneSelection();
-
 
971
			}
981
		}
972
		} else {
982
		else
-
 
983
		{
973
			Window.alert("Impossible de supprimer : aucune image selectionnee");
984
			Window.alert("Impossible de supprimer : aucune image selectionnee") ;
974
		}
985
		}
975
 
986
		
976
	}
987
	}
977
 
988
 
978
	/**
989
	/**
979
	 * desactive les onglets de metadonnees et de zoom (dans le cas ou rien
990
	 * desactive les onglets de metadonnees et de zoom (dans le cas ou rien n'est selectionne)
980
	 * n'est selectionne)
991
	 */
981
	 */
992
	public void aucuneSelection() {
982
	public void aucuneSelection() {
-
 
983
 
993
		
984
		if (getListeImage().getSelectionModel().getCount() <= 0
994
		if(getListeImage().getSelectionModel().getCount() <= 0 && getGalerieImage().getDView().getSelectionCount() <= 0)
985
				&& getGalerieImage().getDView().getSelectionCount() <= 0) {
995
		{
986
			getZoomImage().disable();
996
			getZoomImage().disable() ;
987
			getMetadonneesIptcExif().desactiverPanneau();
997
			getMetadonneesIptcExif().desactiverPanneau() ;
-
 
998
			getZoomImage().desactiverPanneau() ;
988
			getZoomImage().desactiverPanneau();
999
			setSelection(false) ;
989
			setSelection(false);
1000
		}
990
		}
1001
		
991
 
1002
	}
992
	}
1003
	
993
 
Line 1004... Line 994...
1004
	/**
994
	/**
1005
	 * reactive les onglet metadonnees et zoom (lors d'une selection alors qu'il n'y en avait pas)
995
	 * reactive les onglet metadonnees et zoom (lors d'une selection alors qu'il
-
 
996
	 * n'y en avait pas)
-
 
997
	 */
-
 
998
	public void selection() {
1006
	 */
999
 
-
 
1000
		if (!isSelection()) {
1007
	public void selection() {
1001
			getMetadonneesIptcExif().activerPanneau();
-
 
1002
			getZoomImage().activerPanneau();
1008
		
1003
			getZoomImage().enable();
-
 
1004
			setSelection(true);
1009
		if(!isSelection())
1005
		}
1010
		{
1006
	}
1011
			getMetadonneesIptcExif().activerPanneau() ;
1007
 
1012
			getZoomImage().activerPanneau() ;
1008
	/**
1013
			getZoomImage().enable() ;
1009
	 * Fait apparaitre le menu contextuel de l'arbre des mots clés au niveau
-
 
1010
	 * d'un noeud donné
1014
			setSelection(true);
1011
	 * 
-
 
1012
	 * @param n
1015
		}
1013
	 *            le noeud ou le menu doit apparaitre
1016
	}
1014
	 * @param ev
1017
 
1015
	 *            l'objet contenant les données sur l'évenement
1018
	/**
1016
	 * @param te
1019
	 * Fait apparaitre le menu contextuel de l'arbre des mots clés au niveau d'un noeud donné
1017
	 *            l'éditeur associé à l'arbre qui permet de modifier les
1020
	 * @param n le noeud ou le menu doit apparaitre
-
 
1021
	 * @param ev l'objet contenant les données sur l'évenement
1018
	 *            libellés des noeuds
1022
	 * @param te l'éditeur associé à l'arbre qui permet de modifier les libellés des noeuds
1019
	 */
1023
	 */
-
 
1024
	public void montrerContextMenuArbre(final TreeNode n, EventObject ev, final TreeEditor te)
1020
	public void montrerContextMenuArbre(final TreeNode n, EventObject ev,
1025
	{
-
 
1026
		Menu mn = new Menu() ;
1021
			final TreeEditor te) {
-
 
1022
		Menu mn = new Menu();
1027
		final com.gwtext.client.widgets.menu.Item ajoutN = new Item("Ajouter mot cle");
1023
		final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
1028
		final com.gwtext.client.widgets.menu.Item suppN = new Item("Supprimer mot cle");
1024
				"Ajouter mot cle");
1029
		
-
 
1030
		mn.addItem(ajoutN);
1025
		final com.gwtext.client.widgets.menu.Item suppN = new Item(
-
 
1026
				"Supprimer mot cle");
1031
		mn.addItem(suppN);
1027
 
1032
		
1028
		mn.addItem(ajoutN);
1033
		mn.addListener(new MenuListenerAdapter() {
1029
		mn.addItem(suppN);
1034
			
1030
 
1035
			
1031
		mn.addListener(new MenuListenerAdapter() {
1036
			public void onItemClick(BaseItem item, EventObject e)
1032
 
1037
			{	
1033
			public void onItemClick(BaseItem item, EventObject e) {
1038
				if(item.equals(suppN))
1034
				if (item.equals(suppN)) {
1039
				{
1035
					getMetadonneesIptcExif().getPanneauMotsCles()
1040
					getMetadonneesIptcExif().getPanneauMotsCles().supprimerNoeud(n) ;
1036
							.supprimerNoeud(n);
-
 
1037
				}
-
 
1038
				if (item.equals(ajoutN)) {
-
 
1039
					getMetadonneesIptcExif().getPanneauMotsCles().ajouterNoeud(
1041
				}
1040
							n);
-
 
1041
				}
1042
				if(item.equals(ajoutN))
1042
			}
1043
				{
1043
		});
1044
					getMetadonneesIptcExif().getPanneauMotsCles().ajouterNoeud(n) ;
1044
 
1045
				}
1045
		mn.showAt(ev.getXY());
1046
			}
1046
 
1047
		});
1047
	}
1048
		
1048
 
Line 1049... Line 1049...
1049
		mn.showAt(ev.getXY());
1049
	/**
1050
		
1050
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
1051
	}
1051
	 * mot clé
-
 
1052
	 * 
-
 
1053
	 * @param text
1052
	
1054
	 *            le texte du mot clé
-
 
1055
	 * @param id
-
 
1056
	 *            l'identifiant du mot clé
1053
	/**
1057
	 */
1054
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du mot clé
1058
	public void mettreAjourMotsClesId(String text, String id) {
1055
	 * @param text le texte du mot clé
1059
 
1056
	 * @param id l'identifiant du mot clé
1060
		getIModele().mettreAjourMotsClesId(text, id);
1057
	 */
1061
 
1058
	public void mettreAjourMotsClesId(String text, String id) {
1062
	}
1059
		
1063
 
1060
		getIModele().mettreAjourMotsClesId(text, id) ;
1064
	/**
1061
		
1065
	 * Récupère les identifiants des images selectionnés et appelle le modèle
1062
	}
1066
	 * pour qu'il mette à jour les associations mots clés/images
1063
 
1067
	 * 
-
 
1068
	 * @param motsClesEnCours
-
 
1069
	 *            les mots clés à associer aux images selectionnés séparés par
-
 
1070
	 *            une ','
1064
	/**
1071
	 * @param arbreMC
-
 
1072
	 *            l'arbre des mots clés à mettre à jour
1065
	 * Récupère les identifiants des images selectionnés
1073
	 */
1066
	 * et appelle le modèle pour qu'il mette à jour les associations mots clés/images
1074
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
1067
	 * @param motsClesEnCours les mots clés à associer aux images selectionnés séparés par une ','
1075
 
1068
	 * @param arbreMC l'arbre des mots clés à mettre à jour
-
 
1069
	 */
1076
		String[] ids = getGalerieImage().getIdSelectionnees();
1070
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
1077
		getIModele().mettreAjourMotsCles(ids, motsClesEnCours, arbreMC);
1071
		
1078
 
1072
		String[] ids = getGalerieImage().getIdSelectionnees() ;
1079
	}
Line 1073... Line 1080...
1073
		getIModele().mettreAjourMotsCles(ids,motsClesEnCours,arbreMC) ;
1080
 
1074
		
1081
	/**
-
 
1082
	 * Appelle le médiateur pour qu'il ajoute un mot clé dans l'arbre des mots
-
 
1083
	 * clés
-
 
1084
	 * 
1075
	}
1085
	 * @param n
-
 
1086
	 *            le noeud à ajouter à l'arbre
1076
	
1087
	 * @param arbreMC
1077
	/**
1088
	 *            le nouvel arbre de mots clés à mettre à jour
1078
	 * Appelle le médiateur pour qu'il ajoute un mot clé dans l'arbre des mots clés
1089
	 */
1079
	 * @param n le noeud à ajouter à l'arbre
1090
	public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) {
1080
	 * @param arbreMC le nouvel arbre de mots clés à mettre à jour
1091
		getIModele().ajouterMotCleDansArbre(n, arbreMC);
1081
	 */
1092
		filtres.getMotsClesFiltre().rafraichir(n, false);
1082
	public void ajouterMotCleDansArbre(TreeNode n,Tree arbreMC)
1093
 
1083
	{
1094
	}
Line 1084... Line 1095...
1084
		getIModele().ajouterMotCleDansArbre(n, arbreMC) ;
1095
 
1085
		filtres.getMotsClesFiltre().rafraichir(n, false) ;
1096
	/**
-
 
1097
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre
-
 
1098
	 * dans l'arbre des mots clés
-
 
1099
	 * 
1086
		
1100
	 * @param n
-
 
1101
	 *            le noeud à supprimer
1087
	}
1102
	 * @param arbreMC
1088
 
1103
	 *            le nouvel arbre de mots clés à mettre à jour
1089
	/**
1104
	 */
1090
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre dans l'arbre des mots clés
1105
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1091
	 * @param n le noeud à supprimer
1106
 
1092
	 * @param arbreMC le nouvel arbre de mots clés à mettre à jour
1107
		getIModele().supprimerMotCleDansArbre(n, arbreMC);
1093
	 */
1108
		filtres.getMotsClesFiltre().rafraichir(n.getId(), false);
1094
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1109
 
1095
		
1110
	}
1096
		getIModele().supprimerMotCleDansArbre(n,arbreMC) ;
1111
 
1097
		filtres.getMotsClesFiltre().rafraichir(n.getId(), false) ;
1112
	/**
-
 
1113
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots
-
 
1114
	 * clés
-
 
1115
	 * 
1098
		
1116
	 * @param n
-
 
1117
	 *            le noeud à modifier
1099
	}
1118
	 * @param arbreMC
1100
 
1119
	 *            le nouvel arbre de mots clés à mettre à jour
1101
	/**
1120
	 */
1102
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots clés
1121
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
1103
	 * @param n le noeud à modifier
1122
 
1104
	 * @param arbreMC le nouvel arbre de mots clés à mettre à jour
1123
		getIModele().modifierMotCleDansArbre(n, arbreMC);
1105
	 */
1124
		filtres.getMotsClesFiltre().rafraichir(n, false);
Line 1106... Line 1125...
1106
	public void modifierMotCleDansArbre(TreeNode n , Tree arbreMC) {
1125
 
1107
		
1126
	}
1108
		getIModele().modifierMotCleDansArbre(n,arbreMC) ;
1127
 
1109
		filtres.getMotsClesFiltre().rafraichir(n, false) ;
1128
	/**
1110
		
1129
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans
1111
	}
1130
	 * l'arbre des mots clés
-
 
1131
	 * 
1112
	
1132
	 * @param n
Line 1113... Line 1133...
1113
	/**
1133
	 *            le noeud à déplacer
1114
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans l'arbre des mots clés
1134
	 * @param arbreMC
-
 
1135
	 *            le nouvel arbre de mots clés à mettre à jour
-
 
1136
	 */
1115
	 * @param n le noeud à déplacer
1137
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1116
	 * @param arbreMC le nouvel arbre de mots clés à mettre à jour
1138
 
1117
	 */
1139
		getIModele().deplacerMotCleDansArbre(n, arbreMC);
1118
	public void deplacerMotCleDansArbre(TreeNode n , Tree arbreMC) {
1140
		filtres.getMotsClesFiltre().rafraichir(n, false);
1119
		
1141
	}
1120
		getIModele().deplacerMotCleDansArbre(n, arbreMC) ;
1142
 
1121
		filtres.getMotsClesFiltre().rafraichir(n, false) ;
1143
	/**
1122
	}
1144
	 * initialise les mots clés cochés par rapport aux images sélectionnées
1123
 
1145
	 */
1124
	/**
1146
	public void initialiserMotsCleCoches() {
1125
	 * initialise les mots clés cochés par rapport aux images sélectionnées
1147
 
1126
	 */
1148
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(),
1127
	public void initialiserMotsCleCoches() {
1149
				getGalerieImage().getIdSelectionnees()[0]);
1128
		
1150
	}
1129
		obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), getGalerieImage().getIdSelectionnees()[0]) ;
1151
 
1130
	}
1152
	/**
1131
 
1153
	 * Appelle le modèle pour lui demander les données d'une page à afficher
-
 
1154
	 * 
-
 
1155
	 * @param pageCourante
1132
	/**
1156
	 *            le numéro de page à affciher
1133
	 * Appelle le modèle pour lui demander les données d'une page à afficher
1157
	 */
1134
	 * @param pageCourante le numéro de page à affciher
1158
	public void changerNumeroPage(int pageCourante) {
1135
	 */
-
 
1136
	public void changerNumeroPage(int pageCourante) {
1159
 
1137
		
1160
		// on met le mesage d'attente
1138
		// on met le mesage d'attente
1161
		masquerChargement();
1139
		masquerChargement() ;
1162
 
1140
		
1163
		// on appelle le modèle
1141
		// on appelle le modèle
1164
		getIModele().changerNumeroPage(pageCourante);
1142
		getIModele().changerNumeroPage(pageCourante) ;
1165
 
1143
		
1166
		// et met à jour les numéros de page dans les barre d'outils
-
 
1167
		getGalerieImage().getToolBarVue().changerPageCourante(pageCourante);
1144
		// et met à jour les numéros de page dans les barre d'outils
1168
		getListeImage().getToolBarVue().changerPageCourante(pageCourante);
-
 
1169
	}
1145
		getGalerieImage().getToolBarVue().changerPageCourante(pageCourante);
1170
 
Line 1146... Line 1171...
1146
		getListeImage().getToolBarVue().changerPageCourante(pageCourante);
1171
	/**
1147
	}
1172
	 * Appelle le modèle pour qu'il change la taille de page utilisée
-
 
1173
	 * 
-
 
1174
	 * @param nouvelleTaillePage
1148
	
1175
	 *            la nouvelle taille de page
-
 
1176
	 */
1149
	/**
1177
	public void changerTaillePage(int nouvelleTaillePage) {
-
 
1178
		// on met le message d'attente
1150
	 * Appelle le modèle pour qu'il change la taille de page utilisée
1179
		masquerChargement();
-
 
1180
 
1151
	 * @param nouvelleTaillePage la nouvelle taille de page
1181
		// on appelle le modèle
1152
	 */
1182
		getIModele().changerTaillePage(nouvelleTaillePage);
1153
	public void changerTaillePage(int nouvelleTaillePage)
1183
 
1154
	{
-
 
-
 
1184
		// et on met à jour la taille de page dans les barres d'outils
1155
		// on met le message d'attente
1185
		getGalerieImage().getToolBarVue().selectionnerTaillePage(
1156
		masquerChargement() ;
1186
				nouvelleTaillePage);
1157
		
1187
		getListeImage().getToolBarVue().selectionnerTaillePage(
1158
		// on appelle le modèle 
1188
				nouvelleTaillePage);
1159
		getIModele().changerTaillePage(nouvelleTaillePage) ;
1189
	}
1160
		
1190
 
1161
		// et on met à jour la taille de page dans les barres d'outils
1191
	/**
1162
		getGalerieImage().getToolBarVue().selectionnerTaillePage(nouvelleTaillePage);
1192
	 * Met à jour les barre d'outils avec des nouvelles valeurs
1163
		getListeImage().getToolBarVue().selectionnerTaillePage(nouvelleTaillePage);
1193
	 * 
-
 
1194
	 * @param pageMax
1164
	}
1195
	 *            le nombre de pages
1165
 
1196
	 * @param pageEncours
1166
	/**
-
 
1167
	 * Met à jour les barre d'outils avec des nouvelles valeurs
1197
	 *            la page en cours
1168
	 * @param pageMax le nombre de pages
1198
	 * @param taillePage
1169
	 * @param pageEncours la page en cours
1199
	 *            la taille de page
1170
	 * @param taillePage la taille de page
-
 
1171
	 * @param nbElement le nombre d'élements par page
1200
	 * @param nbElement
1172
	 */
1201
	 *            le nombre d'élements par page
1173
	public void changerPageMaxEtCourante(int pageMax, int pageEncours, int taillePage, int nbElement) 
1202
	 */
1174
	{
1203
	public void changerPageMaxEtCourante(int pageMax, int pageEncours,
1175
				
1204
			int taillePage, int nbElement) {
1176
		int[] pages = {pageMax,pageEncours, taillePage, nbElement} ;
1205
 
-
 
1206
		int[] pages = { pageMax, pageEncours, taillePage, nbElement };
1177
		getGalerieImage().getToolBarVue().rafraichir(pages, false) ;
1207
		getGalerieImage().getToolBarVue().rafraichir(pages, false);
1178
		getListeImage().getToolBarVue().rafraichir(pages, false) ;
1208
		getListeImage().getToolBarVue().rafraichir(pages, false);
1179
		
-
 
1180
	}
1209
 
1181
	
1210
	}
1182
	/**
-
 
1183
	 * Recherche l'élement actuellement affiché et affiche son message de chargement
1211
 
1184
	 */
1212
	/**
1185
	public void masquerChargement()
1213
	 * Recherche l'élement actuellement affiché et affiche son message de
Line 1186... Line -...
1186
	{
-
 
1187
			ExtElement masked = Ext.get(getIdVueSelectionnee()) ;
1214
	 * chargement
1188
			
-
 
1189
			if(masked != null && !masked.isMasked())
1215
	 */
1190
			{
1216
	public void masquerChargement() {
1191
				masked.mask("Chargement",true) ;
1217
		ExtElement masked = Ext.get(getIdVueSelectionnee());
1192
			}
1218
 
1193
	}
1219
		if (masked != null && !masked.isMasked()) {
1194
	
1220
			masked.mask("Chargement", true);
1195
	/**
1221
		}
-
 
1222
	}
1196
	 * Recherche l'élement actuellement affiché et retire son message de chargement si l'était affiché
1223
 
1197
	 */
1224
	/**
1198
	public void demasquerChargement()
1225
	 * Recherche l'élement actuellement affiché et retire son message de
1199
	{
-
 
1200
				ExtElement masked = Ext.get(getIdVueSelectionnee()) ;
1226
	 * chargement si l'était affiché
Line -... Line 1227...
-
 
1227
	 */
-
 
1228
	public void demasquerChargement() {
-
 
1229
		ExtElement masked = Ext.get(getIdVueSelectionnee());
-
 
1230
		if (masked != null && masked.isMasked()) {
-
 
1231
			masked.unmask();
-
 
1232
		}
-
 
1233
	}
-
 
1234
 
-
 
1235
	public void afficherMenuId() {
-
 
1236
		IdVue i = new IdVue(this);
-
 
1237
		i.show();
-
 
1238
	}
-
 
1239
 
-
 
1240
	/**
-
 
1241
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des
-
 
1242
	 * filtres sous forme de tableau [nom, valeur]
-
 
1243
	 * 
-
 
1244
	 * @return Les noms et valeurs des filtres
-
 
1245
	 */
-
 
1246
	public String[][] renvoyerFiltres() {
1201
				if(masked != null && masked.isMasked())
1247
		String[][] valeursFiltres = filtres.renvoyerValeursAFiltrer();
1202
				{
1248
		
1203
					masked.unmask() ;
1249
		for (int i = 0; i < valeursFiltres.length; i++) {
1204
				}
1250
			
1205
	}
1251
			if(valeursFiltres[i].equals(null))
1206
 
1252
			{
1207
	
1253
				Window.alert("Le filtre "+i+" est nul") ;
-
 
1254
			}
1208
	public void afficherMenuId()
1255
			else
1209
	{
1256
			{
1210
		IdVue i = new IdVue(this) ;
1257
				if(valeursFiltres[i][0].equals(null))
1211
		i.show() ;
-
 
1212
	}
1258
				{
1213
	
1259
					Window.alert("Le nom du filtre "+i+" est nul") ;
1214
	/**
1260
				}
1215
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
1261
				
1216
	 * sous forme de tableau [nom, valeur]
1262
				if(valeursFiltres[i][1].equals(null))
-
 
1263
				{
1217
	 * @return Les noms et valeurs des filtres
1264
					Window.alert("La valeur du filtre "+i+" est nulle") ;
1218
	 */
1265
				}
1219
	public String[][] renvoyerFiltres()
1266
			}
-
 
1267
		}
1220
	{
1268
 
-
 
1269
		return valeursFiltres;
-
 
1270
	}
-
 
1271
 
-
 
1272
	/**
-
 
1273
	 * Indique si les filtres ont changés depuis la dernière requête (il faut
-
 
1274
	 * faire un OR sur le résultat de toutes les fonctions renvoyerEtatFiltre
1221
		String[][] valeursFiltres = filtres.renvoyerValeursAFiltrer() ;
1275
	 * s'il y a plus d'un filtre)
-
 
1276
	 * 
-
 
1277
	 * @return true si au moins un des filtres a changé, false sinon
-
 
1278
	 */
-
 
1279
	public boolean getEtatFiltres() {
-
 
1280
		return (filtres.renvoyerEtatFiltre());
-
 
1281
	}
-
 
1282
 
1222
		
1283
	/**
Line -... Line 1284...
-
 
1284
	 * Accesseur pour le panneau de droite contenant les filtres
1223
		return valeursFiltres ;
1285
	 * 
1224
	}
1286
	 * @return le panneau contenant les filtres
1225
	
1287
	 */
Line 1226... Line -...
1226
	/**
-
 
1227
	 * Indique si les filtres ont changés depuis la dernière requête
-
 
1228
	 * (il faut faire un OR sur le résultat de toutes les fonctions
-
 
1229
	 * renvoyerEtatFiltre s'il y a plus d'un filtre)
-
 
1230
	 * @return true si au moins un des filtres a changé, false sinon 
-
 
1231
	 */
-
 
1232
	public boolean getEtatFiltres()
-
 
1233
	{
1288
	public PanneauFiltresVues getPanneauFiltres() {
1234
		return (filtres.renvoyerEtatFiltre());
-
 
1235
	}
-
 
1236
	
-
 
1237
	/**
-
 
1238
	 * Accesseur pour le panneau de droite contenant les filtres
-
 
1239
	 * @return le panneau contenant les filtres
-
 
1240
	 */
-
 
Line -... Line 1289...
-
 
1289
		return filtres;
-
 
1290
	}
-
 
1291
 
-
 
1292
	/**
1241
	public PanneauFiltresVues getPanneauFiltres()
1293
	 * ajoute les images séléctionnées dans la vue courante au tampon
-
 
1294
	 */
1242
	{
1295
	public void ajouterImagesSelection() {
-
 
1296
		String[] ids = getVueSelectionnee().getIdSelectionnees();
-
 
1297
		String id = "";
1243
		return filtres ;
1298
		for (int i = 0; i < ids.length; i++) {
-
 
1299
			id += " - " + ids[i];
-
 
1300
		}
1244
	}
1301
		getIModele().ajouterImagesSelection(ids);
-
 
1302
 
Line 1245... Line 1303...
1245
	
1303
		Window.alert(ids.length + " image(s) ajoutées au tampon ");
1246
	public void ajouterListeners()
1304
 
1247
	{
1305
	}
1248
		/*ongletsImage.addListener(new TabPanelListenerAdapter() {
1306
	
1249
 
1307
	/**
-
 
1308
	 * Affiche les ids des images contenues dans le tampon
-
 
1309
	 */
-
 
1310
	public void afficherIdSelectionImages() {
-
 
1311
 
-
 
1312
		Window.alert("Contenu du tampon : " + getIModele().renvoyerSelection());
-
 
1313
 
1250
			public boolean doBeforeTabChange(TabPanel source, Panel newPanel,
1314
	}
-
 
1315
	
-
 
1316
	/**
-
 
1317
	 * Renvoie les ids des images contenues dans le tampon en une seule string
-
 
1318
	 * @return une string de la forme id1, id2, id3
-
 
1319
	 */
-
 
1320
	public String renvoyerSelection() {
-
 
1321
		return getIModele().renvoyerSelection();
-
 
1322
	}
-
 
1323
	
-
 
1324
	/**
-
 
1325
	 * Vide le tampon d'images
-
 
1326
	 */
-
 
1327
	public void viderSelection() {
-
 
1328
 
-
 
1329
		getIModele().viderSelection();
-
 
1330
		Window.alert("Le tampon a été vidé ");
-
 
1331
 
-
 
1332
	}
-
 
1333
 
-
 
1334
	/**
-
 
1335
	 * Fonction appelée lors du drag 'n drop d'une image sur une observation
-
 
1336
	 * @param source la source du drag
-
 
1337
	 * @param e l'objet sur lequel on a fait le drop
-
 
1338
	 * @param data les données
-
 
1339
	 * @return une booleen indiquant le succès ou l'échec de l'opération
-
 
1340
	 */
-
 
1341
	public boolean lierImagesDD(DragSource source, EventObject e, DragData data) {
-
 
1342
		
-
 
1343
		// on peut convertir directement les données car on a testé avant le type de données
1251
					Panel oldPanel) {
1344
		GridDragData gdd = (GridDragData)data ;
Line -... Line 1345...
-
 
1345
		// les ids des images sont initialisées 
-
 
1346
  		String idsImg = "" ;
-
 
1347
  		
-
 
1348
  		// on obtient la liste des selections dans la source
-
 
1349
  		Record[] aLier =  gdd.getSelections() ;
-
 
1350
  		for (int i = 0; i < aLier.length; i++) 
-
 
1351
  		{
-
 
1352
			// on les concatènes en une seule chaine	
-
 
1353
  			idsImg += aLier[i].getAsString("id_image")+"," ;
-
 
1354
		}
-
 
1355
  		
-
 
1356
  		MiniListeObservationVue mv = getMetadonneesIptcExif().getMiniListeObservation() ;
-
 
1357
  		// on cherche quel est la ligne sur laquelle on a fait le drop dans la la liste des observations
-
 
1358
  		int index = mv.getView().findRowIndex(e) ;
-
 
1359
  		Record rddrop = mv.getStore().getRecordAt(index) ;
-
 
1360
  		
-
 
1361
  		// SI l'enregistrement existe bel et bien
-
 
1362
  		if(rddrop != null)
-
 
1363
  		{
-
 
1364
  			String idObs = rddrop.getAsString("id_obs")+"," ;
-
 
1365
  			// on lie les observations
-
 
1366
  			lierImagesObservation(idObs, idsImg) ;
-
 
1367
  		}
-
 
1368
  		
-
 
1369
  		return true ;	  
-
 
1370
	}
-
 
1371
	
-
 
1372
	/**
-
 
1373
	 * Fonction appelée lors du drag 'n drop d'une observation sur une image
-
 
1374
	 * @param source la source du drag
-
 
1375
	 * @param e l'objet sur lequel on a fait le drop
-
 
1376
	 * @param data les données
-
 
1377
	 * @return une booleen indiquant le succès ou l'échec de l'opération
-
 
1378
	 */
-
 
1379
	public boolean lierObsDD(DragSource source, EventObject e, DragData data, String idDest) {
-
 
1380
		
-
 
1381
		// on peut convertir directement les données car on a testé avant le type de données
-
 
1382
		GridDragData gdd = (GridDragData)data ;
-
 
1383
		// les ids des images sont initialisées 
-
 
1384
  		String idsObs = "" ;
-
 
1385
  		
-
 
1386
  		// on obtient la liste des selections dans la source
-
 
1387
  		Record[] aLier =  gdd.getSelections() ;
-
 
1388
  		for (int i = 0; i < aLier.length; i++) 
-
 
1389
  		{
-
 
1390
  			// on les concatènes en une seule chaine		
-
 
1391
  			idsObs += aLier[i].getAsString("id_obs")+"," ;
-
 
1392
		}
-
 
1393
  		
-
 
1394
  		Record rddrop = null ;
-
 
1395
  		
-
 
1396
  		// si la destination est la galerie d'images
-
 
1397
  		if(idDest.equals(getGalerieImage().getId()))
-
 
1398
  		{
-
 
1399
  			GalerieImageVue gv = getGalerieImage() ;
-
 
1400
  			
-
 
1401
  			// alors l'élément sur lequel on a fait le drop n'est pas le bon
-
 
1402
  			int index = gv.getDView().indexOf(e.getTarget()) ;
-
 
1403
  			Element el = e.getTarget() ;
-
 
1404
  			
-
 
1405
  			// alors on cherche son parent tant que celui-ci n'est pas présent dans la dataview
-
 
1406
  			while(index == -1 && el != null)
-
 
1407
  			{
-
 
1408
  				index = gv.getDView().indexOf(el) ;
-
 
1409
  				el = (Element) el.getParentElement() ;
-
 
1410
  			}
-
 
1411
  			
-
 
1412
  			// si on l'a trouvé, on obtient l'enregistrement qui correspond
-
 
1413
  			if(index != -1)
-
 
1414
  			{
-
 
1415
  				rddrop = gv.getSt().getAt(index) ;
-
 
1416
  			}
-
 
1417
				
-
 
1418
  		}
-
 
1419
  		
-
 
1420
  		// si la destination est la liste d'images
-
 
1421
  		if(idDest.equals(getListeImage().getId()))
-
 
1422
  		{
-
 
1423
  			// on obtient directement l'enregistrement correspondant à l'élément sur lequel on a fait le drop
-
 
1424
  			ListeImageVue lv = getListeImage() ;
-
 
1425
  			int index = lv.getView().findRowIndex(e) ;
-
 
1426
  			rddrop = lv.getSt().getAt(index) ;
Line -... Line 1427...
-
 
1427
  		}
-
 
1428
  		
-
 
1429
  		// si on a bien obtenu un enregistrement 
-
 
1430
  		if(rddrop != null)
-
 
1431
  		{
-
 
1432
  			// on récupère l'id de l'image et alors on appelle la fonction de liaison
-
 
1433
  			String idImg = rddrop.getAsString("id_image")+"," ;
-
 
1434
  			lierImagesObservation(idsObs, idImg) ;
-
 
1435
  			
-
 
1436
  			return true ;
-
 
1437
  		}
Line 1252... Line 1438...
1252
				
1438