Rev 1292 | 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.vues.ArbreMotsClesFiltreVue;import com.gwtext.client.core.Ext;import com.gwtext.client.widgets.Button;import com.gwtext.client.widgets.Component;import com.gwtext.client.widgets.Panel;import com.gwtext.client.widgets.event.ContainerListenerAdapter;import com.gwtext.client.widgets.layout.RowLayout;import com.gwtext.client.widgets.layout.RowLayoutData;/*** Panneau contenant les filtres qu'on peut appliquer aux images** @author aurelien**/public class PanneauFiltresImagesVues extends Panel {/*** Le médiateur associé*/private ImageMediateur iMediateur = null;/*** L'arbre pour la recherche par mots clés*/private ArbreMotsClesFiltreVue motsClesFiltres = null;/*** L'arbre pour la recherche par mots clés*/private ArbreDateImageFiltreVue arbreDateImageFiltreVue = null;/*** La barre de recherche libre*/private BarreRechercheFiltreVue rechercheLibreFiltreVue = null;/*** Recherche par contenu du tampon*/private SelectionFiltreVue selectionFiltreVue = null;/*** Bouton de validation*/private Button valider = null;/*** Construcuteur sans argument (privé car on ne doit pas l'utiliser)*/@SuppressWarnings("unused")private PanneauFiltresImagesVues() {super();}/*** Constructeur avec arguments** @param im* le médiateur à associer*/public PanneauFiltresImagesVues(ImageMediateur im) {super("Filtres");iMediateur = im;this.setCollapsible(true);setLayout(new RowLayout());rechercheLibreFiltreVue = new BarreRechercheFiltreVue(im);rechercheLibreFiltreVue.setTitle("Recherche libre");rechercheLibreFiltreVue.setCollapsible(true);add(rechercheLibreFiltreVue, new RowLayoutData());if(Ext.isIE()) {add(rechercheLibreFiltreVue);rechercheLibreFiltreVue.setHeight(110);} else {add(rechercheLibreFiltreVue,new RowLayoutData(100));}arbreDateImageFiltreVue = new ArbreDateImageFiltreVue(im) ;arbreDateImageFiltreVue.setWidth("100%") ;arbreDateImageFiltreVue.setBorder(false);add(arbreDateImageFiltreVue, new RowLayoutData());motsClesFiltres = new ArbreMotsClesFiltreVue(im);motsClesFiltres.setTitle("Mots clés");motsClesFiltres.setAutoScroll(true);add(motsClesFiltres, new RowLayoutData());selectionFiltreVue = new SelectionFiltreVue(im);addListener(new ContainerListenerAdapter() {@Overridepublic void onRender(Component component) {// TODO Auto-generated method stubrechercheLibreFiltreVue.ajouterListeners();arbreDateImageFiltreVue.ajouterListeners();}});}/*** Accesseur pour le filtre des mots clés** @return le filtre des mots clés*/public ArbreMotsClesFiltreVue getMotsClesFiltre() {return motsClesFiltres;}/*** Accesseur pour le filtre général** @return le filtre général*/public BarreRechercheFiltreVue getBarreRecherche() {return rechercheLibreFiltreVue;}/*** Accesseur pour le filtre des dates** @return le filtre des dates*/public ArbreDateImageFiltreVue getArbreDateRecherche() {return arbreDateImageFiltreVue;}/*** Renvoie un booléen indiquant si un des filtres a été modifié** @return true sur un des filtres est modifié, false sinon*/public boolean renvoyerEtatFiltre() {return (motsClesFiltres.renvoyerEtatFiltre()|| rechercheLibreFiltreVue.renvoyerEtatFiltre()|| arbreDateImageFiltreVue.renvoyerEtatFiltre()|| selectionFiltreVue.renvoyerEtatFiltre());}/*** Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre",* "valeur"** @return un tableau contenant les noms et les valeurs à filtrer*/public String[][] renvoyerValeursAFiltrer() {String[] filtresDates = arbreDateImageFiltreVue.renvoyerValeursAFiltrer();int lgSup = 0;if(filtresDates.length > 0) {String[] nomFiltresDates = filtresDates[0].split(",");String[] valFiltresDates = filtresDates[1].split(",");lgSup = Math.max(nomFiltresDates.length, valFiltresDates.length);}String[][] filtres = new String[3 + lgSup][2];for(int i=3; i < filtres.length; i++) {filtres[i][0] = filtresDates[0].split(",")[i - 3];filtres[i][1] = filtresDates[1].split(",")[i -3];}filtres[0] = motsClesFiltres.renvoyerValeursAFiltrer();filtres[1] = rechercheLibreFiltreVue.renvoyerValeursAFiltrer();filtres[2] = selectionFiltreVue.renvoyerValeursAFiltrer();return filtres;}public void viderFiltres() {motsClesFiltres.viderFiltre();rechercheLibreFiltreVue.viderFiltre();arbreDateImageFiltreVue.viderFiltre();selectionFiltreVue.viderFiltre();}public void viderFiltre(String nom) {if(nom.equals("id_mots_cles")) {motsClesFiltres.viderFiltre();}if(nom.equals("recherche")) {rechercheLibreFiltreVue.viderFiltre();}if(nom.equals("annee") || nom.equals("mois") || nom.equals("jour")) {arbreDateImageFiltreVue.viderFiltre(nom);}if(nom.equals("ci_id_tampon")) {selectionFiltreVue.viderFiltre();}}}