Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 11 → Rev 12

/trunk/src/org/tela_botanica/client/modeles/ListeImage.java
2,6 → 2,12
 
import java.util.Vector;
 
/**
* vecteur composé d'ImageCarnet, renvoyé par les objets de type DAO
* pour les images
* @author aurelien
*
*/
public class ListeImage extends Vector {
public ListeImage()
9,12 → 15,17
super();
}
public ListeImage(int taille)
{
super(taille);
}
public ListeImage(ImageCarnet[] ic)
{
super() ;
for (int i = 0; i < ic.length; i++)
{
if(ic[i] != null)
if(ic[i] != null && ic[i] instanceof ImageCarnet)
{
this.add(ic[i]);
}
/trunk/src/org/tela_botanica/client/modeles/ObservationAsynchroneDAO.java
5,7 → 5,6
*
*/
 
 
import org.tela_botanica.client.Util;
import org.tela_botanica.client.interfaces.iRetourObservation;
 
/trunk/src/org/tela_botanica/client/modeles/ImageUploaderAsynchroneDAO.java
New file
0,0 → 1,93
package org.tela_botanica.client.modeles;
 
import com.gwtext.client.widgets.Window;
import com.gwtextux.client.widgets.upload.UploadDialog;
 
 
/**
* DAO un peu particulier car il crée une fenetre d'upload différente
* suivant que le plugin Java est détecté ou non
*
*
*/
public class ImageUploaderAsynchroneDAO {
private static void appelerUploadSimple()
{
UploadDialog up = new UploadDialog("Upload simple de fichiers") ;
up.setUrl("jrest/InventoryImage");
up.show();
}
private static void appelerUploadMultiple()
{
final Window nPan = new Window("Upload multiple");
nPan.setSize(640, 800);
 
final String applet = "<applet code=\"wjhk.jupload2.JUploadApplet\" archive=\"wjhk.jupload.jar\" alt=\"\" mayscript=\"\" height=\"770\" width=\"625\">";
final String paramPostTarget = "<param name=\"postURL\" value=\"jrest/InventoryImage/\">";
final String paramUploadPolicy = "<param name=\"uploadPolicy\" value=\"PictureUploadPolicy\">";
final String paramMaxChunkSize = "<param name=\"maxChunkSize\" value=\"0\">";
final String paramMaxFileSize = "<param name=\"maxFileSize\" value=\"10000000\">";
final String paramMaxPicHeight = "<param name=\"maxPicHeight\" value=\"1200\">" ;
final String paramMaxPicWidth = "<param name=\"maxPicWidth\" value=\"1600\">" ;
final String paramTransmitMetaData = "<param name=\"pictureTransmitMetadata\" value=\"true\">";
final String paramFilesPerRequest = "<param name=\"nbFilesPerRequest\" value=\"1\">";
final String paramAllowedExtensions = "<param name=\"allowedFileExtensions\" value=\"jpg/jpeg/\">";
final String paramUploadSuccess = "<param name=\"stringUploadSuccess\" value=\"OK\">" ;
final String paramShowLogWindow = "<param name=\"showLogWindow\" value=\"false\">";
final String finApplet = "</applet>";
 
final String appelApplet = applet
+ paramPostTarget
+ paramUploadPolicy
+ paramMaxChunkSize
+ paramMaxFileSize
+ paramMaxPicHeight
+ paramMaxPicWidth
+ paramTransmitMetaData
+ paramFilesPerRequest
+ paramAllowedExtensions
+ paramUploadSuccess
+ paramShowLogWindow
+ finApplet;
 
nPan.setHtml(appelApplet);
nPan.show();
}
public static native void choisirMethodeUpload() /*-{
var agt=navigator.userAgent.toLowerCase();
var ie = (agt.indexOf("msie") != -1);
var ns = (navigator.appName.indexOf("Netscape") != -1);
var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
var mac = (agt.indexOf("mac")!=-1);
function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; }
function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }
if (ie && win) { pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader"); }
if (ns || !win) {
nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
}
pluginlist += navigator.javaEnabled() ? "Java," : "";
if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);
if(pluginlist.indexOf("Java")!=-1)
{
@org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO::appelerUploadMultiple()() ;
}
else
{
@org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO::appelerUploadSimple()() ;
}
}-*/;
 
}
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java
1,29 → 1,169
package org.tela_botanica.client.modeles;
 
public class ImageCarnet {
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
 
import com.google.gwt.json.client.JSONObject;
 
/**
*
* Classe representant une image du carnet,
* elle ne contient pas d'image à proprement parler mais
* plutôt les informations associées ainsi que l'url distante
*
*/
public class ImageCarnet extends HashMap {
private String url = null ;
private int numero = 0 ;
private String nom = null ;
/*
// infos sur l'image
private String url = " " ;
private String ordre = " " ;
private String utilisateur = " " ;
private boolean publiable = false ;
private String height = "0" ;
private String width = "0" ;
private String make = " " ;
private String model = " " ;
private String xResolution = "0" ;
private String yResolution = "0" ;
private String date = " " ;
private String GPS = " " ;
private String comment = " " ;
public ImageCarnet(String url,int numero,String nom)
// metadonnees exif
private String exifExposureTime = " " ;
private String exifFNumber = " " ;
private String exifVersion = " " ;
private String exifCompressedBitsPerPixel = " " ;
private String exifShutterSpeedValue = " " ;
private String exifApertureValue = " " ;
private String exifExposureBiasValue = " " ;
private String exifMaxApertureValue = " " ;
private String exifMeteringMode = " " ;
private String exifLightSource = " " ;
private String exifFlash = " " ;
private String exifFocalLength = " " ;
private String exifFlashPixVersion = " " ;
private String exifColorSpace = " " ;
private String exifInteroperabilityOffset = " " ;
private String exifFocalPlaneXResolution = " " ;
private String exifFocalPlaneYResolution = " " ;
private String exifFocalPlaneResolutionUnit = " " ;
private String exifSensingMethod = " " ;
private String exifFileSource = " " ;
private String exifCustomRendered = " " ;
private String exifExposureMode = " " ;
private String exifWhiteBalance = " " ;
private String exifDigitalZoomRatio = " " ;
private String exifSceneCaptureType = " " ;
private String exifGainControl = " " ;
private String exifContrast = " " ;
private String exifSaturation = " " ;
private String exifSharpness = " " ;
private String exifSubjectDistanceRange = " " ;
private String exifAutres = " " ;
// metadonnes iptc
private String iptcMotsCles = " " ;
private String iptcByLine = " " ;
private String iptcByLineTitle = " " ;
private String iptcCity = " " ;
private String iptcSubLocation = " " ;
private String iptcProvinceState = " " ;
private String iptcCountryPrimaryLocationCode = " " ;
private String iptcHeadline = " " ;
private String iptcCredit = " " ;
private String iptcCopyrightNotice = " " ;
private String iptcContact = " " ;
private String iptcAutres = " " ;
*/
 
public ImageCarnet(JSONObject image)
{
Set im = image.keySet() ;
for (Iterator iterator = im.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
if(image.get(key).isString() != null)
{
String valeur = image.get(key).isString().stringValue() ;
this.put(key, valeur) ;
}
}
 
}
public String renvoyerValeurCorrecte(String cle)
{
this.url = url ;
this.numero = numero ;
this.nom = nom ;
if(this.containsKey((cle)))
{
String valeur = (String)this.get(cle) ;
if(valeur.equals("null"))
{
return " " ;
}
else
{
return valeur ;
}
}
else
{
return " " ;
}
}
 
public String getOrdre() {
return renvoyerValeurCorrecte("ci_ordre") ;
}
public String getBaseUrl()
{
return "http://localhost/Documents/images_serveur/" ;
}
 
public String getUrl() {
return url;
return getBaseUrl()+(String)this.get("ci_id_image")+".jpg" ;
}
public String getSUrl() {
return getBaseUrl()+(String)this.get("ci_id_image")+"_S.jpg" ;
}
public String getMUrl() {
return getBaseUrl()+(String)this.get("ci_id_image")+"_M.jpg" ;
}
 
public int getNumero() {
return numero;
 
public String getDate() {
return renvoyerValeurCorrecte("ci_meta_date_time") ;
}
 
public String getNom() {
return nom;
 
public Object getIptcCity() {
return renvoyerValeurCorrecte("ci_meta_iptc_city") ;
}
 
 
public String getMake() {
return renvoyerValeurCorrecte("ci_meta_make") ;
}
 
 
public String getModel() {
return renvoyerValeurCorrecte("ci_meta_model") ;
}
}
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java
3,6 → 3,7
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
15,32 → 16,49
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
 
/**
* Data Object Access communiquant avec le serveur jrest fournissant la liste des images
* répondant à des critères donné
* @author aurelien
*
*/
public class ListeImageAsynchroneDAO {
public void ObtenirListeImages(final Rafraichissable r)
{
HTTPRequest.asyncGet("getphotos.php", new ResponseTextHandler() {
HTTPRequest.asyncGet("jrest/inventoryImageList/1/ci_publiable_eflore=0", new ResponseTextHandler() {
public void onCompletion(String responseText) {
final Object[][] photoData ;
final ListeImage photoData ;
 
final JSONValue responseValue = JSONParser.parse(responseText);
if (responseValue.isArray() != null) {
final JSONArray liste_noms = responseValue.isArray();
final JSONArray reponse = responseValue.isArray();
 
final int taillemax = liste_noms.size();
photoData = new Object[taillemax][2];
for (int j = 0; j < liste_noms.size(); j++) {
final JSONString debuturl = (JSONString) liste_noms
.get(j);
photoData[j] = new Object[]{"photo" + j,
"images/" + debuturl.stringValue()};
final int taillemax = reponse.size();
photoData = new ListeImage(taillemax);
for (int j = 0; j < taillemax ; j++) {
JSONObject image = (JSONObject)reponse.get(j) ;
photoData.add(new ImageCarnet(image)) ;
}
}
else
{
photoData = null ;
if(responseValue.isObject() != null)
{
photoData = new ListeImage(1);
photoData.add(new ImageCarnet(responseValue.isObject())) ;
}
else
{
photoData = null ;
}
}
r.rafraichir(photoData);
/trunk/src/org/tela_botanica/client/image/ImageModele.java
1,13 → 1,34
package org.tela_botanica.client.image;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ImageUploaderAsynchroneDAO;
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
 
/**
* Modèle d'accès aux données pour les images.
* C'est un singleton
* @author aurelien
*
*/
public class ImageModele {
private static boolean estInstancie = false ;
private ImageMediateur iMediateur = null ;
public ImageModele(ImageMediateur im) {
static ImageModele Instance(ImageMediateur im)
{
if(!estInstancie)
{
return new ImageModele(im);
}
else
{
return null ;
}
}
private ImageModele(ImageMediateur im) {
iMediateur = im ;
}
17,5 → 38,10
ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO();
liaDAO.ObtenirListeImages(r);
}
public void uploaderImages()
{
ImageUploaderAsynchroneDAO.choisirMethodeUpload() ;
}
 
}
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java
3,12 → 3,11
import org.tela_botanica.client.interfaces.Rafraichissable;
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.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.RegionPosition;
import com.gwtext.client.data.Record;
18,9 → 17,19
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
 
/**
* Mediateur gérant les interactions entre vues et les echanges de données
* C'est un singleton.
* @author aurelien
*
*/
public class ImageMediateur {
// cette classe est un singleton
private static boolean estInstancie = false ;
// controleur
private ImageModele iModele = null ;
39,9 → 48,28
// panneau details et mots clés
private final Panel detailsEtMotsCles = new Panel("Détails et mots clés");
private MenuImageVue menuImageVue = null ;
public ImageMediateur()
public static ImageMediateur Instance()
{
if(!estInstancie)
{
estInstancie = true ;
return new ImageMediateur() ;
}
else
{
return null ;
}
}
private ImageMediateur()
{
final BorderLayoutData regionNord = new BorderLayoutData(
RegionPosition.NORTH) ;
final BorderLayoutData regionCentre = new BorderLayoutData(
RegionPosition.CENTER) ;
 
final BorderLayoutData regionEst = new BorderLayoutData(
RegionPosition.EAST);
48,7 → 76,7
regionEst.setSplit(true);
 
iModele = new ImageModele(this);
iModele = ImageModele.Instance(this);
panneauPrincipalImage.setLayout(new BorderLayout());
57,6 → 85,7
Panel panneauListeImage = new Panel("Liste");
listeImage = new ListeImageVue(this);
panneauListeImage.setLayout(new FitLayout());
panneauListeImage.add(listeImage);
zoomImage = new ZoomImageVue(this);
65,12 → 94,14
ongletsImage.add(zoomImage);
ongletsImage.add(panneauListeImage);
menuImageVue = new MenuImageVue(this) ;
detailsEtMotsCles.setWidth("20%");
detailsEtMotsCles.setAnimCollapse(true);
detailsEtMotsCles.setTitleCollapse(true);
detailsEtMotsCles.setCollapsible(true);
panneauPrincipalImage.add(ongletsImage,new BorderLayoutData(RegionPosition.CENTER));
panneauPrincipalImage.add(ongletsImage,regionCentre);
panneauPrincipalImage.add(detailsEtMotsCles,regionEst);
}
127,7 → 158,12
getIModele().obtenirPhotoGalerie(r) ;
}
public void ClicGalerieImage(int index, Element node,
public void uploaderImage()
{
getIModele().uploaderImages() ;
}
public void clicGalerieImage(int index, Element node,
EventObject e)
{
Record rd = getGalerieImage().getDView().getRecord(node) ;
141,12 → 177,17
}
}
public void DoubleClicZoomImage()
public void montrerContextMenu(EventObject e)
{
menuImageVue.showAt(e.getXY()) ;
}
public void doubleClicZoomImage()
{
getOngletsImage().setActiveTab(0);
}
public void ClicBoutonZoomImage(String arg)
public void clicBoutonZoomImage(String arg)
{
DataView dv = getGalerieImage().getDView();
198,5 → 239,6
}
}
 
}
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java
2,13 → 2,18
package org.tela_botanica.client.vues;
 
 
import java.util.Iterator;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImage;
 
 
import com.google.gwt.user.client.Window;
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.Record;
import com.gwtext.client.data.RecordDef;
26,8 → 31,15
import com.gwtext.client.widgets.grid.GridPanel;
import com.gwtext.client.widgets.grid.GridView;
import com.gwtext.client.widgets.grid.Renderer;
import com.gwtext.client.widgets.layout.AnchorLayout;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtextux.client.data.BufferedStore;
 
/**
* Liste d'image composée de miniatures et d'information sur l'image
* @author aurelien
*
*/
public class ListeImageVue extends GridPanel implements Rafraichissable {
38,6 → 50,9
private ColumnConfig numImage ;
private ColumnConfig urlImage ;
private ColumnConfig lieImage ;
private ColumnConfig datImage ;
private ColumnConfig appImage ;
private ColumnModel modeleColonnes ;
50,40 → 65,43
public ListeImageVue(ImageMediateur im) {
super() ;
this.iMediateur = im ;
/*setAutoWidth(true);
setAutoHeight(true);*/
numImage = new ColumnConfig("numéro d'image","num_image",150,true);
numImage.setId("expCol");
urlImage = new ColumnConfig("Image","url_image",150,true,new Renderer() {
numImage = new ColumnConfig("numéro","num_image",100,true);
datImage = new ColumnConfig("date","dat_image",120,true);
lieImage = new ColumnConfig("lieu","lie_image",120,true);
appImage = new ColumnConfig("appareil","app_image",200,true);
urlImage = new ColumnConfig("Image","url_image",200,true,new Renderer() {
 
public String render(Object value, CellMetadata cellMetadata,
Record record, int rowIndex, int colNum, Store store) {
 
String ImgUrl = record.getAsString("url_image");
return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='example'> </div>";
String ImgNum = record.getAsString("num_image");
return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
}
 
});
ColumnConfig[] cm = {numImage,urlImage};
ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
modeleColonnes = new ColumnModel(cm);
this.setColumnModel(modeleColonnes);
this.setAutoExpandColumn("expCol");
this.setAutoScroll(true);
this.setAutoWidth(true);
this.setAutoHeight(true);
FieldDef defNumImage = new StringFieldDef("num_image");
FieldDef defDatImage = new StringFieldDef("dat_image");
FieldDef defLieImage = new StringFieldDef("lie_image");
FieldDef defAppImage = new StringFieldDef("app_image");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defUrlImage};
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
this.setStore(st);
this.getView().setAutoFill(true) ;
ajouterListeners() ;
131,18 → 149,36
 
public void rafraichir(Object nouvelleDonnees) {
Object[][] photoData = (Object[][])nouvelleDonnees ;
 
final MemoryProxy dataProxy = new MemoryProxy(photoData);
final ArrayReader reader = new ArrayReader(new RecordDef(
new FieldDef[]{new StringFieldDef("num_image"),
new StringFieldDef("url_image")}));
 
final Store photoStore = new Store(dataProxy, reader);
 
st = photoStore;
this.reconfigure(st, this.getColumnModel());
photoStore.load();
if(nouvelleDonnees instanceof ListeImage)
{
ListeImage data = (ListeImage) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][5];
for(int i = 0 ; i<data.size();i++)
{
ImageCarnet im = (ImageCarnet) data.elementAt(i);
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.getUrl() ;
}
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 defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage};
final MemoryProxy dataProxy = new MemoryProxy(photoData);
final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
final Store photoStore = new Store(dataProxy, reader);
st = photoStore;
this.reconfigure(st, this.getColumnModel());
photoStore.load();
}
}
 
 
/trunk/src/org/tela_botanica/client/vues/MenuImageVue.java
New file
0,0 → 1,100
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.image.ImageMediateur;
 
import com.google.gwt.user.client.ui.MenuItem;
import com.gwtext.client.core.EventObject;
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.MenuListener;
 
public class MenuImageVue extends Menu {
private ImageMediateur iMediateur ;
private Item uploaderImage = null ;
private Item supprimerImage = null ;
public MenuImageVue(ImageMediateur im)
{
super() ;
iMediateur = im ;
uploaderImage = new Item("Uploader des images") ;
addItem(uploaderImage);
//this.addItem(supprimerImage) ;
ajouterListeners() ;
}
public void ajouterListeners()
{
this.addListener(new MenuListener() {
 
 
public void doBeforeHide(Menu menu) {
// TODO Auto-generated method stub
}
 
 
public void doBeforeShow(Menu menu) {
}
 
public void onClick(Menu menu, String menuItemId, EventObject e) {
// TODO Auto-generated method stub
}
 
public void onHide(Menu menu) {
// TODO Auto-generated method stub
}
 
public void onItemClick(BaseItem item, EventObject e) {
if(item.equals(uploaderImage))
{
getIMediateur().uploaderImage() ;
hide() ;
}
}
 
public void onMouseOut(Menu menu, BaseItem menuItem, EventObject e) {
// TODO Auto-generated method stub
}
 
public void onMouseOver(Menu menu, BaseItem menuItem, EventObject e) {
// TODO Auto-generated method stub
}
 
public void onShow(Menu menu) {
 
}
 
}) ;
}
public ImageMediateur getIMediateur()
{
return iMediateur ;
}
 
}
/trunk/src/org/tela_botanica/client/vues/ZoomImageVue.java
33,7 → 33,7
public void onBrowserEvent(Event event) {
if (Event.ONDBLCLICK == DOM.eventGetType(event)) {
 
getIMediateur().DoubleClicZoomImage();
getIMediateur().doubleClicZoomImage();
}
}
};
71,7 → 71,7
 
public void onClick(Widget sender) {
getIMediateur().ClicBoutonZoomImage("prev");
getIMediateur().clicBoutonZoomImage("prev");
}
});
81,7 → 81,7
public void onClick(Widget sender) {
getIMediateur().ClicBoutonZoomImage("suiv");
getIMediateur().clicBoutonZoomImage("suiv");
}
});
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java
3,11 → 3,14
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImage;
 
 
import com.google.gwt.core.client.JavaScriptObject;
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.XTemplate;
import com.gwtext.client.data.ArrayReader;
29,6 → 32,11
import com.gwtext.client.widgets.event.DataViewListener;
import com.gwtext.client.widgets.event.DataViewListenerAdapter;
 
/**
* Galerie d'images miniatures
* @author aurelien
*
*/
public class GalerieImageVue extends Panel implements Rafraichissable, Observable {
 
// instance du médiateur
82,7 → 90,7
public void onClick(DataView source, int index, Element node,
EventObject e) {
getIMediateur().ClicGalerieImage(index, node, e);
getIMediateur().clicGalerieImage(index, node, e);
}
 
95,8 → 103,10
 
public void onContextMenu(DataView source, int index, Element node,
EventObject e) {
//TODO: appeler le mediateur
e.stopEvent() ;
getIMediateur().montrerContextMenu(e) ;
}
 
 
104,7 → 114,7
EventObject e) {
//TODO: appeler le mediateur
getIMediateur().ClicGalerieImage(index, node, e);
getIMediateur().clicGalerieImage(index, node, e);
}
 
128,7 → 138,7
new String[]{
"<tpl for='.'>",
"<div class='thumb-wrap' id='{num_image}'>",
"<div class='thumb'><img src='{url_image}' title='{num_image}'></div>",
"<div class='thumb'><img src='{url_image_S}' title='{num_image}'></div>",
"<span>{nom}</span></div>", "</tpl>",
"<div class='x-clear'></div>"});
template.compile();
144,6 → 154,7
dView.setTpl(template);
// parametre d'affichage de la dataview
this.setAutoScroll(true);
dView.setAutoHeight(true);
dView.setMultiSelect(true);
dView.setOverCls("x-view-over");
153,7 → 164,9
// creation du store
FieldDef defNumImage = new StringFieldDef("num_image");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defUrlImage};
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
FieldDef[] defTab = {defNumImage,defUrlImage,defUrlImageM,defUrlImageS};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
dView.setStore(st);
170,11 → 183,25
public void rafraichir(Object nouvelleDonnees) {
Object[][] photoData = (Object[][])nouvelleDonnees ;
if(nouvelleDonnees instanceof ListeImage)
{
ListeImage data = (ListeImage) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][4];
for(int i = 0 ; i<data.size();i++)
{
ImageCarnet im = (ImageCarnet) data.elementAt(i);
photoData[i][0] = im.getOrdre() ;
photoData[i][1] = im.getUrl() ;
photoData[i][2] = im.getSUrl() ;
photoData[i][3] = im.getMUrl() ;
}
final MemoryProxy dataProxy = new MemoryProxy(photoData);
final ArrayReader reader = new ArrayReader(new RecordDef(
new FieldDef[]{new StringFieldDef("num_image"),
new StringFieldDef("url_image")}));
new StringFieldDef("url_image"),
new StringFieldDef("url_image_S"),
new StringFieldDef("url_image_M")}));
final Store photoStore = new Store(dataProxy, reader);
photoStore.load();
182,6 → 209,7
st = photoStore;
dView.setStore(st);
dView.refresh();
}
}