/trunk/src/org/tela_botanica/client/util/Util.java |
---|
1,12 → 1,12 |
package org.tela_botanica.client.util; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.Map; |
import org.tela_botanica.client.modeles.objets.ListeObservation; |
import org.tela_botanica.client.modeles.objets.Observation; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
19,18 → 19,28 |
return jsonNonNull(jo, index) ? ((JSONString)jo.get(index)).stringValue() : ""; |
} |
public static Map<String, String> getMapValeursOuVide(JSONArray jo, String index) { |
public static Map<String, String> getMapValeursOuVide(JSONObject jo, String index) { |
Map<String, String> mapValeurs = new HashMap<String, String>(); |
final int taillemax = jo.size(); |
JSONObject temp = null; |
for (int i = 0; i < taillemax; i++) { |
if ((temp = jo.get(i).isObject()) != null) { |
mapValeurs.put(temp.get("cle").isString().stringValue(), temp.get("valeur").isString().stringValue()); |
if(jo.get(index) != null && jo.get(index).isObject() != null) { |
JSONObject mapJo = jo.get(index).isObject(); |
for (Iterator<String> it = mapJo.keySet().iterator(); it.hasNext();) { |
String cle = it.next(); |
mapValeurs.put(cle, mapJo.get(cle).isString().stringValue()); |
} |
} |
return mapValeurs; |
} |
public static String convertirMapEnChaineRequete(Map<String, String> map, String cleUrl) { |
String chaineChamps = ""; |
for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) { |
String cle = it.next(); |
String valeur = map.get(cle); |
chaineChamps += URL.encode(cleUrl+"["+cle+"]")+"="+URL.encode(valeur)+"&"; |
} |
return chaineChamps; |
} |
public static boolean jsonNonNull(JSONObject jo, String index) { |
return (jo != null && |
jo.get(index) != null && |
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java |
---|
3,7 → 3,9 |
// TODO Detecter redim et supprimer ajuster |
import java.util.Date; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.Map; |
import org.tela_botanica.client.CarnetEnLigneMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
252,6 → 254,8 |
private ComboBox selecteurStadePheno = null; |
private Map<String, TextField> listeChampsEtendus; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
1299,6 → 1303,7 |
obs.setPhenologie(getPhenologie()); |
obs.setReferentielTaxo(Ontologies.getInfosReferentielNomParCode(referentielTaxo).getCodeVersionComplet()); |
obs.setChampsEtendus(getValeursChampsEtendus()); |
observationMediateur.ajouterObservation(obs); |
} |
1348,6 → 1353,7 |
obs.setCertitude(getCertitude()); |
obs.setPhenologie(getPhenologie()); |
obs.setReferentielTaxo(getReferentielTaxo()); |
obs.setChampsEtendus(getValeursChampsEtendus()); |
observationMediateur.modifierObservation(obs); |
1606,9 → 1612,66 |
referentielTaxo = ""; |
selecteurReferentielTaxo.setRawValue(VALEURS_MULTIPLES); |
} |
afficherChampsEtendus(obs); |
} |
private void viderChampsEtendus() { |
if(listeChampsEtendus != null) { |
for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) { |
TextField champEtendu = listeChampsEtendus.get(it.next()); |
champEtendu.destroy(); |
} |
listeChampsEtendus = null; |
} |
} |
private void afficherChampsEtendus(Observation obs) { |
viderChampsEtendus(); |
if(obs.getChampsEtendus().size() > 0) { |
listeChampsEtendus = new HashMap<String, TextField>(obs.getChampsEtendus().size()); |
boolean gauche = true; |
for (Iterator<String> iterator = obs.getChampsEtendus().keySet().iterator(); iterator.hasNext();) { |
String label = iterator.next(); |
String valeur = obs.getChampsEtendus().get(label); |
TextField champEtendu = new TextField(); |
champEtendu.setAutoWidth(true); |
champEtendu.setLabel(formaterLabel(label)); |
champEtendu.setTitle(label); |
champEtendu.setValue(valeur); |
if(gauche) { |
panneauPremierColonne.add(champEtendu); |
} else { |
panneauSecondeColonne.add(champEtendu); |
} |
listeChampsEtendus.put(label, champEtendu); |
gauche = !gauche; |
} |
} |
doLayout(); |
} |
private Map<String, String> getValeursChampsEtendus() { |
Map<String, String> valeursChampsEtendus = new HashMap<String, String>(); |
if(listeChampsEtendus != null) { |
for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) { |
String labelChamp = it.next(); |
TextField champEtendu = listeChampsEtendus.get(labelChamp); |
valeursChampsEtendus.put(labelChamp, champEtendu.getValueAsString()); |
} |
} |
return valeursChampsEtendus; |
} |
private String formaterLabel(String label) { |
String labelFmt = label; |
if(label.length() > 15) { |
labelFmt = label.substring(0, 14); |
} |
return labelFmt; |
} |
public void raz() |
{ |
raz(Champs.TOUT); |
/trunk/src/org/tela_botanica/client/modeles/dao/ObservationAsynchroneDAO.java |
---|
4,6 → 4,7 |
import org.tela_botanica.client.modeles.objets.Configuration; |
import org.tela_botanica.client.modeles.objets.Observation; |
import org.tela_botanica.client.observation.ObservationModele; |
import org.tela_botanica.client.util.Util; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestBuilder; |
50,7 → 51,7 |
public void ajouter(final Rafraichissable r, String utilisateur, final Observation obs) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,Configuration.getServiceBaseUrl()+ "/Inventory/") ; |
rb.setHeader("Content-type", "application/x-www-form-urlencoded"); |
String postData = "ce_utilisateur=" |
+ utilisateur |
+"&nom_sel="+URL.encodeComponent(obs.getNomSaisi()) |
67,7 → 68,8 |
+"&abondance="+URL.encodeComponent(""+obs.getAbondance()) |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()) |
+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie()) |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()); |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()) |
+"&"+Util.convertirMapEnChaineRequete(obs.getChampsEtendus(), "obs_etendue"); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
102,7 → 104,7 |
public void modifier(final Rafraichissable r, String utilisateur, final Observation obs) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,Configuration.getServiceBaseUrl()+ "/Inventory/" + utilisateur + "/" + obs.getNumeroOrdre()+ "/") ; |
rb.setHeader("Content-type", "application/x-www-form-urlencoded"); |
String postData = "ce_utilisateur=" |
+ utilisateur |
+ "&nom_sel=" + URL.encodeComponent(obs.getNomSaisi()) |
119,7 → 121,8 |
+"&abondance="+URL.encodeComponent(""+obs.getAbondance()) |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()) |
+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie()) |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()); |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()) |
+"&"+Util.convertirMapEnChaineRequete(obs.getChampsEtendus(), "obs_etendue"); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/objets/Observation.java |
---|
1,6 → 1,5 |
package org.tela_botanica.client.modeles.objets; |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.util.Util; |
116,6 → 115,7 |
this.certitude = Util.getValeurJsonOuVide(observation,"certitude"); |
this.phenologie = Util.getValeurJsonOuVide(observation,"phenologie"); |
this.setReferentielTaxo(Util.getValeurJsonOuVide(observation,"nom_referentiel")); |
this.setChampsEtendus(Util.getMapValeursOuVide(observation, "obs_etendue")); |
} |
/** |
132,7 → 132,6 |
* @param date |
* |
*/ |
public Observation(String nomSaisi, String numeroNomenclaturalSaisi, String localite, String identifiantLocalite, String lieudit, String station, String milieu, String commentaire, String date) { |
this.nomSaisi = nomSaisi; |
349,7 → 348,6 |
return champsEtendus; |
} |
public void setChampsEtendus(Map<String, String> champsEtendus) { |
this.champsEtendus = champsEtendus; |
} |