/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()) |
174,7 → 205,6 |
{ |
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,19 → 282,31 |
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")) |
{ |
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/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 ; |
/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)); |