Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 22 → Rev 21

/trunk/src/org/tela_botanica/client/modeles/ImageAsynchroneDAO.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/ListeImageCarnet.java
File deleted
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java
15,6 → 15,69
*/
public class ImageCarnet extends HashMap {
/*
// 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 = " " ;
// 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)
{
63,26 → 126,19
String valeur = (String)this.get(cle) ;
if(valeur.equals("null"))
{
return "null" ;
return " " ;
}
else
{
char nullChar = '\u0000' ;
String sNull = ""+nullChar ;
valeur = valeur.replaceAll(sNull, "") ;
return valeur ;
}
}
else
{
return "null" ;
return " " ;
}
}
 
public String getId() {
return renvoyerValeurCorrecte("ci_id_image") ;
}
public String getOrdre() {
216,8 → 272,14
public void miseAJourInfoGenerales(String commentaires, String date)
{
if(this.containsKey("ci_meta_comment"))
{
put("ci_meta_comment",commentaires) ;
}
if(this.containsKey("ci_meta_date"))
{
put("ci_meta_date",date) ;
}
}
}
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java
12,7 → 12,6
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.Window;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.MemoryProxy;
40,7 → 39,7
HTTPRequest.asyncGet("jrest/inventoryImageList/1/ci_publiable_eflore=0", new ResponseTextHandler() {
public void onCompletion(String responseText) {
final ListeImageCarnet photoData ;
final ListeImage photoData ;
 
final JSONValue responseValue = JSONParser.parse(responseText);
if (responseValue.isArray() != null) {
48,7 → 47,7
final JSONArray reponse = responseValue.isArray();
 
final int taillemax = reponse.size();
photoData = new ListeImageCarnet(taillemax);
photoData = new ListeImage(taillemax);
for (int j = 0; j < taillemax ; j++) {
65,13 → 64,13
{
if(responseValue.isObject() != null)
{
photoData = new ListeImageCarnet(1);
photoData = new ListeImage(1);
ImageCarnet im = new ImageCarnet(responseValue.isObject()) ;
photoData.put(im.getOrdre(),im) ;
}
else
{
photoData = new ListeImageCarnet(0) ;
photoData = null ;
}
}
80,57 → 79,14
});
}
public void SynchroniserBaseDeDonnees(ListeImageCarnet li)
public void SynchroniserBaseDeDonnees(ListeImage li)
{
for(Iterator listIt = li.keySet().iterator() ; listIt.hasNext() ;)
for(Iterator it = li.keySet().iterator() ; it.hasNext() ;)
{
String postData = "" ;
ImageCarnet enCours = (ImageCarnet)li.get(listIt.next()) ;
System.out.println(enCours.toString()+"\n");
for(Iterator imgIt = enCours.keySet().iterator();imgIt.hasNext();)
{
String key = (String)imgIt.next() ;
String valeur = enCours.renvoyerValeurCorrecte(key) ;
valeur.replaceAll("'", "\'") ;
postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ;
}
//System.out.println(postData);
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() {
public void onCompletion(String responseText) {
}
}) ;
// HTTPRequest.asyncPost("jrest/inventoryImageList/1/", postData, handler)
}
}
public void supprimerBaseDeDonnees(String[] ids)
{
String postData = "" ;
postData += "&action=DELETE" ;
String uid = "" ;
for (int i = 0; i < ids.length; i++) {
uid += ids[i]+"," ;
}
HTTPRequest.asyncPost("jrest/inventoryImageList/0/"+uid, postData, new ResponseTextHandler() {
public void onCompletion(String responseText) {
iMediateur.rafraichirToutesVues() ;
}
}) ;
}
 
}
/trunk/src/org/tela_botanica/client/modeles/ListeImage.java
New file
0,0 → 1,36
package org.tela_botanica.client.modeles;
 
import java.util.HashMap;
import java.util.Vector;
 
/**
* vecteur composé d'ImageCarnet, renvoyé par les objets de type DAO
* pour les images
* @author aurelien
*
*/
public class ListeImage extends HashMap {
public ListeImage()
{
super();
}
public ListeImage(int taille)
{
super(taille);
}
public ListeImage(ImageCarnet[] ic)
{
super() ;
for (int i = 0; i < ic.length; i++)
{
if(ic[i] != null && ic[i] instanceof ImageCarnet)
{
this.put(ic[i].getOrdre(),ic[i]);
}
}
}
 
}
/trunk/src/org/tela_botanica/client/vues/BarreOutilsVue.java
File deleted
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java
11,7 → 11,6
import org.tela_botanica.client.modeles.ListeImageCarnet;
 
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
23,11 → 22,7
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StoreMgr;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ComponentListenerAdapter;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.PanelListener;
38,12 → 33,9
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.grid.RowSelectionModel;
import com.gwtext.client.widgets.grid.event.GridCellListener;
import com.gwtext.client.widgets.grid.event.GridListener;
import com.gwtext.client.widgets.grid.event.GridRowListener;
import com.gwtext.client.widgets.grid.event.RowSelectionListener;
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
import com.gwtext.client.widgets.layout.AnchorLayout;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtextux.client.data.BufferedStore;
109,32 → 101,45
this.setAutoWidth(true);
// creation du store
FieldDef defNumImage = new IntegerFieldDef("num_image");
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 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};
FieldDef defUrlImage = new StringFieldDef("url_imag");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
this.setStore(st);
this.getView().setAutoFill(true) ;
//this.setLoadMask(true) ;
this.setLoadMask(true) ;
this.setLoadMask("chargement") ;
ajouterListeners() ;
}
// role : configurer les colonnes affichées dans la grille
private void initialiser() {
getIMediateur().obtenirPhotoGalerie(this);
estInstancie = true ;
}
public void ajouterListeners()
{
{
this.addListener(new ContainerListenerAdapter() {
 
 
public boolean doBeforeRender(Component component)
{
initialiser();
return true ;
}
public void onHide(Component component) {
// TODO Auto-generated method stub
141,22 → 146,16
}
 
 
public void onRender(Component component) {
 
if(!isEstInstancie())
{
setEstInstancie(true) ;
getIMediateur().synchroniserSelection("galerie") ;
}
// TODO Auto-generated method stub
}
 
 
public void onShow(Component component) {
}
 
});
164,44 → 163,25
 
 
public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
;
getIMediateur().clicListeImage(rowIndex) ;
getIMediateur().clicListeImage(rowIndex, e) ;
}
 
public void onRowContextMenu(GridPanel grid, int rowIndex,
EventObject e) {
// TODO Auto-generated method stub
getIMediateur().montrerContextMenu(e) ;
}
 
public void onRowDblClick(GridPanel grid, int rowIndex,
EventObject e) {
 
getIMediateur().doubleClicListeImage(rowIndex) ;
getIMediateur().doubleClicListeImage(rowIndex, e) ;
}
});
this.getSelectionModel().addListener(new RowSelectionListenerAdapter() {
 
public void onSelectionChange(RowSelectionModel sm) {
if(sm.getCount() <= 0)
{
getIMediateur().aucuneSelection() ;
}
else
{
getIMediateur().selection() ;
getIMediateur().synchroniserSelection("liste");
}
}
});
}
222,17 → 202,45
 
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof Store)
if(nouvelleDonnees instanceof ListeImageCarnet && estInstancie)
{
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][6];
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.getUrl() ;
i++ ;
}
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_S");
FieldDef defUrlImageL = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage,defUrlImageL};
st = (Store)nouvelleDonnees;
st.load();
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();
}
if(repandreRafraichissement)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ;
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ;
}
}
 
