Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1548 → Rev 1549

/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;
}
/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);