Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 1 → Rev 2

/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());
}
}
/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 ;
}
 
}