265,39 → 273,6
public ColumnConfig getCl() {
return cl;
}
 
 
/**
* @return the estInstancie
*/
public boolean isEstInstancie() {
return estInstancie;
}
 
 
/**
* @param estInstancie the estInstancie to set
*/
public void setEstInstancie(boolean estInstancie) {
this.estInstancie = estInstancie;
}
 
 
/**
* @param mediateur the iMediateur to set
*/
public void setIMediateur(ImageMediateur mediateur) {
iMediateur = mediateur;
}
 
public void selectionnerEnregistrements(Record[] sel) {
if(isEstInstancie())
{
getSelectionModel().clearSelections() ;
getSelectionModel().selectRecords(sel) ;
}
}
 
/trunk/src/org/tela_botanica/client/vues/MenuImageVue.java
4,7 → 4,6
 
import com.google.gwt.user.client.ui.MenuItem;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
25,9 → 24,8
iMediateur = im ;
uploaderImage = new Item("Uploader des images") ;
supprimerImage = new Item("Supprimer les images selectionnées") ;
addItem(uploaderImage);
addItem(supprimerImage) ;
//this.addItem(supprimerImage) ;
ajouterListeners() ;
65,17 → 63,11
if(item.equals(uploaderImage))
{
getIMediateur().uploaderImages() ;
getIMediateur().uploaderImage() ;
hide() ;
}
if(item.equals(supprimerImage))
{
getIMediateur().supprimerImages() ;
hide() ;
}
}
 
/trunk/src/org/tela_botanica/client/vues/ZoomImageVue.java
40,7 → 40,7
 
