Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 46 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 46 Rev 48
Line 1... Line 1...
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
Line 2... Line 2...
2
 
2
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
import java.util.Iterator;
-
 
Line 5... Line 4...
5
import java.util.Vector;
4
import java.util.Iterator;
6
 
5
 
7
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
7
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
9
import org.tela_botanica.client.modeles.ImageCarnet;
-
 
10
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
8
import org.tela_botanica.client.modeles.ImageCarnet;
-
 
9
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
11
import org.tela_botanica.client.modeles.ListeImageCarnet;
10
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
12
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
11
import org.tela_botanica.client.modeles.ListeImageCarnet;
13
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
-
 
Line 14... Line 12...
14
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
12
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
15
import org.tela_botanica.client.vues.BarreNotationVue;
13
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO;
16
 
-
 
17
import com.google.gwt.json.client.JSONArray;
-
 
18
import com.google.gwt.json.client.JSONObject;
14
 
19
import com.gwtext.client.core.Ext;
15
import com.google.gwt.json.client.JSONArray;
20
import com.gwtext.client.core.ExtElement;
16
import com.google.gwt.json.client.JSONObject;
21
import com.gwtext.client.data.ArrayReader;
17
import com.gwtext.client.data.ArrayReader;
22
import com.gwtext.client.data.FieldDef;
18
import com.gwtext.client.data.FieldDef;
23
import com.gwtext.client.data.IntegerFieldDef;
-
 
