Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 24 → Rev 25

/trunk/src/org/tela_botanica/client/image/ImageModele.java
1,5 → 1,6
package org.tela_botanica.client.image;
 
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
9,13 → 10,16
import org.tela_botanica.client.modeles.ListeImageCarnet;
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
 
import com.google.gwt.user.client.ui.Tree;
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.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.tree.TreeNode;
 
/**
* Modèle d'accès aux données pour les images.
31,8 → 35,12
private ListeImageCarnet cacheImage = new ListeImageCarnet(0) ;
private HashMap motcles = new HashMap(0) ;
private Store st = null ;
private Tree arbreMotsCles = null ;
static ImageModele Instance(ImageMediateur im)
{
if(!estInstancie)
73,15 → 81,20
cacheImage = (ListeImageCarnet)o ;
}
public void rafraichirArbreMotsCles(Object o)
{
arbreMotsCles = (Tree)o ;
}
public void rafraichirMotsCles(Object o)
{
motcles = (HashMap)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))
{
ImageCarnet im = (ImageCarnet)cacheImage.get(id) ;
Object meta[] = new Object[3] ;
meta[0] = im.getMetadonnesExif() ;
89,24 → 102,34
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++) {
for (int i = 0; i < ids.length; i++)
{
String key = ids[i] ;
ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
ic.miseAJourInfoGenerales(commentaires, date) ;
mettreAjourImageCarnet(ic) ;
mettreAjourImageCarnet(ic) ;
}
}
public void mettreAjourMotsClesId(String text, String id)
{
motcles.put(id, text) ;
}
public void mettreAJourBaseDeDonnees()
{
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
146,47 → 169,71
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() ;
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 store
FieldDef 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) ;
i++ ;
}
 
// creation du store
FieldDef 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 ;
final MemoryProxy dataProxy = new MemoryProxy(photoData);
final ArrayReader reader = new ArrayReader(rd);
 
final Store photoStore = new Store(dataProxy, reader);
if(repandreRafraichissement)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ;
}
rafraichirListeImage(nouvelleDonnees);
st = photoStore ;
}
if(repandreRafraichissement)
public void afficherMotsCles()
{
for(Iterator it = motcles.keySet().iterator() ; it.hasNext() ;)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ;
String key = (String)it.next() ;
String valeur = (String)motcles.get(key) ;
System.out.println("clé : "+key+" valeur : "+valeur);
}
}
 
public void mettreAjourMotsCles(String[] ids, String motsClesEnCours) {
}
for (int i = 0; i < ids.length; i++) {
if(cacheImage.containsKey(ids[i]))
{
ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ;
ic.mettreAjourMotsCles(motsClesEnCours) ;
}
}
}
}
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java
2,6 → 2,7
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.interfaces.VueListable;
import org.tela_botanica.client.vues.ArbreMotsClesVue;
import org.tela_botanica.client.vues.BarreOutilsVue;
import org.tela_botanica.client.vues.GalerieImageVue;
import org.tela_botanica.client.vues.ListeImageVue;
23,6 → 24,12
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
import com.gwtext.client.widgets.tree.TreeEditor;
import com.gwtext.client.widgets.tree.TreeNode;
 
/**
* Mediateur gérant les interactions entre vues et les echanges de données
143,7 → 150,7
menuImageVue = new MenuImageVue(this) ;
barreOutilsVue = new BarreOutilsVue(this) ;
detailsEtMotsCles.setWidth("20%");
detailsEtMotsCles.setWidth("25%");
detailsEtMotsCles.setAnimCollapse(true);
detailsEtMotsCles.setTitleCollapse(true);
detailsEtMotsCles.setCollapsible(true);
355,6 → 362,16
}
/**
* demande au modèle les ids des mots clés associés à une image
* @param r la vue demandeuse de mise à jour
* @param id l'identifiant de l'image
*/
public void obtenirMotsClesId(Rafraichissable r, String id)
{
getIModele().obtenirMotsClesId(r, id) ;
}
/**
* envoie au modèle une demande de mise à jour des informations modifiables
* associées à une image
* @param commentaires le commentaire de l'image
399,6 → 416,8
String imgNum = rd.getAsString("num_image");
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum) ;
}
/**
417,6 → 436,7
String imgNum = rd.getAsString("num_image");
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum) ;
}
/**
542,6 → 562,7
String imgNum = nRec.getAsString("num_image");
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum) ;
}
}
635,6 → 656,48
setSelection(true);
}
}
 
public void montrerContextMenuArbre(final TreeNode n, EventObject ev, final TreeEditor te)
{
Menu mn = new Menu() ;
final com.gwtext.client.widgets.menu.Item ajoutN = new Item("Ajouter mot clé");
final com.gwtext.client.widgets.menu.Item suppN = new Item("Supprimer mot clé");
mn.addItem(ajoutN);
mn.addItem(suppN);
mn.addListener(new MenuListenerAdapter() {
public void onItemClick(BaseItem item, EventObject e)
{
if(item.equals(suppN))
{
getMetadonneesIptcExif().getPanneauMotsCles().supprimerNoeud(n) ;
}
if(item.equals(ajoutN))
{
getMetadonneesIptcExif().getPanneauMotsCles().ajouterNoeud(n) ;
}
}
});
mn.showAt(ev.getXY());
}
 
public void mettreAjourMotsClesId(String text, String id) {
getIModele().mettreAjourMotsClesId(text, id) ;
}
 
public void mettreAjourMotsCles(String motsClesEnCours) {
String[] ids = getGalerieImage().getIdSelectionnees() ;
getIModele().mettreAjourMotsCles(ids,motsClesEnCours) ;
}