Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 19 | Rev 25 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 19 Rev 20
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
2
 
2
 
3
import java.util.Iterator;
3
import java.util.Iterator;
4
 
4
 
5
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
6
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
7
import org.tela_botanica.client.modeles.ImageCarnet;
7
import org.tela_botanica.client.modeles.ImageCarnet;
8
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
8
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
9
import org.tela_botanica.client.modeles.ListeImageCarnet;
9
import org.tela_botanica.client.modeles.ListeImageCarnet;
10
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
10
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
-
 
11
 
-
 
12
import com.gwtext.client.data.ArrayReader;
-
 
13
import com.gwtext.client.data.FieldDef;
-
 
14
import com.gwtext.client.data.IntegerFieldDef;
-
 
15
import com.gwtext.client.data.MemoryProxy;
-
 
16
import com.gwtext.client.data.RecordDef;
-
 
17
import com.gwtext.client.data.Store;
-
 
18
import com.gwtext.client.data.StringFieldDef;
11
 
19
 
12
/**
20
/**
13
 * Modèle d'accès aux données pour les images.
21
 * Modèle d'accès aux données pour les images.
14
 * C'est un singleton
22
 * C'est un singleton
15
 * @author aurelien
23
 * @author aurelien
16
 *
24
 *
17
 */
25
 */