24
import com.gwtext.client.data.MemoryProxy;
19
import com.gwtext.client.data.IntegerFieldDef;
25
import com.gwtext.client.data.Node;
20
import com.gwtext.client.data.MemoryProxy;
26
import com.gwtext.client.data.NodeTraversalCallback;
21
import com.gwtext.client.data.Node;
27
import com.gwtext.client.data.RecordDef;
22
import com.gwtext.client.data.RecordDef;
28
import com.gwtext.client.data.Store;
23
import com.gwtext.client.data.Store;
Line 89... Line 84...
89
	{
84
	{
90
		// si le modèle n'est pas encore instancié
85
		// si le modèle n'est pas encore instancié
91
		if(!estInstancie)
86
		if(!estInstancie)
92
		{
87
		{
93
			// on en crée un nouveau
88
			// on en crée un nouveau
-
 
89
			estInstancie = true ;
94
			return new ImageModele(im);
90
			return new ImageModele(im);
95
		}
91
		}
96
		else
92
		else
97
		{
93
		{
98
			// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire
94
			// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire
Line 127... Line 123...
127
		String motsClesFiltres[][] = getIMediateur().renvoyerFiltres() ;
123
		String motsClesFiltres[][] = getIMediateur().renvoyerFiltres() ;
Line 128... Line 124...
128
		
124
		
129
		// on rassemble les critères
125
		// on rassemble les critères
130
		String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
126
		String[][] criteres = {{"ci_ce_utilisateur", ""+getIMediateur().getIdentifiant()}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
131
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
127
		// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
132
		NombreImageAsynchroneDAO niaDAO = new NombreImageAsynchroneDAO() ;
-
 
133
		niaDAO.setIModele(this) ;
128
		NombreImageAsynchroneDAO niaDAO = new NombreImageAsynchroneDAO(this) ;
Line 134... Line 129...
134
		niaDAO.obtenirNombreImages(this, criteres) ;
129
		niaDAO.obtenirNombreImages(this, criteres) ;
135
		
130
		
136
		// ensuite on demande la page correspondante avec les mêmes critères
131
		// ensuite on demande la page correspondante avec les mêmes critères
137
		String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
132
		String[][] criteres2 = { {"ci_limite" ,""+taillePage },{"ci_numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}, {motsClesFiltres[1][0],motsClesFiltres[1][1] }} ;
138
		// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
133
		// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
139
		ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
134
		ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO(this);
Line 140... Line 135...
140
		liaDAO.ObtenirListeImages(this, criteres2);		
135
		liaDAO.ObtenirListeImages(this, criteres2);		
141
	}
136
	}
142
	
137
	
143
	/**
138
	/**
144
	 * Appelle le DAO d'upload qui va choisir la methode d'upload adaptée
139
	 * Appelle le DAO d'upload qui va choisir la methode d'upload adaptée
145
	 * et lancer l'interface appropriée
140
	 * et lancer l'interface appropriée
146
	 */
141
	 */
147
	public void uploaderImages()
-
 
148
	{
142
	public void uploaderImages()
149
		ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;
143
	{
Line 150... Line 144...
150
		IuADaO.setIModele(this) ;
144
		ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO(this) ;
151
		IuADaO.choisirMethodeUpload() ;
145
		IuADaO.choisirMethodeUpload() ;
Line 226... Line 220...
226
				String key = ids[i] ;
220
				String key = ids[i] ;
227
				ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
221
				ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
228
				ic.miseAJourInfoGenerales(commentaires, date, note) ;
222
				ic.miseAJourInfoGenerales(commentaires, date, note) ;
229
				mettreAjourBaseDeDonneesImageCarnet(ic) ;	
223
				mettreAjourBaseDeDonneesImageCarnet(ic) ;	
230
			}
224
			}
-
 
225
			
231
	}
226
	}
Line 232... Line 227...
232
	
227
	
233
	/**
228
	/**
234
	 * Ajoute un nouveau mot clés à la liste des mots clés locale
229
	 * Ajoute un nouveau mot clés à la liste des mots clés locale
Line 244... Line 239...
244
	 * Appelle le DAO chargé de mettre à jour la base de données avec
239
	 * Appelle le DAO chargé de mettre à jour la base de données avec
245
	 * les toutes les informations des images modifiées par l'utilisateur
240
	 * les toutes les informations des images modifiées par l'utilisateur
246
	 */
241
	 */
247
	public void mettreAJourBaseDeDonneesListeImageCarnet()
242
	public void mettreAJourBaseDeDonneesListeImageCarnet()
248
	{
243
	{
249
		ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
244
		ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO(this);
250
		liDaO.setIModele(this);
-
 
Line 251... Line 245...
251
		
245
		
252
		liDaO.SynchroniserBaseDeDonnees(cacheImage);
246
		liDaO.SynchroniserBaseDeDonnees(cacheImage);
Line 253... Line 247...
253
	}
247
	}
Line 257... Line 251...
257
	 * les toutes les informations d'une image donnée
251
	 * les toutes les informations d'une image donnée
258
	 * @param ic l'image à synchroniser avec la base
252
	 * @param ic l'image à synchroniser avec la base
259
	 */
253
	 */
260
	public void mettreAjourBaseDeDonneesImageCarnet(ImageCarnet ic)
254
	public void mettreAjourBaseDeDonneesImageCarnet(ImageCarnet ic)
261
	{
255
	{
262
		ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();
256
		ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO(this);
263
		iaDaO.SynchroniserBaseDeDonnees(ic) ;
257
		iaDaO.SynchroniserBaseDeDonnees(ic) ;
264
	}
258
	}
Line 265... Line 259...
265
 
259
 
266
	/**
260
	/**
Line 269... Line 263...
269
	 * @param ids les identifiants des images selectionnées
263
	 * @param ids les identifiants des images selectionnées
270
	 */
264
	 */
271
	public void supprimerImages(String[] ids) 
265
	public void supprimerImages(String[] ids) 
272
	{
266
	{
273
		String rids[] = new String[ids.length] ;
267
		String rids[] = new String[ids.length] ;
274
		ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO() ;
268
		ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO(this) ;
275
		liDao.setIModele(this);
-
 
Line 276... Line 269...
276
		
269
		
277
		for (int i = 0; i < ids.length; i++) 
270
		for (int i = 0; i < ids.length; i++) 
278
		{				
271
		{				
279
			String key = ids[i] ;
272
			String key = ids[i] ;
Line 297... Line 290...
297
	{
290
	{
298
		// si l'on a reçu une liste d'images
291
		// si l'on a reçu une liste d'images
299
		if(nouvelleDonnees instanceof ListeImageCarnet)
292
		if(nouvelleDonnees instanceof ListeImageCarnet)
300
		{
293
		{
301
				ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
294
				ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
302
				Object[][] photoData = new Object[data.size()][7];
295
				Object[][] photoData = new Object[data.size()][8];
303
				int i = 0 ;
296
				int i = 0 ;
Line 304... Line 297...
304
				
297
				
305
				if(data.size() == 0)
298
				if(data.size() == 0)
306
				{
299
				{
Line 316... Line 309...
316
					photoData[i][2] = im.getIptcCity() ;
309
					photoData[i][2] = im.getIptcCity() ;
317
					photoData[i][3] = im.getMake()+" "+im.getModel() ;
310
					photoData[i][3] = im.getMake()+" "+im.getModel() ;
318
					photoData[i][4] = im.getSUrl() ;
311
					photoData[i][4] = im.getSUrl() ;
319
					photoData[i][5] = im.getMUrl() ;
312
					photoData[i][5] = im.getMUrl() ;
320
					photoData[i][6] = im.getLUrl() ;
313
					photoData[i][6] = im.getLUrl() ;
-
 
314
					photoData[i][7] = im.getNote() ;
Line 321... Line 315...
321
					
315
					
322
					i++ ;
316
					i++ ;
Line 323... Line 317...
323
				}
317
				}
Line 328... Line 322...
328
				FieldDef defLieImage = new StringFieldDef("lie_image");
322
				FieldDef defLieImage = new StringFieldDef("lie_image");
329
				FieldDef defAppImage = new StringFieldDef("app_image");
323
				FieldDef defAppImage = new StringFieldDef("app_image");
330
				FieldDef defUrlImageS = new StringFieldDef("url_image_S");
324
				FieldDef defUrlImageS = new StringFieldDef("url_image_S");
331
				FieldDef defUrlImageM = new StringFieldDef("url_image_M");
325
				FieldDef defUrlImageM = new StringFieldDef("url_image_M");
332
				FieldDef defUrlImage = new StringFieldDef("url_image");
326
				FieldDef defUrlImage = new StringFieldDef("url_image");
-
 
327
				FieldDef defNoteImage = new IntegerFieldDef("note_image") ;
333
				FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};
328
				FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage,defNoteImage};
334
				RecordDef rd = new RecordDef(defTab) ;
329
				RecordDef rd = new RecordDef(defTab) ;
Line 335... Line 330...
335
				
330
				
336
				final MemoryProxy dataProxy = new MemoryProxy(photoData);
331
				final MemoryProxy dataProxy = new MemoryProxy(photoData);
Line 461... Line 456...
461
			if(cacheImage.containsKey(ids[i]))
456
			if(cacheImage.containsKey(ids[i]))
462
			{
457
			{
463
				ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;
458
				ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;
464
				ic.mettreAjourMotsCles(motsClesEnCours) ;	
459
				ic.mettreAjourMotsCles(motsClesEnCours) ;	
Line 465... Line 460...
465
				
460
				
466
				ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO() ;
461
				ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO(this) ;
467
				imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic) ;
462
				imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic) ;
468
			}
463
			}
Line 469... Line 464...
469
		}
464
		}
Line 475... Line 470...
475
	/**
470
	/**
476
	 * Appelle le DAO des mots clés pour obtenir l'arbre complet stocké dans la base de données
471
	 * Appelle le DAO des mots clés pour obtenir l'arbre complet stocké dans la base de données
477
	 */
472
	 */
478
	public void initialiserArbreMotsCles()
473
	public void initialiserArbreMotsCles()
479
	{
474
	{
480
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
475
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
481
		MCDao.setIModele(this) ;
-
 
482
		
-
 
483
		MCDao.obtenirListeMotsCles(this) ;
476
		MCDao.obtenirListeMotsCles(this) ;
484
	}
477
	}
Line 485... Line 478...
485
	
478
	
486
	/**
479
	/**
Line 498... Line 491...
498
	 * @param n le nouveau noeud contenant le mot clé
491
	 * @param n le nouveau noeud contenant le mot clé
499
	 * @param arbreMC l'arbre des mots cles en cours
492
	 * @param arbreMC l'arbre des mots cles en cours
500
	 */
493
	 */
501
	public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC) 
494
	public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC) 
502
	{	
495
	{	
503
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
496
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
504
		MCDao.setIModele(this) ;
-
 
Line 505... Line 497...
505
		
497
		
506
		String[] usObj = (String[])n.getUserObject() ;
498
		String[] usObj = (String[])n.getUserObject() ;
507
		String motCle = usObj[0] ;
499
		String motCle = usObj[0] ;
508
		String id = usObj[1] ;
500
		String id = usObj[1] ;
Line 531... Line 523...
531
	 * @param arbreMC l'arbre des mots clés en cours
523
	 * @param arbreMC l'arbre des mots clés en cours
532
	 */
524
	 */
533
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) 
525
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) 
534
	{
526
	{
Line 535... Line 527...
535
		
527
		
536
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
-
 
Line 537... Line 528...
537
		MCDao.setIModele(this) ;
528
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
538
		
529
		
539
		String[] usObj = (String[])n.getUserObject() ;
530
		String[] usObj = (String[])n.getUserObject() ;
Line 553... Line 544...
553
	 * @param arbreMC l'arbre des mots clés en cours
544
	 * @param arbreMC l'arbre des mots clés en cours
554
	 */
545
	 */
555
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) 
546
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) 
556
	{
547
	{
Line 557... Line 548...
557
		
548
		
558
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
-
 
Line 559... Line 549...
559
		MCDao.setIModele(this) ;
549
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
560
		
550
		
561
		String[] usObj = (String[])n.getUserObject() ;
551
		String[] usObj = (String[])n.getUserObject() ;
562
		String motCle = usObj[0] ;
552
		String motCle = usObj[0] ;
Line 586... Line 576...
586
	 * @param n le noeud deplace (et son sous arbre associe)
576
	 * @param n le noeud deplace (et son sous arbre associe)
587
	 * @param arbreMC l'arbre des mots cles en cours
577
	 * @param arbreMC l'arbre des mots cles en cours
588
	 */
578
	 */
589
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC)
579
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC)
590
	{
580
	{
591
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;
581
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO(this) ;
592
		MCDao.setIModele(this) ;
-
 
Line 593... Line 582...
593
		
582
		
594
		String[] usObj = (String[])n.getUserObject() ;
583
		String[] usObj = (String[])n.getUserObject() ;
595
		String motCle = usObj[0] ;
584
		String motCle = usObj[0] ;
596
		String id = usObj[1] ;
585
		String id = usObj[1] ;
Line 674... Line 663...
674
	/**
663
	/**
675
	 * Notifie le mediateur que l'upload ou le download est termine et qu'il faut rafraichir les vues avec les nouvelles données
664
	 * Notifie le mediateur que l'upload ou le download est termine et qu'il faut rafraichir les vues avec les nouvelles données
676
	 */
665
	 */
677
	public void requeteTerminee()
666
	public void requeteTerminee()
678
	{
667
	{
-
 
668
		getIMediateur().demasquerChargement() ;
679
		getIMediateur().rafraichirToutesVues() ;
669
		getIMediateur().rafraichirToutesVues() ;
680
	}
670
	}
Line 681... Line 671...
681
 
671
 
682
	/**
672
	/**