New file |
0,0 → 1,208 |
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() { |
|
@Override |
public void onRender(Component component) { |
// TODO Auto-generated method stub |
|
rechercheLibreFiltreVue.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(); |
} |
|
} |
|
} |
Property changes: |
Added: svn:mergeinfo |