New file |
0,0 → 1,149 |
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 valide |
if (filtreDate.isValid()) { |
// on en sépare les composants |
String 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; |
|
} |
|
} |