Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 16 | Rev 19 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.image;

import java.util.Iterator;

import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
import org.tela_botanica.client.modeles.ListeImage;
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;

/**
 * Modèle d'accès aux données pour les images.
 * C'est un singleton
 * @author aurelien
 *
 */
public class ImageModele {
        
        private static boolean estInstancie = false ;
        
        private ImageMediateur iMediateur = null ;
        
        private ListeImage cacheImage = new ListeImage(0) ;
        
        static ImageModele Instance(ImageMediateur im)
        {
                if(!estInstancie)
                {
                        return new ImageModele(im);
                }
                else
                {
                        return null ;
                }
        }
        
        private ImageModele(ImageMediateur im) {
                
                iMediateur = im ;
        }
        
        public ImageMediateur getIMediateur()
        {
                return iMediateur ;
        }
        
        public void obtenirPhotoGalerie(Rafraichissable r)
        {
                ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
                liaDAO.ObtenirListeImages(r);           
        }
        
        public void uploaderImages()
        {
                ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;
                IuADaO.setIMediateur(getIMediateur());
                IuADaO.choisirMethodeUpload() ;
        }
        
        public void rafraichirListeImage(Object o)
        {
                cacheImage = (ListeImage)o ;
        }
        
        public void obtenirMetadonnees(Rafraichissable r, String id)
        {
                
                for(Iterator it = cacheImage.keySet().iterator() ; it.hasNext() ;)
                {
                        ImageCarnet im = (ImageCarnet)cacheImage.get(it.next()) ;
                        
                        if(im.getOrdre().equals(id))
                        {
                                
                                Object meta[] = new Object[3] ;
                                meta[0] = im.getMetadonnesExif() ;
                                meta[1] = im.getMetadonnesIptc() ;
                                meta[2] = im.getInfoGenerales() ;
                                
                                r.rafraichir(meta,false) ;
                        }
                }
        
        }
        
        public void mettreAJourCacheImage(String commentaires, String date, String ids[])
        {
                        for (int i = 0; i < ids.length; i++) {
                                
                                String key = ids[i] ;
                                
                                ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
                                ic.miseAJourInfoGenerales(commentaires, date) ;
                        }
        }

}