Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 18 → Rev 19

/trunk/src/org/tela_botanica/client/image/ImageModele.java
3,9 → 3,10
import java.util.Iterator;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ImageAsynchroneDAO;
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.ListeImageCarnet;
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO;
 
/**
20,7 → 21,7
private ImageMediateur iMediateur = null ;
private ListeImage cacheImage = new ListeImage(0) ;
private ListeImageCarnet cacheImage = new ListeImageCarnet(0) ;
static ImageModele Instance(ImageMediateur im)
{
59,7 → 60,7
public void rafraichirListeImage(Object o)
{
cacheImage = (ListeImage)o ;
cacheImage = (ListeImageCarnet)o ;
}
public void obtenirMetadonnees(Rafraichissable r, String id)
91,7 → 92,24
ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ;
ic.miseAJourInfoGenerales(commentaires, date) ;
mettreAjourImageCarnet(ic) ;
}
}
public void mettreAJourBaseDeDonnees()
{
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO();
liDaO.setIMediateur(iMediateur);
liDaO.SynchroniserBaseDeDonnees(cacheImage);
}
public void mettreAjourImageCarnet(ImageCarnet ic)
{
ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO();
iaDaO.setIMediateur(iMediateur);
iaDaO.SynchroniserBaseDeDonnees(ic) ;
}
 
}
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java
1,6 → 1,7
package org.tela_botanica.client.image;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.interfaces.VueListable;
import org.tela_botanica.client.vues.GalerieImageVue;
import org.tela_botanica.client.vues.ListeImageVue;
import org.tela_botanica.client.vues.MenuImageVue;
58,6 → 59,8
private PanneauMetadonneesVue metadonneesIptcExif = null ;
private int dernierIndexOnglet = 0 ;
public static ImageMediateur Instance()
{
if(!estInstancie)
156,10 → 159,38
return detailsEtMotsCles;
}
public void synchroniserZoomListeGalerie(Object o, Rafraichissable r)
public VueListable getVueSelectionnee()
{
Panel active = ongletsImage.getActiveTab() ;
if(active != zoomImage)
{
if(active == galerieImage)
{
return galerieImage ;
}
else
{
return listeImage ;
}
}
else
{
if(dernierIndexOnglet == 0)
{
return galerieImage ;
}
else
{
return listeImage ;
}
 
}
}
public void synchroniserZoomListeGalerie(Object o, Rafraichissable r)
{
getIModele().rafraichirListeImage(o) ;
if(r != getGalerieImage())
173,8 → 204,7
if(r != getListeImage())
{
getListeImage().rafraichir(o,false);
}
}
}
190,12 → 220,12
public void mettreAJourInfo(String commentaires, String date)
{
String ids[] = getGalerieImage().getIdSelectionnee() ;
String ids[] = getVueSelectionnee().getIdSelectionnees() ;
getIModele().mettreAJourCacheImage(commentaires, date, ids) ;
}
public void uploaderImage()
public void uploaderImages()
{
getIModele().uploaderImages() ;
}
207,9 → 237,11
String imgUrl = rd.getAsString("url_image");
getZoomImage().rafraichir(imgUrl,false);
dernierIndexOnglet = 0 ;
if(DOM.eventGetType(e.getBrowserEvent()) == Event.ONDBLCLICK)
{
 
getOngletsImage().setActiveTab(1);
}
217,6 → 249,27
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
}
public void clicListeImage(int rowIndex,
EventObject e)
{
Record rd = getListeImage().getSelectionModel().getSelected() ;
String imgUrl = rd.getAsString("url_image");
getZoomImage().rafraichir(imgUrl,false);
dernierIndexOnglet = 2 ;
String imgNum = rd.getAsString("num_image");
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
}
public void doubleClicListeImage(int rowIndex,
EventObject e)
{
clicListeImage(rowIndex, e) ;
getOngletsImage().setActiveTab(1);
}
public void rafraichirToutesVues()
{
obtenirPhotoGalerie(getGalerieImage());
229,20 → 282,32
public void doubleClicZoomImage()
{
getOngletsImage().setActiveTab(0);
getOngletsImage().setActiveTab(dernierIndexOnglet);
}
public void clicBoutonZoomImage(String arg)
{
DataView dv = getGalerieImage().getDView();
Store st = getGalerieImage().getSt();
Store st ;
int selected ;
int storeIndex ;
Record nRec = null ;
final int selected = st.indexOf(dv.getSelectedRecords()[0]);
int storeIndex = dv.indexOf(selected);
if(getVueSelectionnee() == galerieImage)
{
DataView dv = getGalerieImage().getDView();
st = getGalerieImage().getSt();
selected = st.indexOf(dv.getSelectedRecords()[0]);
storeIndex = dv.indexOf(selected);
}
else
{
st = listeImage.getSt() ;
selected = st.indexOf(listeImage.getSelectionModel().getSelected()) ;
storeIndex = selected ;
}
if(arg.equals("prev"))
{
// si la photo séléctionnée est la première, on passe à la
279,9 → 344,18
if(nRec != null)
{
getZoomImage().rafraichir(nRec.getAsString("url_image"),false);
dv.select(storeIndex);
if(getGalerieImage().isRendered())
{
getGalerieImage().getDView().select(storeIndex);
}
if(getListeImage().isRendered())
{
getListeImage().getSelectionModel().selectRecords(nRec) ;
}
String imgNum = nRec.getAsString("num_image");
obtenirMetadonnees(metadonneesIptcExif,imgNum) ;
}
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java
6,11 → 6,13
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.interfaces.VueListable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImage;
import org.tela_botanica.client.modeles.ListeImageCarnet;
 
 
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.IntegerFieldDef;
31,6 → 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.event.GridCellListener;
import com.gwtext.client.widgets.grid.event.GridListener;
import com.gwtext.client.widgets.grid.event.GridRowListener;
import com.gwtext.client.widgets.layout.AnchorLayout;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtextux.client.data.BufferedStore;
40,7 → 45,7
* @author aurelien
*
*/
public class ListeImageVue extends GridPanel implements Rafraichissable {
public class ListeImageVue extends GridPanel implements Rafraichissable, VueListable {
77,12 → 82,12
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() {
urlImage = new ColumnConfig("Image","url_image_S",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");
String ImgUrl = record.getAsString("url_image_S");
String ImgNum = record.getAsString("num_image");
return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
}
100,13 → 105,17
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};
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
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("chargement") ;
ajouterListeners() ;
}
149,15 → 158,54
}
});
this.addGridRowListener(new GridRowListener() {
 
 
public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
getIMediateur().clicListeImage(rowIndex, e) ;
}
 
public void onRowContextMenu(GridPanel grid, int rowIndex,
EventObject e) {
// TODO Auto-generated method stub
}
 
public void onRowDblClick(GridPanel grid, int rowIndex,
EventObject e) {
getIMediateur().doubleClicListeImage(rowIndex, e) ;
}
 
});
}
public String[] getIdSelectionnees()
{
Record[] selection = this.getSelectionModel().getSelections() ;
int taille = selection.length ;
String id_selection[] = new String[taille] ;
for (int i = 0; i < selection.length; i++) {
id_selection[i] = selection[i].getAsString("num_image") ;
}
return id_selection ;
}
 
 
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof ListeImage && estInstancie)
if(nouvelleDonnees instanceof ListeImageCarnet && estInstancie)
{
ListeImage data = (ListeImage) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][5];
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][6];
int i = 0 ;
for (Iterator it = data.keySet().iterator(); it.hasNext();)
{
166,7 → 214,8
photoData[i][1] = im.getDate() ;
photoData[i][2] = im.getIptcCity() ;
photoData[i][3] = im.getMake()+" "+im.getModel() ;
photoData[i][4] = im.getUrl() ;
photoData[i][4] = im.getSUrl() ;
photoData[i][5] = im.getUrl() ;
i++ ;
}
175,8 → 224,9
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};
FieldDef defUrlImage = new StringFieldDef("url_image_S");
FieldDef defUrlImageL = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage,defUrlImageL};
final MemoryProxy dataProxy = new MemoryProxy(photoData);
final ArrayReader reader = new ArrayReader(new RecordDef(defTab));
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java
5,8 → 5,9
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.interfaces.VueListable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImage;
import org.tela_botanica.client.modeles.ListeImageCarnet;
 
 
import com.google.gwt.core.client.JavaScriptObject;
40,7 → 41,7
* @author aurelien
*
*/
public class GalerieImageVue extends Panel implements Rafraichissable, Observable {
public class GalerieImageVue extends Panel implements Rafraichissable, VueListable {
 
// instance du médiateur
private ImageMediateur iMediateur = null;
174,6 → 175,8
st = new Store(rd) ;
dView.setStore(st);
this.getDView().setLoadingText("chargement");
// ajouts de la gestion des evenements pour la dataview
ajouterListenersDataView();
186,9 → 189,9
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof ListeImage)
if(nouvelleDonnees instanceof ListeImageCarnet)
{
ListeImage data = (ListeImage) nouvelleDonnees ;
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ;
Object[][] photoData = new Object[data.size()][4];
int i = 0 ;
239,7 → 242,7
return st;
}
public String[] getIdSelectionnee()
public String[] getIdSelectionnees()
{
Record[] selection = getDView().getSelectedRecords() ;
int taille = selection.length ;