Rev 4 | Rev 6 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import org.tela_botanica.client.image.ImageMediateur;import org.tela_botanica.client.interfaces.Rafraichissable;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;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, Observable {// instance du médiateurprivate ImageMediateur iMediateur = null;private DataView dView = null ;private Store st = null ;public GalerieImageVue(ImageMediateur im){super("Galerie");iMediateur = im ;this.addListener(new ContainerListenerAdapter() {public void onHide(Component component) {// TODO Auto-generated method stub}public void onRender(Component component) {// TODO Auto-generated method stub}public void onShow(Component component) {if(dView == null){initialiser();}}});}public void ajouterListenersDataView(){// ajout de listeners pour la gestion de la selection// dans la galeriedView.addListener(new DataViewListenerAdapter() {public void onClick(DataView source, int index, Element node,EventObject e) {getIMediateur().ClicGalerieImage(index, node, e);}public void onContainerClick(DataView source, EventObject e) {//TODO: appeler le mediateur}public void onContextMenu(DataView source, int index, Element node,EventObject e) {//TODO: appeler le mediateur}public void onDblClick(DataView source, int index, Element node,EventObject e) {//TODO: appeler le mediateurgetIMediateur().ClicGalerieImage(index, node, e);}public void onSelectionChange(DataView view, Element[] selections) {//TODO: appeler le mediateur}});}// instantiation paresseusepublic void initialiser(){// Preparation de la dataview et du template// le template va créer une div contenant une image// pour chacune des photosfinal 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 precedemmentdView = 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 dataviewdView.setAutoHeight(true);dView.setMultiSelect(true);dView.setOverCls("x-view-over");dView.setEmptyText("Aucune image à afficher");// creation du storeFieldDef 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 dataviewajouterListenersDataView();this.add(dView);getIMediateur().ObtenirPhotoGalerie(this);}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);photoStore.load();st = photoStore;dView.setStore(st);dView.refresh();}public ImageMediateur getIMediateur() {return iMediateur;}public DataView getDView() {return dView;}public Store getSt() {return st;}}