/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java |
---|
91,11 → 91,34 |
String valeur = image.get(key).isString().stringValue() ; |
this.put(key, valeur) ; |
} |
else |
{ |
String valeur = " " ; |
this.put(key, valeur) ; |
} |
} |
} |
public String toString() |
{ |
String valeur = " "; |
for (Iterator iterator = this.keySet().iterator(); iterator.hasNext();) { |
String key = (String) iterator.next(); |
if(this.get(key) != null) |
{ |
valeur += "cle : "+key+" valeur :"+(String)this.get(key)+"\n" ; |
} |
} |
return valeur ; |
} |
public String renvoyerValeurCorrecte(String cle) |
{ |
if(this.containsKey((cle))) |
124,7 → 147,7 |
public String getBaseUrl() |
{ |
return "http://localhost/Documents/images_serveur/" ; |
return "http://162.38.234.9/Documents/images_serveur/" ; |
} |
public String getUrl() { |
166,4 → 189,71 |
return renvoyerValeurCorrecte("ci_meta_model") ; |
} |
public String[][] getMetadonnesIptc() { |
String[][] metaIptc = new String[12][2] ; |
int elem = 0 ; |
for (Iterator it = this.keySet().iterator(); it.hasNext();) |
{ |
String key = (String)it.next(); |
// on filtre le "ci" |
String type[] = key.split("_",3) ; |
// si c'est une metadonnee exif ou iptc |
if(type[1].equals("meta")) |
{ |
String[] genre = type[2].split("_",2) ; |
if(genre[0].equals("iptc")) |
{ |
String nom = genre[1] ; |
metaIptc[elem][0] = nom ; |
metaIptc[elem][1] = renvoyerValeurCorrecte(key) ; |
elem++ ; |
} |
} |
} |
return metaIptc ; |
} |
public Object[][] getMetadonnesExif() { |
String[][] metaExif = new String[31][2] ; |
int elem = 0 ; |
for (Iterator it = this.keySet().iterator(); it.hasNext();) |
{ |
String key = (String)it.next(); |
// on filtre le "ci" |
String type[] = key.split("_",3) ; |
// si c'est une metadonnee exif ou iptc |
if(type[1].equals("meta")) |
{ |
String[] genre = type[2].split("_",2) ; |
if(genre[0].equals("exif")) |
{ |
String nom = genre[1] ; |
metaExif[elem][0] = nom ; |
metaExif[elem][1] = renvoyerValeurCorrecte(key) ; |
elem++ ; |
} |
} |
} |
return metaExif ; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java |
---|
61,7 → 61,7 |
} |
} |
r.rafraichir(photoData); |
r.rafraichir(photoData,true); |
} |
}); |
} |
/trunk/src/org/tela_botanica/client/image/ImageModele.java |
---|
1,7 → 1,11 |
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; |
/** |
16,6 → 20,8 |
private ImageMediateur iMediateur = null ; |
private ListeImage cacheImage = new ListeImage(0) ; |
static ImageModele Instance(ImageMediateur im) |
{ |
if(!estInstancie) |
43,5 → 49,31 |
{ |
ImageUploaderAsynchroneDAO.choisirMethodeUpload() ; |
} |
public void rafraichirListeImage(Object o) |
{ |
cacheImage = (ListeImage)o ; |
} |
public void obtenirMetadonnees(Rafraichissable r, String id) |
{ |
for(Iterator it = cacheImage.iterator() ; it.hasNext() ;) |
{ |
ImageCarnet im = (ImageCarnet)it.next() ; |
if(im.getOrdre().equals(id)) |
{ |
Object meta[] = new Object[2] ; |
meta[0] = im.getMetadonnesExif() ; |
meta[1] = im.getMetadonnesIptc() ; |
r.rafraichir(meta,false) ; |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java |
---|
4,11 → 4,14 |
import org.tela_botanica.client.vues.GalerieImageVue; |
import org.tela_botanica.client.vues.ListeImageVue; |
import org.tela_botanica.client.vues.MenuImageVue; |
import org.tela_botanica.client.vues.PanneauMetadonneesVue; |
import org.tela_botanica.client.vues.ZoomImageVue; |
import com.google.gwt.user.client.DOM; |
import com.google.gwt.user.client.Element; |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.Window; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Function; |
import com.gwtext.client.core.RegionPosition; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.Store; |
15,6 → 18,8 |
import com.gwtext.client.widgets.DataView; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.TabPanel; |
import com.gwtext.client.widgets.Tool; |
import com.gwtext.client.widgets.Tool.ToolType; |
import com.gwtext.client.widgets.layout.BorderLayout; |
import com.gwtext.client.widgets.layout.BorderLayoutData; |
import com.gwtext.client.widgets.layout.FitLayout; |
40,6 → 45,7 |
// Panneau à onglet pour la liste, la galerie et la vue en grand |
private TabPanel ongletsImage = null ; |
private Panel panneauMenuEtOngletsImage = null ; |
private GalerieImageVue galerieImage = null ; |
private ListeImageVue listeImage = null ; |
50,6 → 56,8 |
private MenuImageVue menuImageVue = null ; |
private PanneauMetadonneesVue metadonneesIptcExif = null ; |
public static ImageMediateur Instance() |
{ |
if(!estInstancie) |
79,6 → 87,8 |
iModele = ImageModele.Instance(this); |
panneauPrincipalImage.setLayout(new BorderLayout()); |
panneauMenuEtOngletsImage = new Panel() ; |
panneauMenuEtOngletsImage.setLayout(new BorderLayout()) ; |
ongletsImage = new TabPanel(); |
galerieImage = new GalerieImageVue(this) ; |
101,7 → 111,14 |
detailsEtMotsCles.setTitleCollapse(true); |
detailsEtMotsCles.setCollapsible(true); |
panneauPrincipalImage.add(ongletsImage,regionCentre); |
metadonneesIptcExif = new PanneauMetadonneesVue(this) ; |
detailsEtMotsCles.add(metadonneesIptcExif) ; |
panneauMenuEtOngletsImage.add(menuImageVue,regionNord) ; |
panneauMenuEtOngletsImage.add(ongletsImage,regionCentre); |
panneauPrincipalImage.add(panneauMenuEtOngletsImage,regionCentre); |
panneauPrincipalImage.add(detailsEtMotsCles,regionEst); |
} |
138,18 → 155,23 |
public void synchroniserZoomListeGalerie(Object o, Rafraichissable r) |
{ |
getIModele().rafraichirListeImage(o) ; |
if(r != getGalerieImage()) |
{ |
getGalerieImage().rafraichir(o); |
getGalerieImage().rafraichir(o,false); |
} |
if(r != getZoomImage()) |
{ |
getZoomImage().rafraichir(o); |
getZoomImage().rafraichir(o,false); |
} |
if(r != getListeImage()) |
{ |
getListeImage().rafraichir(o); |
getListeImage().rafraichir(o,false); |
} |
} |
158,6 → 180,11 |
getIModele().obtenirPhotoGalerie(r) ; |
} |
public void obtenirMetadonnees(Rafraichissable r, String id) |
{ |
getIModele().obtenirMetadonnees(r, id) ; |
} |
public void uploaderImage() |
{ |
getIModele().uploaderImages() ; |
169,14 → 196,18 |
Record rd = getGalerieImage().getDView().getRecord(node) ; |
String imgUrl = rd.getAsString("url_image"); |
getZoomImage().rafraichir(imgUrl); |
getZoomImage().rafraichir(imgUrl,false); |
if(DOM.eventGetType(e.getBrowserEvent()) == Event.ONDBLCLICK) |
{ |
getOngletsImage().setActiveTab(1); |
} |
String imgNum = rd.getAsString("num_image"); |
obtenirMetadonnees(metadonneesIptcExif,imgNum) ; |
} |
public void montrerContextMenu(EventObject e) |
{ |
menuImageVue.showAt(e.getXY()) ; |
234,8 → 265,11 |
if(nRec != null) |
{ |
getZoomImage().rafraichir(nRec.getAsString("url_image")); |
getZoomImage().rafraichir(nRec.getAsString("url_image"),false); |
dv.select(storeIndex); |
String imgNum = nRec.getAsString("num_image"); |
obtenirMetadonnees(metadonneesIptcExif,imgNum) ; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ZoomImageVue.java |
---|
55,7 → 55,7 |
} |
public void rafraichir(Object nouvelleDonnees) { |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof String) |
{ |
/trunk/src/org/tela_botanica/client/vues/PanneauMetadonneesVue.java |
---|
New file |
0,0 → 1,125 |
package org.tela_botanica.client.vues; |
import java.util.Date; |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import com.gwtext.client.core.NameValuePair; |
import com.gwtext.client.data.Store; |
import com.gwtext.client.data.StringFieldDef; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.TabPanel; |
import com.gwtext.client.widgets.grid.GridView; |
import com.gwtext.client.widgets.grid.PropertyGridPanel; |
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable { |
private ImageMediateur imediateur = null ; |
private PropertyGridPanel ExifGrid = null ; |
private PropertyGridPanel IptcGrid = null ; |
private GridView gViewExif = null ; |
private GridView gViewIptc = null ; |
private Panel panneauExifGrid = null; |
private Panel panneauIptcGrid = null ; |
private Panel panneauInfoGrid = null ; |
boolean estInstancie = false ; |
public PanneauMetadonneesVue(ImageMediateur im) |
{ |
super() ; |
imediateur = im ; |
panneauExifGrid = new Panel("Exif") ; |
panneauIptcGrid = new Panel("Iptc") ; |
panneauInfoGrid = new Panel("info") ; |
this.add(panneauInfoGrid) ; |
this.add(panneauExifGrid) ; |
this.add(panneauIptcGrid) ; |
gViewExif = new GridView(); |
gViewExif.setForceFit(true); |
ExifGrid = new PropertyGridPanel() ; |
ExifGrid.setId("meta_exif"); |
ExifGrid.setView(gViewExif); |
ExifGrid.setNameText("Métadonnées Exif"); |
ExifGrid.setAutoWidth(true); |
ExifGrid.setAutoHeight(true); |
ExifGrid.setSorted(false); |
gViewIptc = new GridView(); |
gViewIptc.setForceFit(true); |
IptcGrid = new PropertyGridPanel() ; |
IptcGrid.setId("meta_iptc"); |
IptcGrid.setView(gViewIptc); |
IptcGrid.setNameText("Métadonnées IPTC"); |
IptcGrid.setAutoWidth(true); |
IptcGrid.setAutoHeight(true); |
IptcGrid.setSorted(false); |
panneauExifGrid.add(ExifGrid); |
panneauIptcGrid.add(IptcGrid); |
} |
public ImageMediateur getIMediateur() |
{ |
return imediateur ; |
} |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof Object[]) |
{ |
Object meta[] = (Object[])nouvelleDonnees ; |
String[][] exif = (String[][])meta[0] ; |
String[][] iptc = (String[][])meta[1] ; |
NameValuePair[] exifSource = new NameValuePair[exif.length] ; |
NameValuePair[] iptcSource = new NameValuePair[iptc.length] ; |
int maxLength ; |
if(exif.length <= iptc.length) |
{ |
maxLength = iptc.length ; |
} |
else |
{ |
maxLength = exif.length ; |
} |
for(int i = 0; i < maxLength ; i++) |
{ |
if(i < exif.length) |
{ |
exifSource[i] = new NameValuePair(exif[i][0],exif[i][1]) ; |
} |
if(i < iptc.length) |
{ |
iptcSource[i] = new NameValuePair(iptc[i][0],iptc[i][1]) ; |
} |
} |
ExifGrid.setSource(exifSource); |
IptcGrid.setSource(iptcSource); |
gViewExif.refresh(true) ; |
gViewIptc.refresh(true) ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java |
---|
181,7 → 181,7 |
public void rafraichir(Object nouvelleDonnees) { |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof ListeImage) |
{ |
209,7 → 209,13 |
st = photoStore; |
dView.setStore(st); |
dView.refresh(); |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java |
---|
55,8 → 55,10 |
private ColumnConfig appImage ; |
private ColumnModel modeleColonnes ; |
private boolean estInstancie = false ; |
// données locales |
// store qui gère les données de la liste d'images |
private Store st = null ; |
67,6 → 69,8 |
super() ; |
this.setId("listeImageGrid") ; |
this.iMediateur = im ; |
numImage = new ColumnConfig("numéro","num_image",100,true); |
112,6 → 116,7 |
private void initialiser() { |
getIMediateur().obtenirPhotoGalerie(this); |
estInstancie = true ; |
} |
147,9 → 152,9 |
} |
public void rafraichir(Object nouvelleDonnees) { |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof ListeImage) |
if(nouvelleDonnees instanceof ListeImage && estInstancie) |
{ |
ListeImage data = (ListeImage) nouvelleDonnees ; |
Object[][] photoData = new Object[data.size()][5]; |
179,6 → 184,11 |
this.reconfigure(st, this.getColumnModel()); |
photoStore.load(); |
} |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
/trunk/src/org/tela_botanica/client/interfaces/Rafraichissable.java |
---|
2,6 → 2,6 |
public interface Rafraichissable { |
public void rafraichir(Object nouvelleDonnees); |
public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement); |
} |