Subversion Repositories eFlore/Applications.coel

Rev

Rev 1633 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1633 Rev 1637
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
2
 
2
 
3
import org.tela_botanica.client.Mediateur;
3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.images.Images;
4
import org.tela_botanica.client.images.Images;
5
import org.tela_botanica.client.interfaces.ListePaginable;
5
import org.tela_botanica.client.interfaces.ListePaginable;
6
 
6
 
7
import com.extjs.gxt.ui.client.event.ButtonEvent;
7
import com.extjs.gxt.ui.client.event.ButtonEvent;
8
import com.extjs.gxt.ui.client.event.ComponentEvent;
8
import com.extjs.gxt.ui.client.event.ComponentEvent;
9
import com.extjs.gxt.ui.client.event.KeyListener;
9
import com.extjs.gxt.ui.client.event.KeyListener;
10
import com.extjs.gxt.ui.client.event.SelectionListener;
10
import com.extjs.gxt.ui.client.event.SelectionListener;
11
import com.extjs.gxt.ui.client.widget.Text;
11
import com.extjs.gxt.ui.client.widget.Text;
12
import com.extjs.gxt.ui.client.widget.button.Button;
12
import com.extjs.gxt.ui.client.widget.button.Button;
13
import com.extjs.gxt.ui.client.widget.form.TextField;
13
import com.extjs.gxt.ui.client.widget.form.TextField;
14
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
14
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
15
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
15
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
16
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
16
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
17
import com.google.gwt.event.dom.client.KeyCodes;
17
import com.google.gwt.event.dom.client.KeyCodes;
18
 
18
 
19
public class ChampFiltreRecherche {
19
public class ChampFiltreRecherche {
20
	
20
	
21
	private ListePaginable listePaginable;
21
	private ListePaginable listePaginable;
22
	private Mediateur mediateur;
22
	private Mediateur mediateur;
23
	private ToolBar parent;
23
	private ToolBar parent;
24
	private TextField<String> filtre;
24
	private TextField<String> filtre;
25
	private Button annulerFiltre;
25
	private Button annulerFiltre;
26
	private boolean filtreActive = false;
26
	private boolean filtreActive = false;
27
	private String termeRecherche = "";
27
	private String termeRecherche = "";
28
	private Text labelFiltre;
28
	private Text labelFiltre;
29
 
29
 
30
	public ChampFiltreRecherche(Mediateur mediateur, ToolBar parent, ListePaginable listePaginable) {
30
	public ChampFiltreRecherche(Mediateur mediateur, ToolBar parent, ListePaginable listePaginable) {
31
		//Séparation
31
		//Séparation
32
		this.mediateur = mediateur;
32
		this.mediateur = mediateur;
33
		this.parent = parent;
33
		this.parent = parent;
34
		this.listePaginable = listePaginable;
34
		this.listePaginable = listePaginable;
35
		parent.add(new SeparatorToolItem());
35
		parent.add(new SeparatorToolItem());
36
				
36
				
37
		labelFiltre = new Text("Recherche rapide : ");
37
		labelFiltre = new Text("Recherche : ");
38
		labelFiltre.setStyleAttribute("padding-right", "5px");
38
		labelFiltre.setStyleAttribute("padding-right", "5px");
39
		parent.add(labelFiltre);
39
		parent.add(labelFiltre);
40
		
40
		
41
		filtre = new TextField<String>();
41
		filtre = new TextField<String>();
42
		filtre.setWidth(150);
42
		filtre.setWidth(150);
43
		parent.add(filtre);
43
		parent.add(filtre);
44
		
44
		
45
		annulerFiltre = new Button();
45
		annulerFiltre = new Button();
46
		annulerFiltre.setIcon(Images.ICONES.annuler());
46
		annulerFiltre.setIcon(Images.ICONES.annuler());
47
		annulerFiltre.setVisible(false);
47
		annulerFiltre.setVisible(false);
48
		parent.add(annulerFiltre);
48
		parent.add(annulerFiltre);
49
		
49
		
50
		parent.add(new FillToolItem());
50
		parent.add(new FillToolItem());
51
		ajouterListeners();
51
		ajouterListeners();
52
	}
52
	}
53
	
53
	
54
	private void ajouterListeners() {
54
	private void ajouterListeners() {
55
		annulerFiltre.addSelectionListener(new SelectionListener<ButtonEvent>() {
55
		annulerFiltre.addSelectionListener(new SelectionListener<ButtonEvent>() {
56
			public void componentSelected(ButtonEvent ce)	{
56
			public void componentSelected(ButtonEvent ce)	{
57
				filtre.setValue("");
57
				filtre.setValue("");
58
				termeRecherche = "";
58
				termeRecherche = "";
59
				filtreActive = false;
59
				filtreActive = false;
60
				listePaginable.filtrerParNom("");
60
				listePaginable.filtrerParNom("");
61
				labelFiltre.setStyleAttribute("font-weight", "normal");
61
				labelFiltre.setStyleAttribute("font-weight", "normal");
62
				changerEtat();
62
				changerEtat();
63
			}
63
			}
64
		});
64
		});
65
		
65
		
66
		filtre.addKeyListener(new KeyListener(){
66
		filtre.addKeyListener(new KeyListener(){
67
			public void componentKeyUp(ComponentEvent ce) 	{
67
			public void componentKeyUp(ComponentEvent ce) 	{
68
				if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
68
				if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
69
					termeRecherche = filtre.getValue();
69
					termeRecherche = filtre.getValue();
70
					if (termeRecherche == null || termeRecherche.equals(""))	{
70
					if (termeRecherche == null || termeRecherche.equals(""))	{
71
						filtreActive = false;
71
						filtreActive = false;
72
						labelFiltre.setStyleAttribute("font-weight", "normal");
72
						labelFiltre.setStyleAttribute("font-weight", "normal");
73
						termeRecherche= "";
73
						termeRecherche= "";
74
						listePaginable.filtrerParNom("");
74
						listePaginable.filtrerParNom("");
75
						changerEtat();
75
						changerEtat();
76
					} else	{
76
					} else	{
77
						listePaginable.filtrerParNom(termeRecherche);
77
						listePaginable.filtrerParNom(termeRecherche);
78
						labelFiltre.setStyleAttribute("font-weight", "bold");
78
						labelFiltre.setStyleAttribute("font-weight", "bold");
79
						filtreActive = true;
79
						filtreActive = true;
80
						changerEtat();
80
						changerEtat();
81
					}
81
					}
82
				}
82
				}
83
			}
83
			}
84
		});
84
		});
85
	}
85
	}
86
	
86
	
87
	private void changerEtat() {
87
	private void changerEtat() {
88
		if (filtreActive == true) {
88
		if (filtreActive == true) {
89
			annulerFiltre.setVisible(true);
89
			annulerFiltre.setVisible(true);
90
		} else {
90
		} else {
91
			annulerFiltre.setVisible(false);
91
			annulerFiltre.setVisible(false);
92
		}
92
		}
93
	}
93
	}
94
	
94
	
95
	public void setListePaginable(ListePaginable listePaginable) {
95
	public void setListePaginable(ListePaginable listePaginable) {
96
		this.listePaginable = listePaginable;
96
		this.listePaginable = listePaginable;
97
	}
97
	}
98
}
98
}