Subversion Repositories eFlore/Applications.del

Rev

Rev 415 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 415 Rev 450
Line 1... Line 1...
1
package org.tela_botanica.del.client.composants.formulaires;
1
package org.tela_botanica.del.client.composants.formulaires;
Line -... Line 2...
-
 
2
 
2
 
3
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
3
import com.google.gwt.event.dom.client.KeyPressEvent;
4
import com.google.gwt.event.dom.client.KeyPressEvent;
4
import com.google.gwt.event.dom.client.KeyPressHandler;
5
import com.google.gwt.event.dom.client.KeyPressHandler;
5
import com.google.gwt.http.client.Request;
6
import com.google.gwt.http.client.Request;
6
import com.google.gwt.http.client.RequestBuilder;
7
import com.google.gwt.http.client.RequestBuilder;
7
import com.google.gwt.http.client.RequestCallback;
8
import com.google.gwt.http.client.RequestCallback;
8
import com.google.gwt.http.client.RequestException;
9
import com.google.gwt.http.client.RequestException;
9
import com.google.gwt.http.client.Response;
10
import com.google.gwt.http.client.Response;
10
import com.google.gwt.http.client.URL;
-
 
11
import com.google.gwt.json.client.JSONArray;
-
 
12
import com.google.gwt.json.client.JSONParser;
-
 
13
import com.google.gwt.json.client.JSONValue;
11
import com.google.gwt.http.client.URL;
14
import com.google.gwt.user.client.Timer;
12
import com.google.gwt.user.client.Timer;
-
 
13
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.HasWidgets;
14
import com.google.gwt.user.client.ui.IsWidget;
Line 16... Line 15...
16
import com.google.gwt.user.client.ui.SuggestOracle;
15
import com.google.gwt.user.client.ui.SuggestOracle;
17
 
16
 
-
 