image.sinkEvents(Event.ONDBLCLICK);
image.setUrl("vide.jpg");
image.setUrl("image/vide.jpg");
this.setLayout(new BorderLayout());
61,26 → 61,10
{
getImage().setUrl((String)nouvelleDonnees);
}
else
{
getImage().setUrl("/images/vide.jpeg") ;
}
}
public void desactiverPanneau()
{
getImage().setUrl("/images/vide.jpeg") ;
prev.setEnabled(false) ;
suiv.setEnabled(false);
}
public void activerPanneau()
{
prev.setEnabled(true);
suiv.setEnabled(true);
}
public void ajouterListenersBoutons()
{
prev.addClickListener(new ClickListener() {
/trunk/src/org/tela_botanica/client/vues/PanneauMetadonneesVue.java
1,7 → 1,6
package org.tela_botanica.client.vues;
 
import java.util.Date;
import java.util.HashMap;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
31,8 → 30,6
import com.gwtext.client.widgets.layout.VerticalLayout;
import com.gwtext.client.widgets.menu.DateItem;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
 
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable {
 
48,9 → 45,6
private Panel panneauIptcGrid = null ;
private Panel panneauInfoGrid = null ;
private TreePanel panneauMotsCles = null ;
private HashMap motclesIds = null ;
private TextField commentaireGeneral = null ;
private DateField dateImage = null ;
Button validerInfo = null ;
66,13 → 60,7
panneauExifGrid = new Panel("Exif") ;
panneauIptcGrid = new Panel("Iptc") ;
panneauInfoGrid = new Panel("info") ;
panneauMotsCles = new TreePanel("Mots clés") ;
TreeNode root = new TreeNode("Mots clés") ;
panneauMotsCles.setRootNode(root) ;
panneauMotsCles.setRootVisible(false);
panneauInfoGrid.setLayout(new VerticalLayout());
panneauInfoGrid.setHeight(500);
Label labelComm = new Label("Commentaires :") ;
108,7 → 96,6
this.add(panneauInfoGrid) ;
this.add(panneauExifGrid) ;
this.add(panneauIptcGrid) ;
this.add(panneauMotsCles) ;
gViewExif = new GridView();
gViewExif.setForceFit(true);
120,7 → 107,6
ExifGrid.setAutoWidth(true);
ExifGrid.setAutoHeight(true);
ExifGrid.setSorted(false);
ExifGrid.setDisableSelection(true);
gViewIptc = new GridView();
gViewIptc.setForceFit(true);
137,20 → 123,8
panneauExifGrid.add(ExifGrid);
panneauIptcGrid.add(IptcGrid);
this.doLayout(true) ;
}
public void desactiverPanneau()
{
this.setDisabled(true) ;
}
public void activerPanneau()
{
this.setDisabled(false) ;
}
public ImageMediateur getIMediateur()
{
return imediateur ;
199,7 → 173,11
ExifGrid.setSource(exifSource);
IptcGrid.setSource(iptcSource);
 
gViewExif.refresh(true) ;
gViewIptc.refresh(true) ;
}
}
}
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java
18,7 → 18,6
import com.gwtext.client.core.XTemplate;
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;
125,16 → 124,8
 
 
public void onSelectionChange(DataView view, Element[] selections) {
//TODO: appeler le mediateur
if(selections.length <= 0)
{
getIMediateur().aucuneSelection();
}
else
{
getIMediateur().selection() ;
getIMediateur().synchroniserSelection("galerie") ;
}
}
});
151,7 → 142,7
new String[]{
"<tpl for='.'>",
"<div class='thumb-wrap' id='{num_image}'>",
"<div class='thumb'><img src='{url_image_M}' 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();
175,14 → 166,11
// 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 defNumImage = new StringFieldDef("num_image");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
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};
FieldDef[] defTab = {defNumImage,defUrlImage,defUrlImageM,defUrlImageS};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
dView.setStore(st);
201,18 → 189,42
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof Store)
{
st = (Store)nouvelleDonnees;
st.load() ;
if(nouvelleDonnees instanceof ListeImageCarnet)
{
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][4];
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.getUrl() ;
photoData[i][2] = im.getSUrl() ;
photoData[i][3] = im.getMUrl() ;
i++ ;
}
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_S"),
new StringFieldDef("url_image_M")}));
final Store photoStore = new Store(dataProxy, reader);
photoStore.load();
st = photoStore;
dView.setStore(st);
dView.refresh();
dView.refresh();
if(repandreRafraichissement)
{
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ;
}
}
if(repandreRafraichissement)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ;
}
 
}
 
 
243,11 → 255,4
return id_selection ;
}
 
 
public void selectionnerImages(int[] ids) {
getDView().select(ids) ;
}
}