Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import org.tela_botanica.client.image.ImageMediateur;import org.tela_botanica.client.interfaces.Filtrable;import org.tela_botanica.client.interfaces.Rafraichissable;import com.google.gwt.user.client.ui.Label;import com.gwtext.client.widgets.Panel;import com.gwtext.client.widgets.form.DateField;/*** Classe implémentant un filtre qui permet de rechercher une aimge par rapport à la date associée,* des critères plus fins viendront compléter cela* @author aurelien**/public class DateFiltreVue extends Panel implements Rafraichissable, Filtrable {/*** Le médiateur associé à la vue*/private ImageMediateur iMediateur = null ;/*** Le widget calendrier*/private DateField filtreDate = null ;/*** Booleen d'état du filtre*/private boolean filtreModifie = false ;/*** Constructeur sans argument (privé car ne doit pas être utilisé)*/@SuppressWarnings("unused")private DateFiltreVue(){super() ;}/*** Constructeur avec arguments* @param im le médiateur à associer*/public DateFiltreVue(ImageMediateur im){super() ;setPaddings(5) ;setCollapsible(true) ;setBorder(false) ;iMediateur = im ;Label labelRecherche = new Label("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) ;filtreDate.setFormat("d/m/Y") ;add(filtreDate);ajouterListeners() ;}/*** Ajoute les listeners*/public void ajouterListeners(){}/*** Méthode héritée de l'interface rafraichissable*/public void rafraichir(Object nouvelleDonnees,boolean repandreRaffraichissement) {filtreModifie = false ;}/*** Méthode héritée de l'interface filtrable*/public void valider() {filtreModifie = true ;}/*** Accesseur pour le médiateur* @return le médiateur associé à la vue*/@SuppressWarnings("unused")private ImageMediateur getIMediateur() {return iMediateur ;}/*** Méthode héritée de l'interface filtrable*/public boolean renvoyerEtatFiltre() {return filtreModifie ;}/*** Méthode héritée de l'interface filtrable*/public String renvoyerNomFiltre() {return "Recherche par date" ;}/*** Méthode héritée de l'interface filtrable*/public String[] renvoyerValeursAFiltrer() {// si la date est valideif(filtreDate.isValid()){// on en sépare les composantsString dt = filtreDate.getRawValue() ;String[] dates = dt.split("/") ;if(dates.length == 3){// qu'on réassemble dans un autre format (américain) pour la base de donnée "aaaa-mm-jj"String dateFormatee = dates[2]+"-"+dates[1]+"-"+dates[0] ;String[] valeursFiltres = {"ci_meta_date" , dateFormatee } ;return valeursFiltres ;}}// si la date n'estp as valide on renvoie une chaine vide (ce qui correspond à n'importe qu'elle date)String dateFormatee = "" ;String[] valeursFiltres = {"ci_meta_date" , dateFormatee } ;return valeursFiltres ;}}