Rev 19 | Rev 25 | 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.ImageAsynchroneDAO;import org.tela_botanica.client.modeles.ImageCarnet;import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;import org.tela_botanica.client.modeles.ListeImageCarnet;import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;import com.gwtext.client.data.ArrayReader;import com.gwtext.client.data.FieldDef;import com.gwtext.client.data.IntegerFieldDef;import com.gwtext.client.data.MemoryProxy;import com.gwtext.client.data.RecordDef;import com.gwtext.client.data.Store;import com.gwtext.client.data.StringFieldDef;/*** Modèle d'accès aux données pour les images.* C'est un singleton* @author aurelien**/public class ImageModele implements Rafraichissable {private static boolean estInstancie = false ;private ImageMediateur iMediateur = null ;private ListeImageCarnet cacheImage = new ListeImageCarnet(0) ;private Store st = null ;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(this);}public void uploaderImages(){ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ;IuADaO.setIMediateur(getIMediateur());IuADaO.choisirMethodeUpload() ;}public void rafraichirListeImage(Object o){cacheImage = (ListeImageCarnet)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) ;mettreAjourImageCarnet(ic) ;}}public void mettreAJourBaseDeDonnees(){ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();liDaO.setIMediateur(iMediateur);liDaO.SynchroniserBaseDeDonnees(cacheImage);}public void mettreAjourImageCarnet(ImageCarnet ic){ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();iaDaO.setIMediateur(iMediateur);iaDaO.SynchroniserBaseDeDonnees(ic) ;}public void supprimerImages(String[] ids) {String rids[] = new String[ids.length] ;ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO() ;liDao.setIMediateur(iMediateur);for (int i = 0; i < ids.length; i++) {String key = ids[i] ;ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;rids[i] = ic.getId() ;}if(rids.length != 0){liDao.supprimerBaseDeDonnees(rids);}}public void rafraichir(Object nouvelleDonnees,boolean repandreRafraichissement) {ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;Object[][] photoData = new Object[data.size()][7];int i = 0 ;for (Iterator it = data.keySet().iterator(); it.hasNext();){ImageCarnet im = (ImageCarnet) data.get(it.next());photoData[i][0] = im.getOrdre() ;photoData[i][1] = im.getDate() ;photoData[i][2] = im.getIptcCity() ;photoData[i][3] = im.getMake()+" "+im.getModel() ;photoData[i][4] = im.getSUrl() ;photoData[i][5] = im.getMUrl() ;photoData[i][6] = im.getUrl() ;i++ ;}// creation du storeFieldDef defNumImage = new IntegerFieldDef("num_image");FieldDef defDatImage = new StringFieldDef("dat_image");FieldDef defLieImage = new StringFieldDef("lie_image");FieldDef defAppImage = new StringFieldDef("app_image");FieldDef defUrlImageS = new StringFieldDef("url_image_S");FieldDef defUrlImageM = new StringFieldDef("url_image_M");FieldDef defUrlImage = new StringFieldDef("url_image");FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};RecordDef rd = new RecordDef(defTab) ;final MemoryProxy dataProxy = new MemoryProxy(photoData);final ArrayReader reader = new ArrayReader(rd);final Store photoStore = new Store(dataProxy, reader);rafraichirListeImage(nouvelleDonnees);st = photoStore ;if(repandreRafraichissement){getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ;}}}