1,48 → 1,31 |
package org.tela_botanica.client.vues; |
|
|
import java.util.Iterator; |
|
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.ListeImageCarnet; |
|
|
import com.google.gwt.core.client.JavaScriptObject; |
import com.google.gwt.user.client.Element; |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.Window; |
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.IntegerFieldDef; |
import com.gwtext.client.data.MemoryProxy; |
import com.gwtext.client.data.Record; |
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; |
|
/** |
* Galerie d'images miniatures |
* |
* @author aurelien |
* |
*/ |
public class GalerieImageVue extends Panel implements Rafraichissable, VueListable { |
public class GalerieImageVue extends Panel implements Rafraichissable, |
VueListable { |
|
// instance du médiateur |
private ImageMediateur iMediateur = null; |
49,31 → 32,25 |
private DataView dView = null ; |
private Store st = null ; |
|
public GalerieImageVue(ImageMediateur im) |
{ |
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) |
{ |
if (dView == null) { |
initialiser(); |
} |
} |
82,16 → 59,12 |
|
} |
|
public void ajouterListenersDataView() { |
|
public void ajouterListenersDataView() |
{ |
|
// 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) { |
|
99,13 → 72,11 |
|
} |
|
|
public void onContainerClick(DataView source, EventObject e) { |
//TODO: appeler le mediateur |
|
} |
|
|
public void onContextMenu(DataView source, int index, Element node, |
EventObject e) { |
|
114,7 → 85,6 |
|
} |
|
|
public void onDblClick(DataView source, int index, Element node, |
EventObject e) { |
|
123,15 → 93,11 |
|
} |
|
|
public void onSelectionChange(DataView view, Element[] selections) { |
|
if(selections.length <= 0) |
{ |
if (selections.length <= 0) { |
getIMediateur().aucuneSelection(); |
} |
else |
{ |
} else { |
getIMediateur().selection() ; |
getIMediateur().synchroniserSelection("galerie") ; |
} |
140,10 → 106,33 |
}); |
} |
|
public DataView getDView() { |
return dView; |
} |
|
public String[] getIdSelectionnees() { |
Record[] selection = getDView().getSelectedRecords(); |
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 ImageMediateur getIMediateur() { |
return iMediateur; |
} |
|
public Store getSt() { |
return st; |
} |
|
// instantiation paresseuse |
public void initialiser() |
{ |
public void initialiser() { |
// Preparation de la dataview et du template |
// le template va créer une div contenant une image |
// pour chacune des photos |
159,6 → 148,7 |
// 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)); |
173,7 → 163,6 |
dView.setOverCls("x-view-over"); |
dView.setEmptyText("Aucune image à afficher"); |
|
|
// creation du store |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
FieldDef defDatImage = new StringFieldDef("dat_image"); |
182,7 → 171,8 |
FieldDef defUrlImageS = new StringFieldDef("url_image_S"); |
FieldDef defUrlImageM = new StringFieldDef("url_image_M"); |
FieldDef defUrlImage = new StringFieldDef("url_image"); |
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage}; |
FieldDef[] defTab = { defNumImage, defDatImage, defLieImage, |
defAppImage, defUrlImageS, defUrlImageM, defUrlImage }; |
RecordDef rd = new RecordDef(defTab) ; |
st = new Store(rd) ; |
dView.setStore(st); |
197,12 → 187,10 |
getIMediateur().obtenirPhotoGalerie(this); |
} |
|
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRafraichissement) { |
|
|
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
|
if(nouvelleDonnees instanceof Store) |
{ |
if (nouvelleDonnees instanceof Store) { |
st = (Store)nouvelleDonnees; |
st.load() ; |
dView.setStore(st); |
209,42 → 197,12 |
dView.refresh(); |
} |
|
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ; |
if (repandreRafraichissement) { |
getIMediateur().synchroniserDonneesZoomListeGalerie( |
nouvelleDonnees, this); |
} |
} |
|
|
public ImageMediateur getIMediateur() { |
return iMediateur; |
} |
|
|
public DataView getDView() { |
return dView; |
} |
|
|
public Store getSt() { |
return st; |
} |
|
public String[] getIdSelectionnees() |
{ |
Record[] selection = getDView().getSelectedRecords() ; |
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 selectionnerImages(int[] ids) { |
|
getDView().select(ids) ; |