/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java |
---|
14,31 → 14,19 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class FormulairePropositionPresenteur extends Presenteur { |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
private String urlServiceCompletionNom = "http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/"; |
private AutoCompletionComboBoxPresenteur autoCompletionComboBoxPresenteur = new AutoCompletionComboBoxPresenteur(); |
public FormulairePropositionPresenteur() { |
super(new FormulairePropositionVue()); |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(urlServiceCompletionNom) { |
@Override |
protected String[] parserResultatRequete(Response response) { |
return convertirReponseVersListeNom(response); |
} |
}; |
} |
public void go(HasWidgets composite) { |
autoCompletionNomTaxonsPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon()); |
autoCompletionComboBoxPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon()); |
composite.add((FormulairePropositionVue)getVue()); |
gererEvenements(); |
} |
84,25 → 72,8 |
propositionAjoutee.setContributeur(auteur); |
propositionAjoutee.setDate(new Date()); |
propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur()); |
propositionAjoutee.setEspece(autoCompletionComboBoxPresenteur.getValeur()); |
return propositionAjoutee; |
} |
private String[] convertirReponseVersListeNom(Response response) { |
final JSONValue responseValue = JSONParser.parseStrict(response.getText()); |
JSONArray noms; |
String[] valeurs = new String[0]; |
if ((noms=responseValue.isArray()) != null) { |
final int taillemax = noms.size(); |
valeurs = new String[taillemax]; |
for (int i = 0; i < taillemax; i++) { |
valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue()); |
} |
} |
return valeurs; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/AutoCompletionComboBoxPresenteur.java |
---|
15,10 → 15,7 |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.SuggestOracle; |
public abstract class AutoCompletionComboBoxPresenteur { |
// Complétion de taxons : |
// http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/ |
public class AutoCompletionComboBoxPresenteur { |
private AutoCompletionComboBoxVue autoCompletionComboBoxVue = new AutoCompletionComboBoxVue(); |
27,11 → 24,9 |
Timer suggestionTimer = null; |
int tempsAvantRequete = 500; |
String urlRequete = ""; |
public AutoCompletionComboBoxPresenteur(String urlRequete) { |
this.urlRequete = urlRequete; |
public AutoCompletionComboBoxPresenteur() { |
} |
public void go(HasWidgets composite) { |
96,7 → 91,8 |
requeteAjax = parties[0]+"/"+parties[1]; |
} |
String urlProxy = "proxy.php?url="+URL.encode(urlRequete+requeteAjax); |
String altUrl = "http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/"; |
String urlProxy = "proxy.php?url="+URL.encode(altUrl+requeteAjax); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlProxy) ; |
112,11 → 108,21 |
public void onResponseReceived(final Request request, |
final Response response) { |
String[] valeurs = parserResultatRequete(response); |
final JSONValue responseValue = JSONParser.parseStrict(response.getText()); |
JSONArray noms; |
if ((noms=responseValue.isArray()) != null) { |
final int taillemax = noms.size(); |
String[] valeurs = new String[taillemax]; |
for (int i = 0; i < taillemax; i++) { |
valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue()); |
} |
autoCompletionComboBoxVue.remplirListe(valeurs); |
requeteOracle.setQuery(requete); |
autoCompletionComboBoxVue.afficherSuggestions(requeteOracle, callBackOracle); |
autoCompletionComboBoxVue.remplirListe(valeurs); |
requeteOracle.setQuery(requete); |
autoCompletionComboBoxVue.afficherSuggestions(requeteOracle, callBackOracle); |
} |
} |
}) ; |
125,6 → 131,4 |
e.printStackTrace(); |
} |
} |
protected abstract String[] parserResultatRequete(Response response); |
} |