18
public class ImageModele {
26
public class ImageModele implements Rafraichissable {
19
	
27
	
20
	private static boolean estInstancie = false ;
28
	private static boolean estInstancie = false ;
21
	
29
	
22
	private ImageMediateur iMediateur = null ;
30
	private ImageMediateur iMediateur = null ;
23
	
31
	
24
	private ListeImageCarnet cacheImage = new ListeImageCarnet(0) ;
32
	private ListeImageCarnet cacheImage = new ListeImageCarnet(0) ;
-
 
33
	
-
 
34
	private Store st = null ;
25
	
35
	
26
	static ImageModele Instance(ImageMediateur im)
36
	static ImageModele Instance(ImageMediateur im)
27
	{
37
	{
28
		if(!estInstancie)
38
		if(!estInstancie)
29
		{
39
		{
30
			return new ImageModele(im);
40
			return new ImageModele(im);
31
		}
41
		}
32
		else
42
		else
33
		{
43
		{
34
			return null ;
44
			return null ;
35
		}
45
		}
36
	}
46
	}
37
	
47
	
38
	private ImageModele(ImageMediateur im) {
48
	private ImageModele(ImageMediateur im) {
39
		
49
		
40
		iMediateur = im ;
50
		iMediateur = im ;
41
	}
51
	}
42
	
52
	
43
	public ImageMediateur getIMediateur()
53
	public ImageMediateur getIMediateur()
44
	{
54
	{
45
		return iMediateur ;
55
		return iMediateur ;
46
	}
56
	}
47
	
57
	
48
	public void obtenirPhotoGalerie(Rafraichissable r)
58
	public void obtenirPhotoGalerie(Rafraichissable r)
49
	{
59
	{
50
		ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
60
		ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
51
		liaDAO.ObtenirListeImages(r);		
61
		liaDAO.ObtenirListeImages(this);		
52
	}
62
	}
53
	
63
	
54
	public void uploaderImages()
64
	public void uploaderImages()
55
	{
65
	{
56
		ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;
66
		ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;
57
		IuADaO.setIMediateur(getIMediateur());
67
		IuADaO.setIMediateur(getIMediateur());
58
		IuADaO.choisirMethodeUpload() ;
68
		IuADaO.choisirMethodeUpload() ;
59
	}
69
	}
60
	
70
	
61
	public void rafraichirListeImage(Object o)
71
	public void rafraichirListeImage(Object o)
62
	{
72
	{
63
		cacheImage = (ListeImageCarnet)o ;
73
		cacheImage = (ListeImageCarnet)o ;
64
	}
74
	}
65
	
75
	
66
	public void obtenirMetadonnees(Rafraichissable r, String id)
76
	public void obtenirMetadonnees(Rafraichissable r, String id)
67
	{
77
	{
68
		
78
		
69
		for(Iterator it = cacheImage.keySet().iterator() ; it.hasNext() ;)
79
		for(Iterator it = cacheImage.keySet().iterator() ; it.hasNext() ;)
70
		{
80
		{
71
			ImageCarnet im = (ImageCarnet)cacheImage.get(it.next()) ;
81
			ImageCarnet im = (ImageCarnet)cacheImage.get(it.next()) ;
72
			
82
			
73
			if(im.getOrdre().equals(id))
83
			if(im.getOrdre().equals(id))
74
			{
84
			{
75
				
85
				
76
				Object meta[] = new Object[3] ;
86
				Object meta[] = new Object[3] ;
77
				meta[0] = im.getMetadonnesExif() ;
87
				meta[0] = im.getMetadonnesExif() ;
78
				meta[1] = im.getMetadonnesIptc() ;
88
				meta[1] = im.getMetadonnesIptc() ;
79
				meta[2] = im.getInfoGenerales() ;
89
				meta[2] = im.getInfoGenerales() ;
80
				
90
				
81
				r.rafraichir(meta,false) ;
91
				r.rafraichir(meta,false) ;
82
			}
92
			}
83
		}
93
		}
84
	
94
	
85
	}
95
	}
86
	
96
	
87
	public void mettreAJourCacheImage(String commentaires, String date, String ids[])
97
	public void mettreAJourCacheImage(String commentaires, String date, String ids[])
88
	{
98
	{
89
			for (int i = 0; i < ids.length; i++) {
99
			for (int i = 0; i < ids.length; i++) {
90
				
100
				
91
				String key = ids[i] ;
101
				String key = ids[i] ;
92
				
102
				
93
				ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
103
				ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
94
				ic.miseAJourInfoGenerales(commentaires, date) ;
104
				ic.miseAJourInfoGenerales(commentaires, date) ;
95
				mettreAjourImageCarnet(ic) ;
105
				mettreAjourImageCarnet(ic) ;
96
			
106
			
97
			}
107
			}
98
	}
108
	}
99
	
109
	
100
	public void mettreAJourBaseDeDonnees()
110
	public void mettreAJourBaseDeDonnees()
101
	{
111
	{
102
		ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
112
		ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
103
		liDaO.setIMediateur(iMediateur);
113
		liDaO.setIMediateur(iMediateur);
104
		
114
		
105
		liDaO.SynchroniserBaseDeDonnees(cacheImage);
115
		liDaO.SynchroniserBaseDeDonnees(cacheImage);
106
	}
116
	}
107
	
117
	
108
	public void mettreAjourImageCarnet(ImageCarnet ic)
118
	public void mettreAjourImageCarnet(ImageCarnet ic)
109
	{
119
	{
110
		ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();
120
		ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();
111
		iaDaO.setIMediateur(iMediateur);
121
		iaDaO.setIMediateur(iMediateur);
112
		iaDaO.SynchroniserBaseDeDonnees(ic) ;
122
		iaDaO.SynchroniserBaseDeDonnees(ic) ;
113
	}
123
	}
-
 
124
 
-
 
125
	public void supprimerImages(String[] ids) {
-
 
126
		
-
 
127
		String rids[] = new String[ids.length] ;
-
 
128
		ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO() ;
-
 
129
		liDao.setIMediateur(iMediateur);
-
 
130
		
-
 
131
		for (int i = 0; i < ids.length; i++) {
-
 
132
			
-
 
133
			
-
 
134
			String key = ids[i] ;
-
 
135
			ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
-
 
136
			rids[i] = ic.getId() ;
-
 
137
		}
-
 
138
		
-
 
139
		if(rids.length != 0)
-
 
140
		{
-
 
141
			liDao.supprimerBaseDeDonnees(rids);
-
 
142
		}
-
 
143
		
-
 
144
	}
-
 
145
 
-
 
146
	public void rafraichir(Object nouvelleDonnees,
-
 
147
			boolean repandreRafraichissement) {
-
 
148
		
-
 
149
		ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
-
 
150
		Object[][] photoData = new Object[data.size()][7];
-
 
151
		int i = 0 ;
-
 
152
		for (Iterator it = data.keySet().iterator(); it.hasNext();) 
-
 
153
		{
-
 
154
			ImageCarnet im = (ImageCarnet) data.get(it.next());
-
 
155
			photoData[i][0] = im.getOrdre() ;
-
 
156
			photoData[i][1] = im.getDate() ;
-
 
157
			photoData[i][2] = im.getIptcCity() ;
-
 
158
			photoData[i][3] = im.getMake()+" "+im.getModel() ;
-
 
159
			photoData[i][4] = im.getSUrl() ;
-
 
160
			photoData[i][5] = im.getMUrl() ;
-
 
161
			photoData[i][6] = im.getUrl() ;
-
 
162
			
-
 
163
			i++ ;
-
 
164
		}
-
 
165
 
-
 
166
		// creation du store
-
 
167
		FieldDef defNumImage = new IntegerFieldDef("num_image");
-
 
168
		FieldDef defDatImage = new StringFieldDef("dat_image");
-
 
169
		FieldDef defLieImage = new StringFieldDef("lie_image");
-
 
170
		FieldDef defAppImage = new StringFieldDef("app_image");
-
 
171
		FieldDef defUrlImageS = new StringFieldDef("url_image_S");
-
 
172
		FieldDef defUrlImageM = new StringFieldDef("url_image_M");
-
 
173
		FieldDef defUrlImage = new StringFieldDef("url_image");
-
 
174
		FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};
-
 
175
		RecordDef rd = new RecordDef(defTab) ;
-
 
176
		
-
 
177
		final MemoryProxy dataProxy = new MemoryProxy(photoData);
-
 
178
		final ArrayReader reader = new ArrayReader(rd);
-
 
179
 
-
 
180
		final Store photoStore = new Store(dataProxy, reader);
-
 
181
		
-
 
182
		rafraichirListeImage(nouvelleDonnees);
-
 
183
		
-
 
184
		st = photoStore ;
-
 
185
	
-
 
186
		if(repandreRafraichissement)
-
 
187
		{
-
 
188
			getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ;
-
 
189
		}
-
 
190
		
114
 
191
	}		
115
}
192
}