New file |
0,0 → 1,177 |
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.core.client.JavaScriptObject; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Window; |
import com.gwtext.client.widgets.event.ButtonListener; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.event.KeyListener; |
import com.gwtext.client.widgets.form.TextField; |
import com.gwtext.client.widgets.layout.BorderLayout; |
import com.gwtext.client.widgets.menu.Menu; |
|
/** |
* Fenêtre de recherche pour les mots clés, contenant un champ texte, |
* et un bouton cliquable |
* @author aurelien |
* |
*/ |
public class BarreRechercheFiltreVue extends Window implements Rafraichissable, Filtrable { |
|
/** |
* Médiateur associé à la vue |
*/ |
private ImageMediateur iMediateur = null ; |
|
/** |
* Barre de recherche |
* |
*/ |
private TextField champRecherche = null ; |
|
/** |
* Bouton rechercher |
*/ |
private Button rechercher = null ; |
|
/** |
* Booleen d'etat du filtre |
*/ |
private boolean filtreModifie = false ; |
|
/** |
* mot(s) à chercher |
*/ |
private String motsAChercher = "" ; |
|
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
private BarreRechercheFiltreVue() |
{ |
super() ; |
} |
|
/** |
* Constructeur avec médiateur |
* @param im |
*/ |
public BarreRechercheFiltreVue(ImageMediateur im) |
{ |
super("Recherche dans les commentaires") ; |
iMediateur = im ; |
|
champRecherche = new TextField() ; |
rechercher = new Button("Rechercher") ; |
|
add(champRecherche) ; |
add(rechercher) ; |
|
setSize(250, 100) ; |
setCollapsible(true) ; |
this.setCloseAction(HIDE) ; |
|
ajouterListeners() ; |
} |
|
/** |
* ajoute des listeners |
*/ |
private void ajouterListeners() |
{ |
// gestion du clic sur le bouton |
rechercher.addListener(new ButtonListenerAdapter() { |
|
public void onClick(Button button, EventObject e) { |
|
validationEtRequete() ; |
} |
|
}) ; |
|
// gestion de la touche entrée |
champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() { |
|
public void onKey(int key, EventObject e) { |
|
validationEtRequete() ; |
} |
|
|
}) ; |
} |
|
/** |
* Fonction héritée de l'interface rafraichissable |
*/ |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
|
filtreModifie = false ; |
|
} |
|
/** |
* renvoie l'état du filtre (modifié ou non) |
* @return l'état du filtre |
*/ |
public boolean renvoyerEtatFiltre() { |
|
return filtreModifie ; |
} |
|
/** |
* Renvoie le nom du filtre |
* @return le nom du filtre |
*/ |
public String renvoyerNomFiltre() { |
|
return "Recherche Commentaires" ; |
} |
|
/** |
* 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() { |
|
String[] valeurFiltre = {"ci_meta_comment" , motsAChercher } ; |
return valeurFiltre ; |
} |
|
/** |
* Accesseur pour le médiateur |
* @return le médiateur associé |
*/ |
public ImageMediateur getIMediateur() |
{ |
return iMediateur ; |
} |
|
/** |
* Effectue quelque opérations dans la classe et envoie une requête de données |
* au médiateur |
*/ |
public void validationEtRequete() |
{ |
filtreModifie = true ; |
motsAChercher = champRecherche.getText() ; |
getIMediateur().obtenirPhotoGalerie(getIMediateur().getFiltreCommentaires()) ; |
} |
|
/** |
* Affiche la fenetre |
*/ |
public void afficherFiltre() { |
|
show() ; |
champRecherche.setValue(motsAChercher) ; |
} |
|
} |