Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 637 → Rev 638

/trunk/src/org/tela_botanica/client/vues/image/ZoomImageVue.java
254,7 → 254,7
* Desactive visuellement le panneau et les boutons
*/
public void desactiverPanneau() {
getImage().setUrl("vide.jpeg");
getImage().setUrl("vide.jpg");
prev.setEnabled(false);
suiv.setEnabled(false);
}
/trunk/src/org/tela_botanica/client/vues/image/PanneauFiltresImagesVues.java
2,12 → 2,22
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
import org.tela_botanica.client.vues.observation.filtres.ArbreDateObservationFiltreVue;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.layout.VerticalLayout;
 
/**
27,10 → 37,16
* L'arbre pour la recherche par mots clés
*/
private ArbreMotsClesFiltreVue motsClesFiltres = null;
/**
* L'arbre pour la recherche par mots clés
*/
private ArbreDateImageFiltreVue arbreDateImageFiltreVue = null;
/**
* La barre de recherche par commentaires
*/
private BarreRechercheFiltreVue commFiltresVues = null;
private BarreRechercheFiltreVue rechercheLibreFiltreVue = null;
 
/**
* Recherche par date
62,38 → 78,45
* le médiateur à associer
*/
public PanneauFiltresImagesVues(ImageMediateur im) {
super("Filtres");
iMediateur = im;
this.setCollapsible(true);
setLayout(new VerticalLayout());
setLayout(new RowLayout());
 
commFiltresVues = new BarreRechercheFiltreVue(im);
add(commFiltresVues);
rechercheLibreFiltreVue = new BarreRechercheFiltreVue(im);
rechercheLibreFiltreVue.setTitle("Recherche libre");
rechercheLibreFiltreVue.setCollapsible(true);
add(rechercheLibreFiltreVue, new RowLayoutData());
if(Ext.isIE()) {
add(rechercheLibreFiltreVue);
rechercheLibreFiltreVue.setHeight(110);
} else {
add(rechercheLibreFiltreVue,new RowLayoutData(100));
}
 
dateFiltreVues = new DateFiltreVue(im);
add(dateFiltreVues);
arbreDateImageFiltreVue = new ArbreDateImageFiltreVue(im) ;
arbreDateImageFiltreVue.setWidth("100%") ;
arbreDateImageFiltreVue.setBorder(false);
add(arbreDateImageFiltreVue, new RowLayoutData());
 
selectionFiltreVue = new SelectionFiltreVue(im);
add(selectionFiltreVue);
 
motsClesFiltres = new ArbreMotsClesFiltreVue(im);
add(motsClesFiltres);
motsClesFiltres.setTitle("Mots clés");
motsClesFiltres.setAutoScroll(true);
add(motsClesFiltres, new RowLayoutData());
 
Panel panelValidation = new Panel();
valider = new Button("Rechercher");
panelValidation.add(valider);
panelValidation.setBorder(false);
add(panelValidation);
selectionFiltreVue = new SelectionFiltreVue(im);
addListener(new ContainerListenerAdapter() {
 
valider.addListener(new ButtonListenerAdapter() {
public void onRender(Component component) {
// TODO Auto-generated method stub
 
public void onClick(Button button, EventObject e) {
 
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
 
rechercheLibreFiltreVue.ajouterListeners();
arbreDateImageFiltreVue.ajouterListeners();
}
 
});
}
 
107,12 → 130,12
}
 
/**
* Accesseur pour le filtre par commentaire
* Accesseur pour le filtre général
*
* @return le filtre des commentaires
* @return le filtre général
*/
public BarreRechercheFiltreVue getBarreRecherche() {
return commFiltresVues;
return rechercheLibreFiltreVue;
}
 
/**
123,8 → 146,8
public boolean renvoyerEtatFiltre() {
 
return (motsClesFiltres.renvoyerEtatFiltre()
|| commFiltresVues.renvoyerEtatFiltre()
|| dateFiltreVues.renvoyerEtatFiltre()
|| rechercheLibreFiltreVue.renvoyerEtatFiltre()
|| arbreDateImageFiltreVue.renvoyerEtatFiltre()
|| selectionFiltreVue.renvoyerEtatFiltre());
}
 
135,11 → 158,28
* @return un tableau contenant les noms et les valeurs à filtrer
*/
public String[][] renvoyerValeursAFiltrer() {
String[][] filtres = { motsClesFiltres.renvoyerValeursAFiltrer(),
commFiltresVues.renvoyerValeursAFiltrer(),
dateFiltreVues.renvoyerValeursAFiltrer(),
selectionFiltreVue.renvoyerValeursAFiltrer() };
String[] filtresDates = arbreDateImageFiltreVue.renvoyerValeursAFiltrer();
int lgSup = 0;
if(filtresDates.length > 0) {
String[] nomFiltresDates = filtresDates[0].split(",");
String[] valFiltresDates = filtresDates[1].split(",");
lgSup = Math.max(nomFiltresDates.length, valFiltresDates.length);
}
String[][] filtres = new String[3 + lgSup][2];
for(int i=3; i < filtres.length; i++) {
filtres[i][0] = filtresDates[0].split(",")[i - 3];
filtres[i][1] = filtresDates[1].split(",")[i -3];
}
filtres[0] = motsClesFiltres.renvoyerValeursAFiltrer();
filtres[1] = rechercheLibreFiltreVue.renvoyerValeursAFiltrer();
filtres[2] = selectionFiltreVue.renvoyerValeursAFiltrer();
return filtres;
}
 
/trunk/src/org/tela_botanica/client/vues/image/ArbreDateImageFiltreVue.java
New file
0,0 → 1,548
package org.tela_botanica.client.vues.image;
 
import java.util.Comparator;
import java.util.Iterator;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.DateObservation;
import org.tela_botanica.client.modeles.ListeDate;
import org.tela_botanica.client.modeles.Observation;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.gwtext.client.data.Node;
import com.gwtext.client.data.NodeTraversalCallback;
import com.gwtext.client.data.Tree;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
import com.gwtext.client.core.EventObject;
 
/**
* fenêtre de recherche affichant l'arbre des mots clés en lecture et un bouton
* cliquable
*
* @author aurelien
*
*/
public class ArbreDateImageFiltreVue extends Panel implements Rafraichissable,
Filtrable {
 
/**
* Le médiateur associé à la vue
*/
private ImageMediateur imageMediateur = null;
 
/**
* Les localites en cours
*/
private String donneesDateEnCours = "";
 
/**
* Le treepanel qui affiche l'arbre
*/
private TreePanel arbreDonneesDates = null;
 
/**
* La structure de donnees qui stocke l'arbre. Utilisee a ce niveau car trop liee a la vue
*/
private Tree donneesDates = new Tree();
/**
* booléen d'initialisation
*/
private boolean estInstancie = false;
 
/**
* booléen d'etat
*/
private boolean filtreModifie = false;
private boolean arbreCharge = false ;
 
private String nomFiltre = "" ;
private String prefixeId = "date_image_";
/**
* Constructeur sans argument (privé car ne doit pas être utilisé)
*/
@SuppressWarnings("unused")
private ArbreDateImageFiltreVue() {
super();
}
 
/**
* Constructeur avec paramètres
*
* @param im
* le médiateur à associer
*/
public ArbreDateImageFiltreVue(ImageMediateur imgMed) {
 
// on crée le panel
super("Dates");
this.imageMediateur = imgMed;
 
arbreDonneesDates = new TreePanel();
 
this.setPaddings(5);
 
this.setCollapsible(true);
this.setAutoScroll(true);
this.setBorder(false);
arbreDonneesDates.setBorder(false);
// on ajoute les listeners
ajouterListenersPanel();
estInstancie = false;
}
 
/**
* Ajoute les listeners pour le rendu du panel
*/
private void ajouterListenersPanel() {
 
// on interdit le drag and drop dans l'arbre
arbreDonneesDates.setEnableDD(false);
arbreDonneesDates.setId("x-view-tree-filter-date-image");
 
// on crée une racine pour l'arbre
TreeNode root = new TreeNode("Dates");
root.addListener(new TreeNodeListenerAdapter() {
public void onExpand(Node node) {
 
if(!arbreCharge)
{
obtenirDatesImages();
arbreCharge = true ;
}
}
}) ;
root.setId("racine_date");
String[] usObject = { "Dates", "Dates", prefixeId+"racine_date" };
root.setUserObject(usObject);
 
arbreDonneesDates.setRootNode(root);
arbreDonneesDates.setRootVisible(true);
setBorder(false);
root.setExpandable(true) ;
 
add(arbreDonneesDates);
// enfin on considère le composant comme instancié
estInstancie = true;
}
 
/**
* ajoute les listeners pour les boutons et le cochage des entites
*/
public void ajouterListeners() {
arbreDonneesDates.addListener(new TreePanelListenerAdapter() {
public void onClick(TreeNode node, EventObject e) {
nomFiltre = "" ;
donneesDateEnCours = "" ;
String nomPere = "" ;
String nomGrandPere = "" ;
switch(node.getDepth())
{
case 0:
if(arbreCharge) {
nomFiltre = "";
donneesDateEnCours = "";
}
break;
case 3: nomFiltre += "annee,mois,jour";
nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ;
donneesDateEnCours += nomGrandPere+","+nomPere+","+((String[])node.getUserObject())[1] ;
break;
case 2: nomFiltre += "annee,mois";
nomPere = ((String[])node.getParentNode().getUserObject())[1] ;
donneesDateEnCours += nomPere+","+((String[])node.getUserObject())[1] ;
break;
case 1: nomFiltre += "annee";
donneesDateEnCours += ((String[])node.getUserObject())[1] ;
break;
default:
break;
}
filtreModifie = true ;
imageMediateur.obtenirPhotoGalerie() ;
}
}) ;
arbreDonneesDates.getRootNode().addListener(new TreeNodeListenerAdapter() {
public void onExpand(Node node) {
 
if(!arbreCharge)
{
obtenirDatesImages();
arbreCharge = true ;
}
}
}) ;
}
public void initialiser() {
arbreCharge = false ;
donneesDateEnCours = "";
arbreDonneesDates.collapseAll();
arbreDonneesDates.purgeListeners();
// on vide l'ancien arbre
Node[] rootChild = arbreDonneesDates.getRootNode().getChildNodes();
for (int i = 0; i < rootChild.length; i++) {
rootChild[i].remove();
}
arbreDonneesDates.getRootNode().addListener(new TreeNodeListenerAdapter() {
public void onExpand(Node node) {
if(!arbreCharge)
{
obtenirDatesImages() ;
arbreCharge = true ;
}
}
}) ;
}
 
/**
* Méthode héritée de l'interface rafraichissable
*/
public void rafraichir(Object nouvelleDonnees,
boolean repandreRaffraichissement) {
if (nouvelleDonnees instanceof ListeDate) {
String annee=null;
String mois=null;
String jour=null;
ListeDate data = (ListeDate) nouvelleDonnees ;
// on crée un arbre vide
TreeNode root = new TreeNode();
root.setId("racine_date");
root.setText("Dates");
String[] usObjRoot = { "Dates", "Dates", prefixeId+"racine_date"};
root.setUserObject(usObjRoot);
Tree nouvelArbre = new Tree();
nouvelArbre.setRootNode(root);
// on la parse et on récupère les informations qui nous interessent
for (Iterator<String> it= data.keySet().iterator(); it.hasNext();) {
DateObservation ent=(DateObservation) data.get(it.next());
annee= ent.getAnnee() ;
mois= ent.getMois() ;
String moisLettre = renvoyerMois(Integer.parseInt(mois)) ;
jour= ent.getJour() ;
if(annee.contains("0000")) {
annee="Inconnue" ;
}
if(jour.contains("00")) {
jour="Inconnue" ;
}
Node noeudMemeAnnee = nouvelArbre.getNodeById(prefixeId+annee);
// si la région existe déjà
if(noeudMemeAnnee != null)
{
// on teste si la localité existe
Node noeudMemeMois = nouvelArbre.getNodeById(prefixeId+(annee+mois));
if(noeudMemeMois != null)
{
// enfin on teste si le lieu dit existe
Node noeudMemeJour = nouvelArbre.getNodeById(prefixeId+(annee+mois+jour));
if(noeudMemeJour != null)
{
// tous les noeuds existent déjà, normalement ça ne devrait pas arriver
}
else
{
// enfin on ne crée que le noeud du lieu dit
TreeNode node_jour = new TreeNode();
node_jour.setId(prefixeId+(annee+mois+jour));
node_jour.setText(jour);
noeudMemeMois.appendChild(node_jour) ;
String[] usObj = {jour,jour,annee+mois+jour};
node_jour.setUserObject(usObj);
}
}
else
{
TreeNode node_mois = new TreeNode();
node_mois.setId(prefixeId+(annee+mois));
node_mois.setText(moisLettre);
noeudMemeAnnee.appendChild(node_mois) ;
String[] usObj = {moisLettre,mois,annee+mois};
node_mois.setUserObject(usObj);
TreeNode node_jour = new TreeNode();
node_jour.setId(prefixeId+(annee+mois+jour));
node_jour.setText(jour);
node_mois.appendChild(node_jour) ;
String[] usObj2 = {jour,jour,annee+mois+jour};
node_jour.setUserObject(usObj2);
}
}
else
{
TreeNode node_annee = new TreeNode();
node_annee.setId(prefixeId+annee);
node_annee.setText(annee);
root.appendChild(node_annee) ;
String[] usObj = {annee, annee, annee};
node_annee.setUserObject(usObj);
TreeNode node_mois = new TreeNode();
node_mois.setId(prefixeId+(annee+mois));
node_mois.setText(moisLettre);
node_annee.appendChild(node_mois) ;
String[] usObj2 = {moisLettre,mois,annee+mois};
node_mois.setUserObject(usObj2);
TreeNode node_jour = new TreeNode();
node_jour.setId(prefixeId+(annee+mois+jour));
node_jour.setText(jour);
node_mois.appendChild(node_jour) ;
String[] usObj3 = {jour,jour,annee+mois+jour};
node_jour.setUserObject(usObj3);
}
 
}
// on trie
root.sort(comparerNoeuds()) ;
// on vide tous les noeuds
arbreDonneesDates.getRootNode().eachChild(new NodeTraversalCallback() {
public boolean execute(Node node) {
node.remove();
return true;
}
});
 
// et on recopie le nouvel arbre
copierFilsNoeud(nouvelArbre.getRootNode(), arbreDonneesDates
.getRootNode());
// si l'arbre n'était pas encore considéré comme instancié
if (!estInstancie) {
// on signale que oui
estInstancie = true;
}
// l'état du filtre est réinitialisé
filtreModifie = false;
//show() ;
doLayout();
 
}
}
 
 
/**
* Accesseur pour le panneau contenant l'arbre
*
* @return le panneau de l'arbre des mots clés
*/
public TreePanel getArbreMotsCles() {
return arbreDonneesDates;
}
 
/**
* Méthode héritée de Filtrable renvoie le nom du filtre
*/
public String renvoyerNomFiltre() {
 
return "Dates";
}
 
/**
* Renvoie un tableau contenant le nom du champ à filtrer et la valeur
*
* @return un tableau contenant le nom du champ à filtrer et sa valeur
*/
public String[] renvoyerValeursAFiltrer() {
 
valider();
String[] valeursFiltrees = new String[0];
if(!nomFiltre.trim().equals("") && !donneesDateEnCours.trim().equals("")) {
valeursFiltrees = new String[2];
valeursFiltrees[0] = nomFiltre;
valeursFiltrees[1] = donneesDateEnCours;
}
 
return valeursFiltrees;
}
 
/**
* Fonction récursive qui prend deux noeuds d'arbre en paramètre et crée un
* copie du sous arbre du premier noeud, qu'elle concatène au deuxième
*
* @param ndPereOriginal
* le père des noeuds de l'arbre original
* @param ndPereCopie
* le père qui va recevoir les copies
*/
private void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie) {
if (ndPereCopie != null && ndPereOriginal != null) {
Node[] ndNodeFils = ndPereOriginal.getChildNodes();
 
for (int i = 0; i < ndNodeFils.length; i++) {
 
String[] usObj = (String[]) ndNodeFils[i].getUserObject();
TreeNode child = new TreeNode(usObj[0]);
child.setUserObject(usObj);
child.setId(prefixeId+usObj[2]);
ndPereCopie.appendChild(child);
 
if (!ndNodeFils[i].isLeaf()) {
copierFilsNoeud(ndNodeFils[i], child);
}
 
}
}
}
 
/**
* Méthode héritée de Filtrable Renvoie l'état du filtre (modifié ou non)
*/
public boolean renvoyerEtatFiltre() {
 
return filtreModifie;
}
 
public void valider() {
if (estInstancie) {
}
}
public Comparator<TreeNode> comparerNoeuds()
{
return new Comparator<TreeNode>() {
 
public int compare(TreeNode o1, TreeNode o2) {
String n1 = ((String[])o1.getUserObject())[1] ;
String n2 = ((String[])o2.getUserObject())[1] ;
return n1.compareTo(n2) ;
}
} ;
}
public String renvoyerMois(int numMois) {
switch (numMois) {
case 1:
return "janvier" ;
case 2:
return "fevrier" ;
case 3:
return "mars" ;
case 4:
return "avril" ;
case 5:
return "mai" ;
case 6:
return "juin" ;
case 7:
return "juillet" ;
case 8:
return "août" ;
case 9:
return "septembre" ;
case 10:
return "octobre" ;
case 11:
return "novembre" ;
case 12:
return "décembre" ;
default:
return "Inconnue" ;
}
}
 
public void raz() {
arbreCharge = false ;
arbreDonneesDates.collapseAll();
arbreDonneesDates.clear();
TreeNode root = new TreeNode("Dates");
root.setId("racine_date");
String[] usObject = { "Dates", "Dates", prefixeId+"racine_date" };
root.setUserObject(usObject);
 
arbreDonneesDates.setRootNode(root);
arbreDonneesDates.getRootNode().addListener(new TreeNodeListenerAdapter() {
public void onExpand(Node node) {
if(!arbreCharge)
{
obtenirDatesImages() ;
arbreCharge = true ;
}
}
}) ;
this.doLayout() ;
donneesDateEnCours = "";
}
public void obtenirDatesImages() {
imageMediateur.obtenirDatesImages(this);
}
 
 
}
/trunk/src/org/tela_botanica/client/vues/image/BarreNotationVue.java
179,7 → 179,7
 
// qu'on remplit par defaut avec des images d'étoiles vides
for (int i = 0; i < noteMax; i++) {
etoiles[i] = new Image("note_off.gif");
etoiles[i] = new Image("note-off.gif");
etoiles[i].setStylePrimaryName("x-view-notation-bar");
this.add(etoiles[i]);
}
/trunk/src/org/tela_botanica/client/vues/image/MiniListeObservationVue.java
2,6 → 2,7
 
import java.util.Iterator;
 
import org.tela_botanica.client.Util;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
83,6 → 84,8
int taillePage = 50;
private String modeleLieu = "IDLOCCOMMUNE, LIEUDIT, STATION";
/**
* Nombre de pages totales
*/
146,7 → 149,7
} ;
// on crée un store simple contenant un petit set de données et deux colonnes
store = new SimpleStore(new String[]{"transmis","id_obs","plante","date","lieu"}, getObs());
store = new SimpleStore(new String[]{"transmis","plante","date","lieu","id_obs"}, getObs());
ColumnConfig[] columns = {
new ColumnConfig("", "transmis", 30, true, new Renderer() {
 
162,11 → 165,11
}
}
}),
new ColumnConfig("Numero", "id_obs", 50, true, colRend),
}),
new ColumnConfig("Taxon", "plante", 145, true, colRend),
new ColumnConfig("Date", "date", 68, true, dateRend),
new ColumnConfig("Lieu", "lieu", 145, true, colRend) } ;
new ColumnConfig("Lieu", "lieu", 145, true, colRend),
new ColumnConfig("Numero", "id_obs", 50, true, colRend), } ;
ColumnModel columnModel = new ColumnModel(columns);
314,16 → 317,16
Observation obs=(Observation) data.get(it.next());
listeObs[i][0] = obs.getNumeroOrdre();
listeObs[i][1] = obs.getTransmis();
listeObs[i][2] = obs.getNomSaisi();
listeObs[i][3] = obs.getDate() ;
listeObs[i][4] = obs.getLocalite();
listeObs[i][0] = obs.getTransmis();
listeObs[i][1] = obs.getNomSaisi();
listeObs[i][2] = obs.getDate() ;
listeObs[i][3] = Util.formaterLieu(obs, modeleLieu);
listeObs[i][4] = obs.getNumeroOrdre();
i++ ;
}
store = new SimpleStore(new String[]{"id_obs","transmis","plante","date","lieu"}, listeObs);
store = new SimpleStore(new String[]{"transmis","plante","date","lieu","id_obs"}, listeObs);
store.load();
this.reconfigure(store, colModel) ;
}
/trunk/src/org/tela_botanica/client/vues/image/BarreRechercheFiltreVue.java
4,11 → 4,27
import org.tela_botanica.client.interfaces.Filtrable;
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Label;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListener;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.KeyListener;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.layout.HorizontalLayout;
import com.gwtext.client.widgets.menu.Menu;
 
