Subversion Repositories eFlore/Archives.cel-v2

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Element;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.XTemplate;
import com.gwtext.client.data.FieldDef;
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.DataView;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.DataView.Data;
import com.gwtext.client.widgets.event.DataViewListener;
import com.gwtext.client.widgets.event.DataViewListenerAdapter;

public class GalerieImageVue extends Panel implements Rafraichissable {

        // instance du médiateur
        private ImageMediateur iMediateur = null; 
        private DataView dView = null ;
        private Store st = null ;
        
        public GalerieImageVue(ImageMediateur im)
        {
                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();

                // 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));
                        }
                };
                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
                ajouterListeners();
                
                this.add(dView);                
                
        }
        
        
        public void ajouterListeners()
        {
                // ajout de listeners pour la gestion de la selection
                // dans la galerie
                dView.addListener(new DataViewListenerAdapter() {



                        public void onClick(DataView source, int index, Element node,
                                        EventObject e) {
                                //TODO: appeler le mediateur
                                
                        }


                        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 mediateur
                                
                        }


                        public void onSelectionChange(DataView view, Element[] selections) {
                                //TODO: appeler le mediateur
                                
                        }
                        
                });
        }
        
        
        
        public void rafraichir(Object nouvelleDonnees) {
                // TODO Auto-generated method stub
                
        }
}