Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 4 → Rev 5

/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java
7,9 → 7,12
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.XTemplate;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
16,13 → 19,17
import com.gwtext.client.util.Format;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.DataView;
import com.gwtext.client.widgets.Observable;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.DataView.Data;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.DataViewListener;
import com.gwtext.client.widgets.event.DataViewListenerAdapter;
 
public class GalerieImageVue extends Panel implements Rafraichissable {
public class GalerieImageVue extends Panel implements Rafraichissable, Observable {
 
// instance du médiateur
private ImageMediateur iMediateur = null;
34,54 → 41,38
super("Galerie");
iMediateur = im ;
// Preparation de la dataview et du template
// le template va créer une div contenant une image
// pour chacune des photos
final XTemplate template = new XTemplate(
new String[]{
"<tpl for='.'>",
"<div class='thumb-wrap' id='{nom}'>",
"<div class='thumb'><img src='{url}' title='{nom}'></div>",
"<span>{nom}</span></div>", "</tpl>",
"<div class='x-clear'></div>"});
template.compile();
this.addListener(new ContainerListenerAdapter() {
 
// la dataview affichera les images en accord avec le template
// cree precedemment
dView = new DataView("div.thumb-wrap") {
public void prepareData(Data data) {
data.setProperty("shortName", Format.ellipsis(data
.getProperty("name"), 15));
 
public void onHide(Component component) {
// TODO Auto-generated method stub
}
};
dView.setTpl(template);
 
 
public void onRender(Component component) {
// TODO Auto-generated method stub
}
 
 
public void onShow(Component component) {
if(dView == null)
{
initialiser();
}
}
});
// parametre d'affichage de la dataview
dView.setAutoHeight(true);
dView.setMultiSelect(true);
dView.setOverCls("x-view-over");
dView.setEmptyText("Aucune image à afficher");
// creation du store
FieldDef defNumImage = new StringFieldDef("num_image");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
dView.setStore(st);
// ajouts de la gestion des evenements pour la dataview
ajouterListeners();
this.add(dView);
}
public void ajouterListeners()
public void ajouterListenersDataView()
{
// ajout de listeners pour la gestion de la selection
// dans la galerie
dView.addListener(new DataViewListenerAdapter() {
90,8 → 81,9
 
public void onClick(DataView source, int index, Element node,
EventObject e) {
//TODO: appeler le mediateur
getIMediateur().ClicGalerieImage(index, node, e);
}
 
 
110,7 → 102,9
 
public void onDblClick(DataView source, int index, Element node,
EventObject e) {
//TODO: appeler le mediateur
getIMediateur().ClicGalerieImage(index, node, e);
}
 
124,9 → 118,84
}
// instantiation paresseuse
public void initialiser()
{
// Preparation de la dataview et du template
// le template va créer une div contenant une image
// pour chacune des photos
final XTemplate template = new XTemplate(
new String[]{
"<tpl for='.'>",
"<div class='thumb-wrap' id='{num_image}'>",
"<div class='thumb'><img src='{url_image}' title='{num_image}'></div>",
"<span>{nom}</span></div>", "</tpl>",
"<div class='x-clear'></div>"});
template.compile();
 
// la dataview affichera les images en accord avec le template
// cree precedemment
dView = new DataView("div.thumb-wrap") {
public void prepareData(Data data) {
data.setProperty("shortName", Format.ellipsis(data
.getProperty("num_image"), 15));
}
};
dView.setTpl(template);
// parametre d'affichage de la dataview
dView.setAutoHeight(true);
dView.setMultiSelect(true);
dView.setOverCls("x-view-over");
dView.setEmptyText("Aucune image à afficher");
// creation du store
FieldDef defNumImage = new StringFieldDef("num_image");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
dView.setStore(st);
// ajouts de la gestion des evenements pour la dataview
ajouterListenersDataView();
this.add(dView);
getIMediateur().ObtenirPhotoGalerie(this);
}
public void rafraichir(Object nouvelleDonnees) {
// TODO Auto-generated method stub
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);
photoStore.load();
st = photoStore;
dView.setStore(st);
dView.refresh();
}
 
 
public ImageMediateur getIMediateur() {
return iMediateur;
}
 
 
public DataView getDView() {
return dView;
}
 
 
public Store getSt() {
return st;
}
}