Rev 25 | Rev 30 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.image;import java.util.HashMap;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 org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;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.Node;import com.gwtext.client.data.NodeTraversalCallback;import com.gwtext.client.data.RecordDef;import com.gwtext.client.data.Store;import com.gwtext.client.data.StringFieldDef;import com.gwtext.client.data.Tree;import com.gwtext.client.widgets.tree.TreeNode;/*** 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 HashMap motsCles = new HashMap(0) ;private Store st = null ;private com.gwtext.client.data.Tree arbreMotsCles = null ;private String arbreAplati = "" ;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 rafraichirArbreMotsCles(Object o){arbreMotsCles = (com.gwtext.client.data.Tree)o ;}public void rafraichirMotsCles(Object o){motsCles = (HashMap)o ;}public void obtenirMetadonnees(Rafraichissable r, String id){ImageCarnet im = (ImageCarnet)cacheImage.get(id) ;Object meta[] = new Object[3] ;meta[0] = im.getMetadonnesExif() ;meta[1] = im.getMetadonnesIptc() ;meta[2] = im.getInfoGenerales() ;r.rafraichir(meta,false) ;}public void obtenirMotsClesId(Rafraichissable r, String id){ImageCarnet im = (ImageCarnet)cacheImage.get(id) ;String motsClesId = im.getMotsCles() ;String[] motsClesIdTab = motsClesId.split(",") ;r.rafraichir(motsClesIdTab, 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) ;mettreAjourBaseDeDonneesImageCarnet(ic) ;}}public void mettreAjourMotsClesId(String text, String id){motsCles.put(id, text) ;}public void mettreAjourBaseDeDonneesMotsClesId(){}public void mettreAJourBaseDeDonneesListeImageCarnet(){ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();liDaO.setIMediateur(iMediateur);liDaO.SynchroniserBaseDeDonnees(cacheImage);}public void mettreAjourBaseDeDonneesImageCarnet(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) ;}}public void afficherMotsCles(){for(Iterator it = motsCles.keySet().iterator() ; it.hasNext() ;){String key = (String)it.next() ;String valeur = (String)motsCles.get(key) ;System.out.println("clé : "+key+" valeur : "+valeur);}}public void mettreAjourMotsCles(String[] ids, String motsClesEnCours, com.gwtext.client.data.Tree arbreMC) {for (int i = 0; i < ids.length; i++) {if(cacheImage.containsKey(ids[i])){ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;ic.mettreAjourMotsCles(motsClesEnCours) ;}}rafraichirArbreMotsCles(arbreMC) ;}public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC) {MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;MCDao.setIMediateur(getIMediateur()) ;String[] usObj = (String[])n.getUserObject() ;String motCle = usObj[0] ;String id = usObj[1] ;String parentId = "";if(!id.equals("racine")){String[] parentUsObj = (String[])n.getParentNode().getUserObject() ;parentId = parentUsObj[1] ;}else{parentId = "racine" ;}rafraichirArbreMotsCles(arbreMC) ;String nouveauMotCle = "&motcle="+motCle+"&id="+id+"&parent="+parentId ;MCDao.ajouterBaseDeDonnees(nouveauMotCle) ;}public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;MCDao.setIMediateur(getIMediateur()) ;String[] usObj = (String[])n.getUserObject() ;String motCle = usObj[0] ;String id = usObj[1] ;String motCleASupprimer = id ;MCDao.supprimerBaseDeDonnees(id) ;}public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;MCDao.setIMediateur(getIMediateur()) ;String[] usObj = (String[])n.getUserObject() ;String motCle = usObj[0] ;String id = usObj[1] ;String parentId = "";if(!id.equals("racine")){String[] parentUsObj = (String[])n.getParentNode().getUserObject() ;parentId = parentUsObj[1] ;}else{parentId = "racine" ;}rafraichirArbreMotsCles(arbreMC) ;String motCleModifie = "&motcle="+motCle+"&id="+id+"&parent="+parentId ;MCDao.modifierBaseDeDonnees(motCleModifie) ;}public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC){MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ;MCDao.setIMediateur(getIMediateur()) ;String[] usObj = (String[])n.getUserObject() ;String motCle = usObj[0] ;String id = usObj[1] ;String parentId = "";if(!id.equals("racine")){String[] parentUsObj = (String[])n.getParentNode().getUserObject() ;parentId = parentUsObj[1] ;}else{parentId = "racine" ;}rafraichirArbreMotsCles(arbreMC) ;String motCleModifie = "&motcle="+motCle+"&id="+id+"&parent="+parentId ;MCDao.deplacerBaseDeDonnees(motCleModifie) ;}}