17
public abstract class AutoCompletionComboBoxPresenteur {
-
 
18
	
-
 
19
	public interface Vue extends IsWidget {
-
 
20
		public void ajouterVue(HasWidgets composite);
-
 
21
		public HasKeyPressHandlers getSuggestBoxHasKeyPressHandlers();
-
 
22
		public String getValeur();
-
 
23
		public void remplirListe(String[] suggestions);
-
 
24
		public void afficherSuggestions(SuggestOracle.Request request,SuggestOracle.Callback response);
-
 
25
		public void afficherListeDeroulante();
-
 
26
		public void nettoyer();
18
public abstract class AutoCompletionComboBoxPresenteur {
27
		public void setValeur(String valeur);
Line 19... Line 28...
19
		
28
	}
20
	private AutoCompletionComboBoxVue autoCompletionComboBoxVue = new AutoCompletionComboBoxVue();
29
	private Vue autoCompletionComboBoxVue;
Line 21... Line 30...
21
	
30
	
22
	SuggestOracle.Request requeteOracle;
31
	SuggestOracle.Request requeteOracle;
Line 23... Line 32...
23
    SuggestOracle.Callback callBackOracle;
32
    SuggestOracle.Callback callBackOracle;
Line 24... Line 33...
24
    
33
    
-
 
34
	Timer suggestionTimer = null;
25
	Timer suggestionTimer = null;
35
    int tempsAvantRequete = 500;
-
 
36
    
26
    int tempsAvantRequete = 500;
37
    String urlRequete = "";
Line 27... Line 38...
27
    
38
	
28
    String urlRequete = "";
39
	public AutoCompletionComboBoxPresenteur(Vue vue, String urlRequete) {
29
	
-
 
30
	public AutoCompletionComboBoxPresenteur(String urlRequete) {
40
		this.autoCompletionComboBoxVue = vue;
Line 31... Line 41...
31
		this.urlRequete = urlRequete;
41
		this.urlRequete = urlRequete;
32
	}
42
		gererEvenements();
33
	
43
	}
34
	public void go(HasWidgets composite) {
-
 
35
		composite.add(autoCompletionComboBoxVue);
44
	
36
		gererEvenements();
-
 
37
	}
-
 
38
	
-
 
39
	public void gererEvenements() {
-
 
40
		autoCompletionComboBoxVue.getSuggestBox().addKeyPressHandler(new KeyPressHandler() {
-
 
41
			public void onKeyPress(KeyPressEvent event) {
-
 
42
				
-
 
43
				if(event.getUnicodeCharCode() != 0) {
-
 
44
				
45
	public void go(HasWidgets composite) {
45
					if(suggestionTimer == null) {
-
 
46
						suggestionTimer = new Timer() {
-
 
47
							public void run() {
46
		autoCompletionComboBoxVue.ajouterVue(composite);
48
								requeteSuggestions(autoCompletionComboBoxVue.getSuggestBox().getValue());
47
	}
49
							}	
-
 
50
						};					
48
	
Line 51... Line 49...
51
						suggestionTimer.schedule(tempsAvantRequete);
49
	public void gererEvenements() {
52
					} else {
50
		autoCompletionComboBoxVue.getSuggestBoxHasKeyPressHandlers().addKeyPressHandler(new KeyPressHandler() {
Line 53... Line -...
53
						suggestionTimer.schedule(tempsAvantRequete);
-
 
54
					}
-
 
55
				}
51
			public void onKeyPress(KeyPressEvent event) {		
56
			}
52
				if(event.getUnicodeCharCode() != 0) {
57
			
53
					gererTimer();
58
		});
54
				}
59
		
55
			}
Line -... Line 56...
-
 
56
		});
-
 
57
		
-
 
58
		requeteOracle = new SuggestOracle.Request();
-
 
59
		callBackOracle = new SuggestOracle.Callback() {
-
 
60
 
-
 
61
			public void onSuggestionsReady(SuggestOracle.Request request, SuggestOracle.Response response) {
-
 
62
				autoCompletionComboBoxVue.afficherListeDeroulante();	
-
 
63
			}
-
 
64
	    };
-
 
65
	}
-
 
66
	
-
 
67
	public void gererTimer() {
-
 
68
		if(suggestionTimer == null) {
60
		requeteOracle = new SuggestOracle.Request();
69
			suggestionTimer = new Timer() {
61
		callBackOracle = new SuggestOracle.Callback() {
70
				public void run() {
62
 
71
					requeteSuggestions();
Line 63... Line 72...
63
			public void onSuggestionsReady(
72
				}	
64
					com.google.gwt.user.client.ui.SuggestOracle.Request request,
73
			};					
65
					com.google.gwt.user.client.ui.SuggestOracle.Response response) {
74
			suggestionTimer.schedule(tempsAvantRequete);
Line 66... Line 75...
66
				autoCompletionComboBoxVue.getSuggestBox().showSuggestionList();	
75
		} else {
67
			}
76
			suggestionTimer.schedule(tempsAvantRequete);
68
	    };
77
		}
Line 69... Line 78...
69
	}
78
	}
70
	
79
	
71
	public void setTempsAvantRequete(int temps) {
80
	public void setTempsAvantRequete(int temps) {
Line 72... Line 81...
72
		tempsAvantRequete = temps;
81
		tempsAvantRequete = temps;
73
	}
82
	}
74
	
83
	
Line 75... Line 84...
75
	public int getTempsAvantRequete(int temps) {
84
	public int getTempsAvantRequete(int temps) {
Line -... Line 85...
-
 
85
		return tempsAvantRequete;
76
		return tempsAvantRequete;
86
	}
77
	}
87
	
Line 78... Line 88...
78
	
88
	public String getValeur() {
79
	public String getValeur() {
-
 
80
		return autoCompletionComboBoxVue.getSuggestBox().getValue();
89
		return autoCompletionComboBoxVue.getValeur();
81
	}
-
 
82
	
90
	}
83
	public void setValeur(String taxon) {
-
 
84
		autoCompletionComboBoxVue.setValeur(taxon);
91
	
85
	}
92
	public void setValeur(String taxon) {
Line 86... Line 93...
86
	
93
		autoCompletionComboBoxVue.setValeur(taxon);
Line 87... Line 94...
87
	public void nettoyer() {
94
	}
88
		autoCompletionComboBoxVue.nettoyer();
95
	
89
	}
-
 
90
	
96
	public void nettoyer() {
91
	private void requeteSuggestions(final String requete) {
-
 
92
		
-
 
93
		String requeteAjax = effectuerPreTraitementChaineRequete(requete);		
-
 
94
		String urlProxy = URL.encode(urlRequete+requeteAjax);
-
 
95
		
97
		autoCompletionComboBoxVue.nettoyer();
96
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlProxy) ;
98
	}
Line 97... Line 99...
97
		
99
	
98
		try {
100
	public void requeteSuggestions() {
99
			
101
		
100
			rb.sendRequest(null, new RequestCallback() {
102
		final String requete = autoCompletionComboBoxVue.getValeur();
101
 
103
		String requeteAjax = effectuerPreTraitementChaineRequete(requete);		
Line -... Line 104...
-
 
104
		String urlProxy = URL.encode(urlRequete+requeteAjax);
-
 
105
		
-
 
106
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlProxy) ;
-
 
107
		try {		
-
 
108
			rb.sendRequest(null, new RequestCallback() {
-
 
109
				public void onError(final Request request, final Throwable exception) {
-
 
110
					// TODO Auto-generated method stub
-
 
111
					
102
				public void onError(final Request request, final Throwable exception) {
112
				}
103
					// TODO Auto-generated method stub
113
 
104
					
114
				public void onResponseReceived(final Request request,
105
				}
115
						final Response response) {
106
 
116
					surReponseRequete(requete, response);