/**
* Fenêtre de recherche pour les mots clés, contenant un champ texte, et un
35,11 → 51,15
* Booleen d'etat du filtre
*/
private boolean filtreModifie = false;
private Button boutonRechercher = null;
 
/**
* mot(s) à chercher
*/
private String motsAChercher = "";
private final int KEY_ENTER = 13;
 
/**
* Constructeur sans argument (privé car ne doit pas être utilisé)
55,20 → 75,23
* @param im
*/
public BarreRechercheFiltreVue(ImageMediateur im) {
super();
setLayout(new HorizontalLayout(3));
iMediateur = im;
 
Label labelRecherche = new Label("Par commentaires :");
champRecherche = new TextField();
boutonRechercher = new Button("OK");
 
add(labelRecherche);
add(champRecherche);
add(boutonRechercher);
 
setPaddings(5);
setBorder(false);
setAutoWidth(true);
setCollapsible(true);
 
ajouterListeners();
}
 
75,19 → 98,28
/**
* ajoute des listeners
*/
private void ajouterListeners() {
 
// gestion de la touche entrée
champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() {
 
public void onKey(int key, EventObject e) {
 
valider();
getIMediateur().obtenirPhotoGalerie(
getIMediateur().getFiltreCommentaires());
}
 
});
public void ajouterListeners() {
boutonRechercher.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
valider();
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
}
});
champRecherche.addKeyPressListener(new EventCallback() {
public void execute(EventObject e) {
switch(e.getKey()) {
case KEY_ENTER:
valider();
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
break;
}
}
});
}
 
