/trunk/src/org/tela_botanica/client/modeles/ListeReferentielCommune.java |
---|
3,17 → 3,19 |
import java.util.HashMap; |
/** |
* table de hachage composée d'observation, renvoyé par les objets de type DAO |
* pour les images. |
* La clé est l'identifiant de l'observation dans la base de données, et la valeur un objet |
* de type Observation |
* GWT ne supporte pas encore les type paramètres mais quand il le fera il faudra créer la HashMap |
* avec <String,Observation> |
* table de hachage composée de communes, renvoyé par les objets de type DAO |
* pour les communes |
* TODO : utiliser un identifiant commune |
* La clé est le nom de la commune + l'identifiant du departement de la commune dans la base de données, et la valeur un objet |
* de type ReferentielCommune |
* @author david delon |
* |
*/ |
public class ListeReferentielCommune extends HashMap { |
public class ListeReferentielCommune extends HashMap<String, ReferentielCommune> { |
private static final long serialVersionUID = 2714510270773281540L; |
/** |
* Constructeur sans paramètres |
*/ |
42,9 → 44,10 |
{ |
if(com[i] != null && com[i] instanceof ReferentielCommune) |
{ |
this.put(com[i].getCommune()+com[i].getDepartement(),com[i]); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ListeReferentielNomAsynchroneDAO.java |
---|
New file |
0,0 → 1,101 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.Util; |
import org.tela_botanica.client.interfaces.FournisseurListe; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationModele; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.HTTPRequest; |
import com.google.gwt.user.client.ResponseTextHandler; |
/** |
* DAO liste noms scientifiques |
* @author David Delon |
* |
*/ |
public class ListeReferentielNomAsynchroneDAO implements FournisseurListe { |
/** |
* Le modèle associé au DAO |
*/ |
private ObservationModele observationModele = null ; |
public ListeReferentielNomAsynchroneDAO(ObservationModele observationModele) |
{ |
this.observationModele=observationModele; |
} |
/** |
* Envoie une requete au serveur jrest pour obtenir les communes correspondant |
* à des critères données en paramètres |
* @param r le rafraichissable qui demande la mise à jour |
* @param criteres un string contenant le terme a rechercher |
*/ |
public void obtenirListeDonnees(final Rafraichissable r, String critere) |
{ |
// on envoie le get asynchrone |
HTTPRequest.asyncGet(observationModele.getConfig().getServiceBaseUrl()+"/NameSearch/"+critere, new ResponseTextHandler() { |
// si tout se passe bien on reçoit une réponse JSON |
public void onCompletion(String responseText) { |
final ListeReferentielNom referentielNomData ; |
final JSONValue responseValue = JSONParser.parse(responseText); |
JSONArray reponse=null; |
// si c'est un tableau |
if ((reponse=responseValue.isArray()) != null) { |
JSONArray noms; |
final int taillemax = reponse.size(); |
referentielNomData = new ListeReferentielNom(taillemax); |
for (int i = 0; i < taillemax; i++) { |
if ((noms=reponse.get(i).isArray()) != null) { |
String nom=Util.toCelString(((JSONString) noms.get(0)).toString()); |
String numeroNom=Util.toCelString(((JSONString) noms.get(1)).toString()); |
ReferentielNom nomScientifique=new ReferentielNom(nom, numeroNom); |
// FIXME : et si le numero de nom n'est pas unique ? (cas de multirefrentiel....) |
referentielNomData.put(nomScientifique.getNumeroNom(),nomScientifique); |
} |
} |
// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est |
// le premier à les recevoir |
r.rafraichir(referentielNomData,true); |
} |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ListeReferentielCommuneAsynchroneDAO.java |
---|
13,7 → 13,7 |
import com.google.gwt.user.client.ResponseTextHandler; |
/** |
* DAO la liste des observations attachées a un observateur |
* DAO la liste des communes |
* @author David Delon |
* |
*/ |
73,8 → 73,9 |
if ((communes=reponse.get(i).isArray()) != null) { |
String commune=((JSONString) communes.get(0)).stringValue(); |
String departement=((JSONString) communes.get(0)).stringValue(); |
String departement=((JSONString) communes.get(1)).stringValue(); |
ReferentielCommune com=new ReferentielCommune(commune, departement); |
referentielCommuneData.put(com.getCommune()+com.getDepartement(),com); |
/trunk/src/org/tela_botanica/client/modeles/ListeReferentielNom.java |
---|
New file |
0,0 → 1,52 |
package org.tela_botanica.client.modeles; |
import java.util.HashMap; |
/** |
* table de hachage composée de noms, renvoyé par les objets de type DAO |
* pour les noms |
* La clé est l'identifiant du nom dans la base de données, et la valeur un objet |
* de type ReferentielNom |
* @author david delon |
* |
*/ |
public class ListeReferentielNom extends HashMap<String, ReferentielNom> { |
private static final long serialVersionUID = 3214510270773281540L; |
/** |
* Constructeur sans paramètres |
*/ |
public ListeReferentielNom() |
{ |
super(); |
} |
/** |
* Constructeur avec paramètre |
* @param taille la taille de la table de hachage |
*/ |
public ListeReferentielNom(int taille) |
{ |
super(taille); |
} |
/** |
* Constructeur avec paramètre |
* @param ic un tableau d'ImageCarnet |
*/ |
public ListeReferentielNom(ReferentielNom[] nom) |
{ |
super() ; |
for (int i = 0; i < nom.length; i++) |
{ |
if(nom[i] != null && nom[i] instanceof ReferentielNom) |
{ |
this.put(nom[i].getNumeroNom(),nom[i]); |
} |
} |
} |
} |