Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2212 arthur 1
package org.tela_botanica.del.client.composants.formulaires.autocompletion;
2
 
3
import org.tela_botanica.del.client.utils.InfosNomPourAutocompletion;
4
import org.tela_botanica.del.client.utils.TBSuggestOracle;
5
 
6
import com.google.gwt.core.client.Callback;
7
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
8
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
9
import com.google.gwt.user.client.Event;
10
import com.google.gwt.user.client.ui.HasWidgets;
11
import com.google.gwt.user.client.ui.LayoutPanel;
12
import com.google.gwt.user.client.ui.SuggestBox;
13
import com.google.gwt.user.client.ui.SuggestOracle;
14
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
15
 
16
public class AutoCompletionComboBoxVue extends LayoutPanel implements AutoCompletionComboBoxPresenteur.Vue {
17
 
18
	TBSuggestOracle msu = new TBSuggestOracle();
19
	SuggestBox suggestions = new SuggestBox(msu);
20
	Callback<String, String> surCopierColler = null;
21
 
22
	public AutoCompletionComboBoxVue() {
23
		add(suggestions);
24
		setHeight("25px");
25
		setWidth("100%");
26
		sinkEvents(Event.ONPASTE);
27
	}
28
 
29
	@Override
30
	public SuggestBox getSuggestBox() {
31
		return suggestions;
32
	}
33
 
34
	public void remplirListe(InfosNomPourAutocompletion[] listePropositions) {
35
 
36
		msu.clear();
37
		for (int i = 0; i < listePropositions.length; i++) {
38
			msu.add(listePropositions[i]);
39
		}
40
	}
41
 
42
	@Override
43
	public void afficherSuggestions(SuggestOracle.Request requeteOracle, SuggestOracle.Callback callBackOracle) {
44
		msu.requestSuggestions(requeteOracle, callBackOracle);
45
	}
46
 
47
	@Override
48
	public void afficherListeDeroulante() {
49
		suggestions.showSuggestionList();
50
	}
51
 
52
	public void nettoyer() {
53
		suggestions.setText("");
54
	}
55
 
56
	public void setValeur(String taxon) {
57
		suggestions.setValue(taxon);
58
	}
59
 
60
	@Override
61
	public HasKeyPressHandlers getSuggestBoxHasKeyPressHandlers() {
62
		return suggestions;
63
	}
64
 
65
	@Override
66
	public HasSelectionHandlers<Suggestion> getSuggestBoxHasSelectionChangeHandlers() {
67
		return suggestions;
68
	}
69
 
70
	@Override
71
	public String getValeur() {
72
		return suggestions.getText();
73
	}
74
 
75
	@Override
76
	public void ajouterVue(HasWidgets composite) {
77
		composite.add(this.asWidget());
78
	}
79
 
80
	@Override
81
	public void afficherStyleErreur(String styleErreur) {
82
		suggestions.addStyleName(styleErreur);
83
	}
84
 
85
	@Override
86
	public void supprimerStyleErreur(String styleErreur) {
87
		suggestions.removeStyleName(styleErreur);
88
	}
89
 
90
	public void onBrowserEvent(Event event) {
91
	    super.onBrowserEvent(event);
92
	    switch (event.getTypeInt()) {
93
	        case Event.ONPASTE: {
94
	        	if(surCopierColler != null) {
95
	        		surCopierColler.onSuccess(suggestions.getValueBox().getValue());
96
	        	}
97
	        }
98
	    }
99
	}
100
 
101
	@Override
102
	public void setHandlerCopierColler(Callback<String, String> cb) {
103
		surCopierColler = cb;
104
	}
105
}