New file |
0,0 → 1,183 |
package org.tela_botanica.client.vues; |
|
import org.tela_botanica.client.interfaces.Filtrable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationMediateur; |
|
import com.google.gwt.user.client.ui.Label; |
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.event.KeyListener; |
import com.gwtext.client.widgets.form.TextField; |
|
public class MotsClesObsVue extends Panel implements Filtrable, Rafraichissable { |
|
private ObservationMediateur oMediateur = null ; |
|
/** |
* Barre de recherche |
* |
*/ |
private TextField champRecherche = null; |
|
/** |
* Booleen d'etat du filtre |
*/ |
private boolean filtreModifie = false; |
|
/** |
* mot(s) à chercher |
*/ |
private String motsAChercher = ""; |
|
/** |
* bouton de validation |
*/ |
private Button ok = null ; |
|
private Button afficherNuage = null; |
|
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
@SuppressWarnings("unused") |
private MotsClesObsVue() { |
super(); |
} |
|
/** |
* Constructeur avec médiateur |
* |
* @param im |
*/ |
public MotsClesObsVue(ObservationMediateur om) { |
super(); |
oMediateur = om; |
|
Label labelRecherche = new Label("Mots clés :"); |
champRecherche = new TextField(); |
ok = new Button("Rechercher"); |
afficherNuage = new Button("Voir les mots clés"); |
|
add(labelRecherche); |
add(champRecherche); |
add(ok); |
add(afficherNuage); |
|
setPaddings(5); |
setBorder(false); |
setAutoWidth(true); |
setCollapsible(true); |
|
ajouterListeners(); |
} |
|
/** |
* 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(); |
} |
|
}); |
|
ok.addListener(new ButtonListenerAdapter() { |
|
public void onClick(Button button, EventObject e) { |
valider(); |
} |
}); |
|
afficherNuage.addListener(new ButtonListenerAdapter() { |
|
public void onClick(Button button, EventObject e) { |
oMediateur.afficherNuageMotsCles(); |
} |
}); |
} |
|
/** |
* Fonction héritée de l'interface rafraichissable |
*/ |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
|
if(nouvelleDonnees instanceof String) { |
|
champRecherche.setValue(champRecherche.getValueAsString()+" "+(String)nouvelleDonnees); |
} |
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 Mots clés"; |
} |
|
/** |
* 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 = new String[0]; |
if(!motsAChercher.equals("")) { |
valeurFiltre = new String[2]; |
valeurFiltre[0] = "mots_cles"; |
valeurFiltre[1] = motsAChercher; |
} |
return valeurFiltre; |
} |
|
/** |
* Accesseur pour le médiateur |
* |
* @return le médiateur associé |
*/ |
public ObservationMediateur getIMediateur() { |
return oMediateur; |
} |
|
/** |
* Effectue quelque opérations dans la classe et envoie une requête de |
* données au médiateur |
*/ |
public void valider() { |
filtreModifie = true; |
motsAChercher = champRecherche.getText(); |
oMediateur.obtenirNombreObservation(); |
} |
|
/** |
* Affiche la fenetre |
*/ |
public void afficherFiltre() { |
|
champRecherche.setValue(motsAChercher); |
} |
} |