/trunk/src/org/tela_botanica/client/ZoomImageVue.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.client; |
import com.google.gwt.user.client.ui.Image; |
import com.gwtext.client.core.RegionPosition; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.layout.BorderLayout; |
import com.gwtext.client.widgets.layout.BorderLayoutData; |
public class ZoomImageVue extends Panel implements Rafraichissable { |
private ImageMediateur iMediateur = null ; |
private Image image = null ; |
private final com.google.gwt.user.client.ui.Button prev = new com.google.gwt.user.client.ui.Button("<"); |
private final com.google.gwt.user.client.ui.Button suiv = new com.google.gwt.user.client.ui.Button(">"); |
public ZoomImageVue(ImageMediateur im) |
{ |
super("Zoom"); |
iMediateur = im ; |
image = new Image(); |
image.setUrl("images/vide.jpg"); |
this.setLayout(new BorderLayout()); |
prev.setWidth("5%"); |
suiv.setWidth("5%"); |
this.add(prev,new BorderLayoutData(RegionPosition.WEST)); |
this.add(image,new BorderLayoutData(RegionPosition.CENTER)); |
this.add(suiv,new BorderLayoutData(RegionPosition.EAST)); |
} |
public void rafraichir(Object nouvelleDonnees) { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/client/GalerieImageVue.java |
---|
New file |
0,0 → 1,127 |
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 |
} |
} |
/trunk/src/org/tela_botanica/client/IRetourImage.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.client; |
public interface IRetourImage { |
public void onRetour(ListeImage listeImage); |
} |
/trunk/src/org/tela_botanica/client/ImageCarnet.java |
---|
New file |
0,0 → 1,29 |
package org.tela_botanica.client; |
public class ImageCarnet { |
private String url = null ; |
private int numero = 0 ; |
private String nom = null ; |
public ImageCarnet(String url,int numero,String nom) |
{ |
this.url = url ; |
this.numero = numero ; |
this.nom = nom ; |
} |
public String getUrl() { |
return url; |
} |
public int getNumero() { |
return numero; |
} |
public String getNom() { |
return nom; |
} |
} |
/trunk/src/org/tela_botanica/client/ImageControleur.java |
---|
New file |
0,0 → 1,12 |
package org.tela_botanica.client; |
public class ImageControleur { |
private ImageMediateur iMediateur = null ; |
public ImageControleur(ImageMediateur im) { |
iMediateur = im ; |
} |
} |
/trunk/src/org/tela_botanica/client/ImageMediateur.java |
---|
New file |
0,0 → 1,96 |
package org.tela_botanica.client; |
import com.gwtext.client.core.RegionPosition; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.TabPanel; |
import com.gwtext.client.widgets.layout.BorderLayout; |
import com.gwtext.client.widgets.layout.BorderLayoutData; |
public class ImageMediateur { |
// controleur |
private ImageControleur iControleur = null ; |
//widgets |
//Panneau principal des images (onglet "images") |
private final Panel panneauPrincipalImage = new Panel("Images"); |
// Panneau à onglet pour la liste, la galerie et la vue en grand |
private TabPanel ongletsImage = null ; |
private GalerieImageVue galerieImage = null ; |
private ListeImageVue listeImage = null ; |
private ZoomImageVue zoomImage = null ; |
// panneau details et mots clés |
private final Panel detailsEtMotsCles = new Panel("Détails et mots clés"); |
public ImageMediateur() |
{ |
final BorderLayoutData regionEst = new BorderLayoutData( |
RegionPosition.EAST); |
regionEst.setSplit(true); |
iControleur = new ImageControleur(this); |
panneauPrincipalImage.setLayout(new BorderLayout()); |
ongletsImage = new TabPanel(); |
galerieImage = new GalerieImageVue(this) ; |
Panel panneauListeImage = new Panel("Liste"); |
listeImage = new ListeImageVue(this); |
panneauListeImage.add(listeImage); |
zoomImage = new ZoomImageVue(this); |
ongletsImage.add(galerieImage); |
ongletsImage.add(zoomImage); |
ongletsImage.add(panneauListeImage); |
detailsEtMotsCles.setWidth("20%"); |
detailsEtMotsCles.setAnimCollapse(true); |
detailsEtMotsCles.setTitleCollapse(true); |
detailsEtMotsCles.setCollapsible(true); |
panneauPrincipalImage.add(ongletsImage,new BorderLayoutData(RegionPosition.CENTER)); |
panneauPrincipalImage.add(detailsEtMotsCles,regionEst); |
} |
public ImageControleur getIControleur() { |
return iControleur; |
} |
public Panel getPanneauPrincipalImage() { |
return panneauPrincipalImage; |
} |
public TabPanel getOngletsImage() { |
return ongletsImage; |
} |
public GalerieImageVue getGalerieImage() { |
return galerieImage; |
} |
public ListeImageVue getListeImage() { |
return listeImage; |
} |
public ZoomImageVue getZoomImage() { |
return zoomImage; |
} |
public Panel getDetailsEtMotsCles() { |
return detailsEtMotsCles; |
} |
} |
/trunk/src/org/tela_botanica/client/Rafraichissable.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.client; |
public interface Rafraichissable { |
public void rafraichir(Object nouvelleDonnees); |
} |
/trunk/src/org/tela_botanica/client/ListeImage.java |
---|
New file |
0,0 → 1,24 |
package org.tela_botanica.client; |
import java.util.Vector; |
public class ListeImage extends Vector { |
public ListeImage() |
{ |
super(); |
} |
public ListeImage(ImageCarnet[] ic) |
{ |
super() ; |
for (int i = 0; i < ic.length; i++) |
{ |
if(ic[i] != null) |
{ |
this.add(ic[i]); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/ListeImageVue.java |
---|
New file |
0,0 → 1,95 |
package org.tela_botanica.client; |
import com.gwtext.client.data.FieldDef; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.RecordDef; |
import com.gwtext.client.data.Store; |
import com.gwtext.client.data.StoreMgr; |
import com.gwtext.client.data.StringFieldDef; |
import com.gwtext.client.widgets.grid.CellMetadata; |
import com.gwtext.client.widgets.grid.ColumnConfig; |
import com.gwtext.client.widgets.grid.ColumnModel; |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.Renderer; |
import com.gwtextux.client.data.BufferedStore; |
public class ListeImageVue extends GridPanel implements Rafraichissable { |
// instance du médiateur |
private ImageMediateur iMediateur = null; |
private ColumnConfig numImage ; |
private ColumnConfig urlImage ; |
private ColumnModel modeleColonnes ; |
// données locales |
// store qui gère les données de la liste d'images |
private Store st = null ; |
private ColumnConfig cl = null ; |
public ListeImageVue(ImageMediateur im) { |
this.iMediateur = im ; |
configurerColonnes(); |
configurerStore(); |
setAutoWidth(true); |
setAutoHeight(true); |
} |
// role : configurer les colonnes affichées dans la grille |
private void configurerColonnes() { |
numImage = new ColumnConfig("numéro d'image","num_image",150,true); |
urlImage = new ColumnConfig("Image","url_image",150,true,new Renderer() { |
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
String ImgUrl = record.getAsString("Miniature"); |
return "<img src=\""+ImgUrl+"\" title='example'>"; |
} |
}); |
ColumnConfig[] cm = {numImage,urlImage}; |
modeleColonnes = new ColumnModel(cm); |
this.setColumnModel(modeleColonnes); |
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) ; |
this.setStore(st); |
} |
// role : préparer le store et faire l'appel aux données nécessaires |
private void configurerStore() { |
} |
public void rafraichir(Object nouvelleDonnees) { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/client/cel2.java |
---|
New file |
0,0 → 1,27 |
package org.tela_botanica.client; |
import com.google.gwt.core.client.EntryPoint; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.ClickListener; |
import com.google.gwt.user.client.ui.DialogBox; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.RootPanel; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
import com.gwtext.client.widgets.Viewport; |
/** |
* Entry point classes define <code>onModuleLoad()</code>. |
*/ |
public class cel2 implements EntryPoint { |
/** |
* This is the entry point method. |
*/ |
public void onModuleLoad() { |
ImageMediateur im = new ImageMediateur() ; |
new Viewport(im.getPanneauPrincipalImage()); |
} |
} |