Rev 680 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.image.filtres;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.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* à 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;private Button boutonRechercher = null;private final int KEY_ENTER = 13;/*** 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();setLayout(new HorizontalLayout(3));setPaddings(5);setCollapsible(true);setBorder(false);iMediateur = im;boutonRechercher = new Button("OK");// 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);add(boutonRechercher);}/*** 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;}}});}/*** 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;}public void viderFiltre() {filtreDate.setValue("");}}