/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) ; |
} |
} |
636,6 → 657,48 |
} |
} |
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) ; |
} |
} |
/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,16 → 81,21 |
cacheImage = (ListeImageCarnet)o ; |
} |
public void obtenirMetadonnees(Rafraichissable r, String id) |
public void rafraichirArbreMotsCles(Object o) |
{ |
arbreMotsCles = (Tree)o ; |
} |
for(Iterator it = cacheImage.keySet().iterator() ; it.hasNext() ;) |
public void rafraichirMotsCles(Object o) |
{ |
ImageCarnet im = (ImageCarnet)cacheImage.get(it.next()) ; |
motcles = (HashMap)o ; |
} |
if(im.getOrdre().equals(id)) |
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() ; |
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) ; |
} |
} |
public void mettreAjourMotsClesId(String text, String id) |
{ |
motcles.put(id, text) ; |
} |
public void mettreAJourBaseDeDonnees() |
{ |
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO(); |
188,5 → 211,29 |
getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ; |
} |
} |
public void afficherMotsCles() |
{ |
for(Iterator it = motcles.keySet().iterator() ; it.hasNext() ;) |
{ |
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) ; |
} |
} |
} |
} |