/**
128,7 → 160,7
public String[] renvoyerValeursAFiltrer() {
 
valider() ;
String[] valeurFiltre = { "ci_meta_comment", motsAChercher };
String[] valeurFiltre = { "ci_recherche_generale", motsAChercher };
return valeurFiltre;
}
 
/trunk/src/org/tela_botanica/client/vues/image/GalerieImageVue.java
399,13 → 399,15
videPanel.setVisible(false) ;
}
if(!dView.isVisible()) {
dView.setVisible(true);
if(dView != null) {
if(!dView.isVisible()) {
dView.setVisible(true);
}
// on l'affecte à la vue
dView.setStore(st);
// et on rafrachit la vue
dView.refresh();
}
// on l'affecte à la vue
dView.setStore(st);
// et on rafrachit la vue
dView.refresh();
}
else
{
/trunk/src/org/tela_botanica/client/vues/image/DateFiltreVue.java
5,8 → 5,13
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.google.gwt.user.client.ui.Label;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.form.DateField;
import com.gwtext.client.widgets.layout.HorizontalLayout;
 
/**
* Classe implémentant un filtre qui permet de rechercher une image par rapport
27,6 → 32,10
*/
private DateField filtreDate = null;
 
private Button boutonRechercher = null;
private final int KEY_ENTER = 13;
/**
* Booleen d'état du filtre
*/
47,15 → 56,16
* le médiateur à associer
*/
public DateFiltreVue(ImageMediateur im) {
super();
setLayout(new HorizontalLayout(3));
setPaddings(5);
setCollapsible(true);
setBorder(false);
iMediateur = im;
boutonRechercher = new Button("OK");
 
Label labelRecherche = new Label("Par date :");
add(labelRecherche);
 
// on crée le calendrier et on définit le format de la date "jj/mm/aaaa"
filtreDate = new DateField();
filtreDate.setAutoWidth(true);
62,7 → 72,7
filtreDate.setFormat("d/m/Y");
 
add(filtreDate);
ajouterListeners();
add(boutonRechercher);
}
 
/**
69,7 → 79,27
* Ajoute les listeners
*/
public void ajouterListeners() {
 
boutonRechercher.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
valider();
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
}
});
filtreDate.addKeyPressListener(new EventCallback() {
public void execute(EventObject e) {
switch(e.getKey()) {
case KEY_ENTER:
valider();
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
break;
}
}
});
}
 
/**