/trunk/src/org/tela_botanica/client/cel2.java |
---|
16,26 → 16,24 |
* This is the entry point method. |
*/ |
@Override |
public void onModuleLoad() { |
public void onModuleLoad() { |
CarnetEnLigneMediateur carnetEnLigneMediateur= CarnetEnLigneMediateur.Instance(); |
if(GWT.isScript()) { // Nav |
new Viewport(carnetEnLigneMediateur.getPanneauPrincipalCarnetEnLigne()) ; |
} else { // Hosted |
RootPanel.get().add(carnetEnLigneMediateur.getPanneauPrincipalCarnetEnLigne()); |
} |
CarnetEnLigneMediateur carnetEnLigneMediateur= CarnetEnLigneMediateur.Instance(); |
if(GWT.isScript()) { // Nav |
new Viewport(carnetEnLigneMediateur.getPanneauPrincipalCarnetEnLigne()) ; |
} else { // Hosted |
RootPanel.get().add(carnetEnLigneMediateur.getPanneauPrincipalCarnetEnLigne()); |
carnetEnLigneMediateur.getEtatUtilisateur() ; |
Timer t = new Timer() { |
@Override |
public void run() { |
Ext.get("loading").hide(); |
} |
carnetEnLigneMediateur.getEtatUtilisateur() ; |
Timer t = new Timer() { |
@Override |
public void run() { |
Ext.get("loading").hide(); |
} |
}; |
t.schedule(3000); |
}; |
t.schedule(3000); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/dao/ImageGeneriqueVueAsynchroneDAO.java |
---|
40,13 → 40,13 |
* @param numeroNomenclaturalSaisiObservation |
*/ |
public void obtenirURLImage(final Rafraichissable r, String numeroNomenclaturalSaisiObservation) { |
public void obtenirURLImage(final Rafraichissable r, String referentielTaxo, String numeroNomenclaturalSaisiObservation) { |
String referentielDefaut = Configuration.getReferentielsDispos().get(0).getCode(); |
referentielTaxo = (referentielTaxo != null && !referentielTaxo.isEmpty()) ? referentielTaxo : referentielDefaut; |
// on envoie le get asynchrone |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() |
+"/NameImage/"+numeroNomenclaturalSaisiObservation) ; |
+"/NameImage/"+referentielTaxo+"/"+numeroNomenclaturalSaisiObservation) ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/dao/ImageInformationRepartitionAsynchroneDAO.java |
---|
40,13 → 40,14 |
* @param numeroNomenclaturalSaisiObservation |
*/ |
public void obtenirURLImage(final Rafraichissable r, String numeroNomenclaturalSaisiObservation) { |
public void obtenirURLImage(final Rafraichissable r, String referentielTaxo, String numeroNomenclaturalSaisiObservation) { |
String referentielDefaut = Configuration.getReferentielsDispos().get(0).getCode(); |
referentielTaxo = (referentielTaxo != null && !referentielTaxo.isEmpty()) ? referentielTaxo : referentielDefaut; |
// on envoie le get asynchrone |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() |
+"/NameMap/"+numeroNomenclaturalSaisiObservation) ; |
+"/NameMap/"+referentielTaxo+"/"+numeroNomenclaturalSaisiObservation) ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/dao/ListeReferentielNomAsynchroneDAO.java |
---|
56,16 → 56,11 |
* @param r le rafraichissable qui demande la mise à jour |
* @param criteres un string contenant le terme a rechercher |
*/ |
@Override |
public void obtenirListeDonnees(final Rafraichissable r, final String critere) |
public void obtenirListeDonnees(final Rafraichissable r,final String referentiel, final String critere) |
{ |
ListeReferentielNom referentielNomDataFromCache=null; |
// En cache ? |
if ((referentielNomDataFromCache=getFromCache(critere))!=null) { |
r.rafraichir(referentielNomDataFromCache,true); |
76,7 → 71,7 |
// On vérifie si un genre et une espèce sont demandées |
// et ajoute le / manuellement car sinon il devient urlencode |
String[] criteres =critere.split("/"); |
String urlParams = "/NameSearch/"; |
String urlParams = "/NameSearch/"+referentiel+"/"; |
if(criteres.length > 1) { |
String critere1 = criteres[0]; |
String critere2 = criteres[1]; |
143,14 → 138,16 |
} |
private void addToCache(String query, ListeReferentielNom result) { |
cache.put(query.toLowerCase(),result); |
} |
@Override |
public void obtenirListeDonnees(Rafraichissable r, String critere) { |
obtenirListeDonnees(r, "bdtfx", critere); |
} |
private void addToCache(String query, ListeReferentielNom result) { |
cache.put(query.toLowerCase(),result); |
} |
private ListeReferentielNom getFromCache (String query) { |
return cache.get(query.toLowerCase()); |
} |
private ListeReferentielNom getFromCache (String query) { |
return cache.get(query.toLowerCase()); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/dao/ListeReferentielCommuneAsynchroneDAO.java |
---|
76,73 → 76,71 |
} |
else { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl() + "/LocationSearch/" + URL.encodeComponent(critere)); |
try { |
rb.sendRequest(null, new RequestCallback() { |
@Override |
public void onError(final Request request, final Throwable exception) { |
// TODO Auto-generated method stub |
} |
@Override |
public void onResponseReceived(final Request request, |
final Response response) { |
final ListeReferentielCommune referentielCommuneData; |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
JSONArray reponse = null; |
// si c'est un tableau |
if ((reponse = responseValue.isArray()) != null) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl() + "/LocationSearch/" + URL.encodeComponent(critere)); |
try { |
rb.sendRequest(null, new RequestCallback() { |
@Override |
public void onError(final Request request, final Throwable exception) { |
// TODO Auto-generated method stub |
JSONArray communes; |
final int taillemax = reponse.size(); |
} |
@Override |
public void onResponseReceived(final Request request, |
final Response response) { |
referentielCommuneData = new ListeReferentielCommune(taillemax); |
final ListeReferentielCommune referentielCommuneData; |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
JSONArray reponse = null; |
// si c'est un tableau |
if ((reponse = responseValue.isArray()) != null) { |
JSONArray communes; |
final int taillemax = reponse.size(); |
referentielCommuneData = new ListeReferentielCommune(taillemax); |
for (int i = 0; i < taillemax; i++) { |
if ((communes = reponse.get(i).isArray()) != null) { |
String commune = ((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); |
} |
} |
} else { |
referentielCommuneData = new ListeReferentielCommune(0); |
} |
addToCache(critere, referentielCommuneData); |
r.rafraichir(referentielCommuneData, true); |
for (int i = 0; i < taillemax; i++) { |
if ((communes = reponse.get(i).isArray()) != null) { |
String commune = ((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); |
} |
} |
} else { |
referentielCommuneData = new ListeReferentielCommune(0); |
} |
addToCache(critere, referentielCommuneData); |
r.rafraichir(referentielCommuneData, true); |
} |
} |
}); |
}); |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} // Fin else si pas de cache |
} |
private void addToCache(String query, ListeReferentielCommune result) { |
cache.put(query.toLowerCase(),result); |
} |
/** |
* Fonction à implémenter dans le futur, lors de l'utilisation de plusieurs |
* référentiels de localité |
*/ |
@Override |
public void obtenirListeDonnees(Rafraichissable r, String referentiel, String critere) { |
// TODO Auto-generated method stub |
} |
private void addToCache(String query, ListeReferentielCommune result) { |
cache.put(query.toLowerCase(),result); |
} |
private ListeReferentielCommune getFromCache (String query) { |
return cache.get(query.toLowerCase()); |
} |
private ListeReferentielCommune getFromCache (String query) { |
return cache.get(query.toLowerCase()); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/dao/ObservationAsynchroneDAO.java |
---|
65,7 → 65,9 |
+"&latitude="+URL.encodeComponent(""+obs.getLatitude()) |
+"&longitude="+URL.encodeComponent(""+obs.getLongitude()) |
+"&abondance="+URL.encodeComponent(""+obs.getAbondance()) |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()); |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()) |
+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie()) |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
115,7 → 117,9 |
+"&latitude="+URL.encodeComponent(""+obs.getLatitude()) |
+"&longitude="+URL.encodeComponent(""+obs.getLongitude()) |
+"&abondance="+URL.encodeComponent(""+obs.getAbondance()) |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()); |
+"&certitude="+URL.encodeComponent(""+obs.getCertitude()) |
+"&phenologie="+URL.encodeComponent(""+obs.getPhenologie()) |
+"&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/dao/ListeObservationAsynchroneDAO.java |
---|
187,6 → 187,14 |
if(obs.getCertitude() != null) { |
postData += "&certitude="+URL.encodeComponent(""+obs.getCertitude()); |
} |
if(obs.getPhenologie() != null) { |
postData += "&phenologie="+URL.encodeComponent(""+obs.getPhenologie()); |
} |
if(obs.getReferentielTaxo() != null) { |
postData += "&nom_referentiel="+URL.encodeComponent(""+obs.getReferentielTaxo()); |
} |
try { |
rb.sendRequest(postData, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/objets/Observation.java |
---|
1,5 → 1,8 |
package org.tela_botanica.client.modeles.objets; |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.util.Util; |
import com.google.gwt.json.client.JSONObject; |
27,8 → 30,13 |
private String latitude=null; |
private String longitude=null; |
private String referentielGeo=null; |
private String referentielTaxo=null; |
private String abondance=null; |
private String certitude=null; |
private String phenologie=null; |
private String altitude=null; |
private Map<String, String> champsEtendus=null; |
public Observation() { |
} |
106,6 → 114,8 |
this.motsCles = Util.getValeurJsonOuVide(observation,"mots_cles"); |
this.abondance = Util.getValeurJsonOuVide(observation,"abondance"); |
this.certitude = Util.getValeurJsonOuVide(observation,"certitude"); |
this.phenologie = Util.getValeurJsonOuVide(observation,"phenologie"); |
this.setReferentielTaxo(Util.getValeurJsonOuVide(observation,"nom_referentiel")); |
} |
/** |
287,4 → 297,60 |
public void setCertitude(String certitude) { |
this.certitude = certitude; |
} |
public String getReferentielTaxo() { |
return referentielTaxo; |
} |
public String getCodeCourtReferentielTaxo() { |
String codeRef = ""; |
if(!getReferentielTaxo().equals("") && getReferentielTaxo().length() >= 5) { |
codeRef = referentielTaxo.substring(0, 5); |
} |
return codeRef; |
} |
public void setReferentielTaxo(String referentielTaxo) { |
this.referentielTaxo = referentielTaxo; |
} |
public String getPhenologie() { |
return phenologie; |
} |
public void setPhenologie(String phenologie) { |
this.phenologie = phenologie; |
} |
public String getAltitude() { |
return altitude; |
} |
public void setAltitude(String altitude) { |
this.altitude = altitude; |
} |
public void setValeurChampEtendu(String cle, String valeur) { |
champsEtendus.put(cle, valeur); |
} |
public String getValeurChampEtendu(String cle) { |
String valeur = ""; |
if(champsEtendus.containsKey(cle)) { |
valeur = champsEtendus.get(cle); |
} |
return valeur; |
} |
public Map<String, String> getChampsEtendus() { |
return champsEtendus; |
} |
public void setChampsEtendus(Map<String, String> champsEtendus) { |
this.champsEtendus = champsEtendus; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/objets/Configuration.java |
---|
1,6 → 1,12 |
package org.tela_botanica.client.modeles.objets; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import com.google.gwt.i18n.client.Dictionary; |
import com.google.gwt.user.client.Window; |
/** |
* Classe chargeant certains paramètres de configuration à partir d'un fichier |
49,6 → 55,8 |
private static String imageRedirectUrl; |
private static String tailleMaxUpload; |
private static List<InfosReferentielNom> referentielsDispos; |
/** |
* Constructeur sans argument |
82,12 → 90,6 |
lienEfloreBaseUrl = Dictionary.getDictionary("configuration").get( |
"lienEfloreBaseUrl"); |
refTax = Dictionary.getDictionary("configuration").get( |
"refTax"); |
refTaxVersion = Dictionary.getDictionary("configuration").get( |
"refTaxVersion"); |
formatOriginal = Dictionary.getDictionary("configuration").get( |
"formatOriginal"); |
109,8 → 111,19 |
tailleMaxUpload = Dictionary.getDictionary("configuration").get( |
"tailleMaxUpload"); |
//licence = Dictionary.getDictionary("configuration").get("licence"); |
referentielsDispos = parserReferentielsDispos(Dictionary.getDictionary("configuration").get( |
"referentielsDispos")); |
} |
private List<InfosReferentielNom> parserReferentielsDispos(String chaineListeReferentiels) { |
String[] tabReferentiels = chaineListeReferentiels.split(";"); |
List<InfosReferentielNom> referentiels = new ArrayList<InfosReferentielNom>(tabReferentiels.length); |
for (int i = 0; i < tabReferentiels.length; i++) { |
InfosReferentielNom infoRef = new InfosReferentielNom(tabReferentiels[i]); |
referentiels.add(infoRef); |
} |
return referentiels; |
} |
/** |
* Accesseur pour l'url de base du serveur jrest |
179,14 → 192,6 |
return lienEfloreBaseUrl; |
} |
public static String getRefTax() { |
return refTax; |
} |
public static String getRefTaxVersion() { |
return refTaxVersion; |
} |
public static String getLicence() { |
return licence; |
} |
218,4 → 223,8 |
public static String getTailleMaxUpload() { |
return tailleMaxUpload; |
} |
public static List<InfosReferentielNom> getReferentielsDispos() { |
return referentielsDispos; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/objets/InfosReferentielNom.java |
---|
New file |
0,0 → 1,64 |
package org.tela_botanica.client.modeles.objets; |
import com.google.gwt.user.client.Window; |
public class InfosReferentielNom { |
private String code = null; |
private String version = null; |
private String versionCourte = null; |
private String intitule = null; |
public InfosReferentielNom(String infosReferentiel) { |
String[] codeCompletIntitule = infosReferentiel.split(","); |
intitule = codeCompletIntitule[1]; |
String[] codeVersion = codeCompletIntitule[0].split(":"); |
code = codeVersion[0]; |
version = codeVersion[1]; |
versionCourte = formaterVersionCourte(version); |
} |
public InfosReferentielNom(String code, String version, String intitule) { |
super(); |
this.code = code; |
this.version = version; |
this.intitule = intitule; |
this.versionCourte = formaterVersionCourte(version); |
} |
private String formaterVersionCourte(String version) { |
return version.replaceAll("v",""); |
} |
public String getCodeVersionComplet() { |
return code+":"+version; |
} |
public String getCode() { |
return code; |
} |
public void setCode(String code) { |
this.code = code; |
} |
public String getVersion() { |
return version; |
} |
public void setVersion(String version) { |
this.version = version; |
} |
public String getIntitule() { |
return intitule; |
} |
public void setIntitule(String intitule) { |
this.intitule = intitule; |
} |
public String getVersionCourte() { |
return versionCourte; |
} |
public void setVersionCourte(String versionCourte) { |
this.versionCourte = versionCourte; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/objets/ReferentielNom.java |
---|
1,15 → 1,11 |
package org.tela_botanica.client.modeles.objets; |
/** |
* |
* Classe representant un element du referentiel de nom |
* |
*/ |
public class ReferentielNom { |
22,7 → 18,6 |
} |
/** |
* @param nom |
* @param numeroNom |
29,14 → 24,10 |
* @param statut |
* |
*/ |
public ReferentielNom(String nom, String numeroNom, String statut) { |
this.nom = nom; |
this.numeroNom = numeroNom; |
this.statut = statut; |
} |
44,7 → 35,6 |
return nom; |
} |
public String getNumeroNom() { |
return numeroNom; |
} |
/trunk/src/org/tela_botanica/client/modeles/objets/Ontologies.java |
---|
1,6 → 1,8 |
package org.tela_botanica.client.modeles.objets; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import com.gwtext.client.data.SimpleStore; |
import com.gwtext.client.data.Store; |
7,7 → 9,10 |
public class Ontologies { |
//TODO: extraire toutes ces valeurs dans des fichiers de configuration |
// ou bien via l'appel d'un web service spécialisé. |
private static HashMap<String, String> valeursCertitude = null; |
private static List<InfosReferentielNom> listeReferentielsNoms = null; |
public static Store getValeursCertitude() { |
Object[][] valeurs = {{"Certaine","certain"}, |
20,15 → 25,30 |
} |
public static Store getValeursAbondance() { |
Object[][] valeurs = {{"i : un seul individu","i"}, |
{"r : rare (quelques pieds)","r"}, |
{"+ : recouvrement R < 1%","+"}, |
{"1 : 1% < R < 5%","1"}, |
{"2 : 5% < R < 25%","2"}, |
{"3 : 25% < R < 50%","3"}, |
{"4 : 50% < R < 75%","4"}, |
{"5 : recouvrement R > 75%","5"} |
}; |
Object[][] valeurs = { |
{"5 : recouvrement R > 75%","5"}, |
{"4 : 50% < R < 75%","4"}, |
{"3 : 25% < R < 50%","3"}, |
{"2 : 5% < R < 25%","2"}, |
{"1 : 1% < R < 5%","1"}, |
{"+ : recouvrement R < 1%","+"}, |
{"r : rare (quelques pieds)","r"}, |
{"i : un seul individu","i"}, |
{"1-5 individus","1-5"}, |
{"5-10 individus","5-10"}, |
{"10-50 individus","10-50"}, |
{"50-100 individus","50-100"}, |
{"100-500 individus","100-500"}, |
{">500 individus",">500"}, |
{"E : exceptionnel","E"}, |
{"RR : très rare","RR"}, |
{"R : rare","R"}, |
{"AR : assez rare","E"}, |
{"PC : peu commun","PC"}, |
{"AC : assez commun","AC"}, |
{"C : commun","C"}, |
{"CC : très commun","C"} |
}; |
SimpleStore storeAbondance = new SimpleStore(new String[] {"label","valeur"},valeurs); |
storeAbondance.load(); |
return storeAbondance; |
46,4 → 66,61 |
return valeur == null ? cle : valeur; |
} |
public static Store getValeursReferentiel() { |
List<InfosReferentielNom> listeReferentiels = Configuration.getReferentielsDispos(); |
Object[][] valeurs = new Object[listeReferentiels.size()][2]; |
int i = 0; |
for (Iterator<InfosReferentielNom> iterator = listeReferentiels.iterator(); iterator |
.hasNext();) { |
InfosReferentielNom infosReferentielNom = iterator.next(); |
String[] valeur = {infosReferentielNom.getIntitule(), infosReferentielNom.getCode()}; |
valeurs[i] = valeur; |
i++; |
} |
SimpleStore storeReferentiels = new SimpleStore(new String[] {"label","valeur"},valeurs); |
storeReferentiels.load(); |
return storeReferentiels; |
} |
public static InfosReferentielNom getInfosReferentielNomParCode(String code) { |
InfosReferentielNom infos = null; |
List<InfosReferentielNom> listeReferentiels = Configuration.getReferentielsDispos(); |
for (Iterator<InfosReferentielNom> iterator = listeReferentiels.iterator(); iterator |
.hasNext();) { |
InfosReferentielNom infosReferentielNom = iterator.next(); |
if(infosReferentielNom.getCode().equals(code)) { |
infos = infosReferentielNom; |
break; |
} |
} |
return infos; |
} |
public static Store getValeursPhenologie() { |
Object[][] valeurs = { |
{"00-09: germination, développement des bourgeons", "00-09"}, |
{"10-19: développement des feuilles", "10-19"}, |
{"11: par ex, environ 10% des feuilles épanouies", "11"}, |
{"15: par ex, environ 50% des feuilles épanouies", "15"}, |
{"20-29: formation de pousses latérales, tallage", "20-29"}, |
{"30-39: développement des tiges, croissance des rosettes", "30-39"}, |
{"40-49: développement des organes de propagation végétative", "40-49"}, |
{"50-59: apparition de l'inflorescence, épiaison", "50-59"}, |
{"60-69: floraison", "60-69"}, |
{"61 : par ex, environ 10% des fleurs épanouies", "61"}, |
{"65 : par ex, environ 50% des fleurs épanouies", "65"}, |
{"70-79: fructification", "70-79"}, |
{"80-89: maturité des fruits et des graines", "80-89"}, |
{"85: par ex, 50% des fruits matures", "85"}, |
{"90-99: sénescence et dormance", "90-99"}, |
{"91: par ex, environ 10% des feuilles jaunes", "91"}, |
{"95: par ex, environ 50% des feuilles jaunes", "95"} |
}; |
SimpleStore storeAbondance = new SimpleStore(new String[] {"label","valeur"},valeurs); |
storeAbondance.load(); |
return storeAbondance; |
} |
} |
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java |
---|
5,7 → 5,9 |
// TODO : systematiser les onQuelquechose, appelle depuis les vues |
import org.tela_botanica.client.CarnetEnLigneMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.objets.Configuration; |
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation; |
import org.tela_botanica.client.modeles.objets.InfosReferentielNom; |
import org.tela_botanica.client.modeles.objets.ListeObservation; |
import org.tela_botanica.client.modeles.objets.Observation; |
import org.tela_botanica.client.modeles.objets.Utilisateur; |
153,6 → 155,8 |
private com.gwtext.client.widgets.Window fenetreCarto; |
public boolean changementTabProg = false; |
private InfosReferentielNom refTaxSelectionne = null; |
private Panel centre; |
163,11 → 167,12 |
private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur ) |
{ |
this.carnetEnLigneMediateur=carnetEnLigneMediateur; |
this.carnetEnLigneMediateur=carnetEnLigneMediateur; |
// on crée un modèle |
observationModele = ObservationModele.Instance(this); |
// initialisation du référentiel par défaut |
setRefTaxSelectionne(Configuration.getReferentielsDispos().get(0)); |
listeObservation = new ListeObservationVue(this); |
listeObservation.setTitle("Observations"); |
273,7 → 278,7 |
String[] selectionListe = listeObservation.getIdSelectionnees(); |
if(selectionListe.length > 0) { |
Observation obs = listeObservation.getCacheListeObservation().get(selectionListe[0]); |
obtenirImageInformationExternes(obs.getNumeroNomenclaturalSaisi()); |
obtenirImageInformationExternes(obs.getCodeCourtReferentielTaxo(), obs.getNumeroNomenclaturalSaisi()); |
} |
CarnetEnLigneMediateur.fireResize(); |
} |
329,7 → 334,6 |
panneauPrincipalObservation.add(filtres,regionOuest); |
panneauPrincipalObservation.add(centre,regionCentre); |
} |
/** |
440,9 → 444,9 |
// Affichage de la carte de repartition correspondante |
String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalRetenu() ; |
if(numeroNomenclaturalSaisiObservation != null && !numeroNomenclaturalSaisiObservation.isEmpty()) { |
observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirImageInformationRepartition(informationRepartitionVue,obs.getCodeCourtReferentielTaxo(), numeroNomenclaturalSaisiObservation) ; |
liExtVue.rafraichir(numeroNomenclaturalSaisiObservation, false); |
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirImageGenerique(imageGeneriqueVue,obs.getCodeCourtReferentielTaxo(), numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirLiaisonImage(mvz, obs.getId()) ; |
} |
450,7 → 454,7 |
filtres.getArbreMotsClesObservationVue().rafraichir(obs.getMotsCles(), false); |
} |
public void obtenirImageInformationExternes(String numeroNomenclaturalSaisiObservation) { |
public void obtenirImageInformationExternes(String referentielTaxo, String numeroNomenclaturalSaisiObservation) { |
if(details.isVisible()) { |
if(GWT.isScript()) { |
457,8 → 461,8 |
masquerChargementInfosObservations() ; |
} |
liExtVue.rafraichir(numeroNomenclaturalSaisiObservation, false); |
observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirImageInformationRepartition(informationRepartitionVue, referentielTaxo, numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirImageGenerique(imageGeneriqueVue, referentielTaxo, numeroNomenclaturalSaisiObservation) ; |
} |
} |
472,12 → 476,7 |
// ACCES au Modèle |
// C du CRUD |
/** |
* TODO : afficher un message du type "observation ajouté". |
* Lance la creation d'une observation |
484,7 → 483,6 |
* @param obs : l'observation saisie |
*/ |
public void ajouterObservation(Observation obs) { |
// On rafraichit la liste d'observation |
observationModele.ajouterObservation(listeObservation, obs) ; |
filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ; |
492,10 → 490,7 |
} |
// R du CRUD |
/** |
* Demande au modele le nombre d'Observation à afficher |
* TODO : grouper cette demande avec la demande d'affichage de liste ? |
637,9 → 632,9 |
* @param critere : les criteres de selection |
*/ |
public void obtenirListeReferentielNom(Rafraichissable r, String critere) { |
public void obtenirListeReferentielNom(Rafraichissable r,String referentiel, String critere) { |
observationModele.obtenirListeReferentielNom(r,critere) ; |
observationModele.obtenirListeReferentielNom(r, referentiel, critere) ; |
} |
// Etat du syteme |
1173,7 → 1168,6 |
} |
private void razFiltres() { |
filtres.getArbreDateObservationFiltreVue().raz() ; |
filtres.getArbreEntiteGeographiqueObservationFiltreVue().raz() ; |
filtres.getArbreMotsClesObservationVue().raz(); |
1187,7 → 1181,6 |
} |
public Component getListeObservation() { |
return listeObservation; |
} |
1201,9 → 1194,7 |
if (formImportObs==null) { // lazy inst. |
formImportObs = new FormulaireImportObservationVue(this); |
} |
formImportObs.afficher(); |
formImportObs.afficher(); |
} |
public void setImporterObservationsAnonymes(boolean importerObservations) { |
1259,4 → 1250,16 |
fenetreCarto.hide(); |
} |
} |
public InfosReferentielNom getRefTaxSelectionne() { |
return refTaxSelectionne; |
} |
public void setRefTaxSelectionne(int index) { |
refTaxSelectionne = Configuration.getReferentielsDispos().get(index); |
} |
public void setRefTaxSelectionne(InfosReferentielNom refTax) { |
refTaxSelectionne = refTax; |
} |
} |
/trunk/src/org/tela_botanica/client/observation/ObservationModele.java |
---|
197,12 → 197,12 |
* @param r |
* @param critere |
*/ |
public void obtenirListeReferentielNom(Rafraichissable r, String critere) { |
public void obtenirListeReferentielNom(Rafraichissable r, String referentiel, String critere) { |
if (nomDAO==null) { |
nomDAO=new ListeReferentielNomAsynchroneDAO(this); |
} |
nomDAO.obtenirListeDonnees(r, critere); |
nomDAO.obtenirListeDonnees(r, referentiel, critere); |
} |
274,10 → 274,10 |
*/ |
public void obtenirImageInformationRepartition( Rafraichissable r,String numeroNomenclaturalSaisiObservation) { |
public void obtenirImageInformationRepartition(Rafraichissable r, String referentielTaxo, String numeroNomenclaturalSaisiObservation) { |
ImageInformationRepartitionAsynchroneDAO repDAO=new ImageInformationRepartitionAsynchroneDAO(this); |
repDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation); |
ImageInformationRepartitionAsynchroneDAO repDAO= new ImageInformationRepartitionAsynchroneDAO(this); |
repDAO.obtenirURLImage(r, referentielTaxo, numeroNomenclaturalSaisiObservation); |
} |
288,10 → 288,10 |
* @param numeroNomenclaturalSaisiObservation |
*/ |
public void obtenirImageGenerique( Rafraichissable r,String numeroNomenclaturalSaisiObservation) { |
public void obtenirImageGenerique( Rafraichissable r, String referentielTaxo, String numeroNomenclaturalSaisiObservation) { |
ImageGeneriqueVueAsynchroneDAO imgDAO=new ImageGeneriqueVueAsynchroneDAO(this); |
imgDAO.obtenirURLImage(r, numeroNomenclaturalSaisiObservation); |
ImageGeneriqueVueAsynchroneDAO imgDAO= new ImageGeneriqueVueAsynchroneDAO(this); |
imgDAO.obtenirURLImage(r, referentielTaxo, numeroNomenclaturalSaisiObservation); |
} |
/trunk/src/org/tela_botanica/client/util/Util.java |
---|
1,7 → 1,12 |
package org.tela_botanica.client.util; |
import java.util.HashMap; |
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.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
14,6 → 19,18 |
return jsonNonNull(jo, index) ? ((JSONString)jo.get(index)).stringValue() : ""; |
} |
public static Map<String, String> getMapValeursOuVide(JSONArray 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()); |
} |
} |
return mapValeurs; |
} |
public static boolean jsonNonNull(JSONObject jo, String index) { |
return (jo != null && |
jo.get(index) != null && |
74,6 → 91,52 |
return lieuModele; |
} |
public static String obtenirDepartementAPartirChaineCommune(String departement, String commune) { |
String dep = ""; |
if(departement == null) { |
departement = ""; |
} |
if(departement.equals("000null") || departement.equals("")) { |
String[] depCom = commune.split(" "); |
if(depCom.length > 1) { |
dep = depCom[1].replace('(', ' '); |
} else { |
dep = ""; |
} |
} else { |
dep = departement; |
} |
dep = dep.replace(')', ' '); |
dep = dep.trim(); |
dep = dep.replace('\\',' '); |
dep = dep.trim(); |
try |
{ |
int nDep = Integer.parseInt(dep); |
if(nDep > 0 && nDep < 110) { |
departement = dep ; |
} |
if(departement.length() == 4) { |
departement = "0"+departement; |
} |
departement = departement.substring(0,2); |
} |
catch(NumberFormatException e) |
{ |
departement = "" ; |
} |
return departement; |
} |
public static String supprimerNumDepartementChaineLocalite(String chaineLocaliteComplete) { |
return chaineLocaliteComplete.replaceAll(" \\([0-9]*\\)", ""); |
} |
/trunk/src/org/tela_botanica/client/vues/observation/indicateurs/LienExterneVue.java |
---|
27,8 → 27,8 |
public LienExterneVue(ObservationMediateur om) { |
oMediateur = om; |
refTax = Configuration.getRefTax(); |
refTaxVersion = Configuration.getRefTaxVersion(); |
refTax = om.getRefTaxSelectionne().getCode(); |
refTaxVersion = om.getRefTaxSelectionne().getVersionCourte(); |
efloreBaseUrl = Configuration.getLienEfloreBaseUrl(); |
titreLien.setVisible(false); |
/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java |
---|
63,57 → 63,28 |
*/ |
private ObservationMediateur observationMediateur = null; |
/** |
* Config de colonne |
*/ |
private ColumnConfig etatObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig referentielTaxoObservation; |
private ColumnConfig nomSaisiObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig nomRetenuObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig lieuObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig dateObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig ordreObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig abondanceObservation; |
/** |
* Config de colonne |
*/ |
private ColumnConfig certitudeObservation; |
/** |
* Modele de colonnes |
*/ |
private ColumnConfig abondanceObservation; |
private ColumnConfig certitudeObservation; |
private ColumnModel modeleColonnes; |
/** |
* Store qui contient les données à afficher |
*/ |
private Store st = null; |
/** |
* Barre de pagination |
*/ |
private BarrePaginationVue bt = null ; |
/** |
* Numéro de page en cours |
*/ |
141,6 → 112,8 |
private boolean tailleInitialisee = false ; |
private ColumnConfig phenologieObservation; |
/** |
* Constructeur sans arguments (privé car ne doit pas être utilisé) |
161,9 → 134,7 |
setId("x-list-obs"); |
setHeader(true); |
setHeader(true); |
// on place la barre de pagination |
bt = new BarrePaginationVue(this); |
bt.setLabelElement("Observations"); |
258,18 → 229,12 |
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
if(value == null || value.equals("null") || value.equals("000null") || value.equals("0000-00-00 00:00:00")) { |
return "" ; |
} |
else |
{ |
String valeur = ""; |
if(value != null && !value.equals("null") && !value.equals("000null") && !value.equals("0000-00-00 00:00:00")) { |
valeur = value.toString() ; |
} |
return value.toString() ; |
return valeur; |
} |
} ; |
Renderer dateRend = new Renderer() { |
313,9 → 278,10 |
} |
}); |
nomSaisiObservation = new ColumnConfig("Nom saisi", "nomSaisi_observation", 200, true, colRend); |
nomRetenuObservation = new ColumnConfig("Nom retenu", "nomRetenu_observation", 200, true, colRend); |
lieuObservation = new ColumnConfig("Lieu", "lieu_observation", 200, true, colRend); |
referentielTaxoObservation = new ColumnConfig("Référentiel", "referentiel_taxo_observation", 15, true, colRend); |
nomSaisiObservation = new ColumnConfig("Nom saisi", "nomSaisi_observation", 130, true, colRend); |
nomRetenuObservation = new ColumnConfig("Nom retenu", "nomRetenu_observation", 130, true, colRend); |
lieuObservation = new ColumnConfig("Lieu", "lieu_observation", 130, true, colRend); |
dateObservation = new ColumnConfig("Date", "date_observation", 70, true, dateRend); |
abondanceObservation = new ColumnConfig("Abondance", "abondance", 50, true, colRend); |
certitudeObservation = new ColumnConfig("Identification", "certitude", 50, true, new Renderer() { |
326,8 → 292,9 |
} |
}); |
ordreObservation = new ColumnConfig("Ordre", "ordre_observation", 50, true, colRend); |
ColumnConfig[] cm = {etatObservation, nomSaisiObservation, certitudeObservation, nomRetenuObservation, abondanceObservation, lieuObservation, dateObservation, ordreObservation}; |
phenologieObservation = new ColumnConfig("Phénologie", "phenologie", 40, true, colRend); |
ordreObservation = new ColumnConfig("Ordre", "ordre_observation", 70, true, colRend); |
ColumnConfig[] cm = {etatObservation, referentielTaxoObservation, nomSaisiObservation, certitudeObservation, nomRetenuObservation, abondanceObservation, phenologieObservation, lieuObservation, dateObservation, ordreObservation}; |
return cm; |
} |
575,7 → 542,7 |
if(nouvelleDonnees instanceof ListeObservation) |
{ |
ListeObservation data = (ListeObservation) nouvelleDonnees ; |
Object[][] observationData = new Object[data.size()][9]; |
Object[][] observationData = new Object[data.size()][11]; |
int i = 0 ; |
if(data.size() == 0) |
590,14 → 557,16 |
Observation obs=data.get(it.next()); |
observationData[i][0] = obs.getTransmis(); |
observationData[i][1] = obs.getNomSaisi(); |
observationData[i][2] = obs.getCertitude(); |
observationData[i][3] = obs.getNomRetenu(); |
observationData[i][4] = obs.getAbondance(); |
observationData[i][5] = Util.formaterLieu(obs, modeleLieu); |
observationData[i][6] = obs.getDate(); |
observationData[i][7] = obs.getNumeroOrdre(); |
observationData[i][8] = obs.getNumeroNomenclaturalSaisi(); |
observationData[i][1] = obs.getCodeCourtReferentielTaxo(); |
observationData[i][2] = obs.getNomSaisi(); |
observationData[i][3] = obs.getCertitude(); |
observationData[i][4] = obs.getNomRetenu(); |
observationData[i][5] = obs.getAbondance(); |
observationData[i][6] = obs.getPhenologie(); |
observationData[i][7] = Util.formaterLieu(obs, modeleLieu); |
observationData[i][8] = obs.getDate(); |
observationData[i][9] = obs.getNumeroOrdre(); |
observationData[i][10] = obs.getNumeroNomenclaturalSaisi(); |
i++ ; |
} |
634,8 → 603,12 |
// et on notifie de le mediateur du changement des valeurs |
changerPageMaxEtCourante(pageMax,pageEncours,taillePage,pages[0]) ; |
masquerChargement(); |
observationMediateur.obtenirListeObservation(this); |
if(nbElements > 0) { |
masquerChargement(); |
observationMediateur.obtenirListeObservation(this); |
} else { |
this.rafraichir(new ListeObservation(0), false); |
} |
} |
677,10 → 650,12 |
private FieldDef[] getDefinitionChamps() { |
// creation du store qui les contient |
FieldDef defEtatObservation = new StringFieldDef("etat_observation"); |
FieldDef defRefTaxObservation = new StringFieldDef("referentiel_taxo_observation"); |
FieldDef defNomSaisiObservation = new StringFieldDef("nomSaisi_observation"); |
FieldDef defCertitudeObservation = new StringFieldDef("certitude"); |
FieldDef defNomRetenuObservation = new StringFieldDef("nomRetenu_observation"); |
FieldDef defAbondanceObservation = new StringFieldDef("abondance"); |
FieldDef defPhenologieObservation = new StringFieldDef("phenologie"); |
FieldDef defLieuObservation = new StringFieldDef("lieu_observation"); |
FieldDef defDateObservation = new StringFieldDef("date_observation"); |
FieldDef defOrdreObservation = new IntegerFieldDef("ordre_observation"); |
688,8 → 663,8 |
// Non affiches : |
FieldDef defNumeroNomenclaturalSaisiObservation = new StringFieldDef("numeroNomenclaturalSaisi_observation"); |
FieldDef[] defTab = { defEtatObservation, defNomSaisiObservation, defCertitudeObservation, defNomRetenuObservation, defAbondanceObservation, |
defLieuObservation, defDateObservation, defOrdreObservation, defNumeroNomenclaturalSaisiObservation }; |
FieldDef[] defTab = {defEtatObservation, defRefTaxObservation,defNomSaisiObservation, defCertitudeObservation, defNomRetenuObservation, defAbondanceObservation, |
defPhenologieObservation, defLieuObservation, defDateObservation, defOrdreObservation, defNumeroNomenclaturalSaisiObservation }; |
return defTab; |
} |
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java |
---|
92,13 → 92,13 |
private String numeroNom = null; |
private String numeroOrdre = null; |
private String codeInseeCommune = null; |
private String referentielTaxo = null; |
private String referentielGeo = null; |
// Pour remise a zero partielle lors d'une validation |
private enum Champs { |
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT, LATITUDE, LONGITUDE, ABONDANCE, CERTITUDE; |
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT, LATITUDE, LONGITUDE, ABONDANCE, CERTITUDE, REFERENTIELTAXO, PHENOLOGIE; |
@Override |
public String toString() { |
136,9 → 136,15 |
case CERTITUDE: |
return "identification"; |
case REFERENTIELTAXO: |
return "referentiel"; |
case PHENOLOGIE: |
return "phenologie"; |
case TOUT: |
return "date, commune, lieu dit, station, milieu, espèce, commentaire, latitude, longitude, abondance, identification"; |
return "date, commune, lieu dit, station, milieu, espèce, commentaire, latitude, longitude, abondance, identification, referentiel, phenologie"; |
} |
return TOUT.toString(); |
} |
152,12 → 158,13 |
private boolean selectionEspece=false; |
private boolean selectionAbondance = false; |
private boolean selectionCertitude = false; |
private boolean selectionPhenologie = false; |
private boolean modification = false ; |
private Toolbar bt = null ; |
private final String VALEURS_MULTIPLES = "(Valeurs multiples)"; |
private final String modeleMessageModif = "commune:lieu-dit:station:milieu:latitude:longitude:date:espece:commentaire:abondance:identification"; |
private final String modeleMessageModif = "commune:lieu-dit:station:milieu:latitude:longitude:date:espece:commentaire:abondance:identification:referentiel:phenologie"; |
private boolean communeModifiee = false; |
private boolean lieuDitModifie = false; |
private boolean stationModifiee = false; |
167,6 → 174,8 |
private boolean commModifie = false; |
private boolean abondanceModifiee = false; |
private boolean certitudeModifiee = false; |
private boolean referentielTaxoModifie = false; |
private boolean phenologieModifiee = false;; |
private final int KEY_ALT = 18; |
private final int KEY_BACKSPACE = 8; |
239,6 → 248,10 |
private ComboBox selecteurCertitude = null; |
private ComboBox selecteurReferentielTaxo = null; |
private ComboBox selecteurStadePheno = null; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
253,12 → 266,12 |
* @param im |
*/ |
public FormulaireSaisieObservationVue(ObservationMediateur obs) |
{ |
{ |
super("Saisie"); |
// on associe le médiateur |
observationMediateur = obs ; |
referentielTaxo = obs.getRefTaxSelectionne().getCode(); |
panneauFormulaire = new FormPanel(Position.RIGHT); |
panneauFormulaire.setBorder(false); |
382,57 → 395,7 |
@Override |
public void onAfterLayout(Container c) { |
ExtElement lienCoord = Ext.get("lien_coord"); |
lienCoord.removeAllListeners(); |
lienCoord.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
coordPanel.setVisible(!coordPanel.isVisible()); |
if(Ext.isIE()) { |
latitude.focus(); |
} |
CarnetEnLigneMediateur.fireResize(); |
} |
}) ; |
ExtElement lienCartoCoord = Ext.get("lien_carto_coord"); |
lienCartoCoord.removeAllListeners(); |
lienCartoCoord.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
obtenirInformationCoord(); |
} |
}) ; |
ExtElement lienCarto = Ext.get("lien_carto"); |
lienCarto.removeAllListeners(); |
lienCarto.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
if(commune.getValue() != null && !commune.getValue().equals("") && !getDepartement().equals("")) { |
obtenirInformationCommune(); |
longlatAjoutee = true; |
} else { |
Window.alert("Veuillez renseigner une commune et un numéro de département sous la forme : Commune (departement)"); |
} |
} |
}); |
if(!Ext.isIE() && Window.getClientWidth() < 1200) { |
int largeurN = (int)largeur; |
latitude.setWidth(largeurN+"px"); |
longitude.setWidth(largeurN+"px"); |
lienSelectionCommune.setWidth(largeurN+"px"); |
} |
surPremierAffichageCoordPanel(largeur); |
} |
}); |
455,20 → 418,30 |
//date.setTabIndex(5); |
panneauPremierColonne.add(date, new AnchorLayoutData("55%")); |
// Selection d'un référentiel par défaut (le premier spécifié dans la config) |
referentielTaxo = Configuration.getReferentielsDispos().get(0).getCode(); |
selecteurReferentielTaxo = new ComboBox(); |
selecteurReferentielTaxo.setCls("champ-separation"); |
selecteurReferentielTaxo.setLabel("Référentiel"); |
selecteurReferentielTaxo.setStore(Ontologies.getValeursReferentiel()); |
selecteurReferentielTaxo.setValue(referentielTaxo); |
selecteurReferentielTaxo.setDisplayField("label") ; |
selecteurReferentielTaxo.setValueField("valeur"); |
selecteurReferentielTaxo.setEditable(false); |
selecteurReferentielTaxo.setHideTrigger(false); |
selecteurReferentielTaxo.setForceSelection(true); |
espece=new ComboBox("Espèce","nom"); |
final String resultTplEspece = "<div class=\"search-item-espece {indicateurNomRetenu}\">{nom}</div>"; |
espece.setTpl(resultTplEspece); |
espece.setMode(ComboBox.REMOTE); |
// espece.setPageSize(10); // Ne fonctionne pas |
espece.setItemSelector("div.search-item-espece"); |
espece.setTypeAhead(true); |
espece.setLoadingText("Recherche..."); |
espece.setHideTrigger(true); |
//espece.setTabIndex(6); |
Panel panelSeparationPp = new Panel(); |
panelSeparationPp.setHeight(15); |
475,7 → 448,7 |
panelSeparationPp.setBorder(false); |
panneauPremierColonne.add(panelSeparationPp); |
panneauPremierColonne.add(selecteurReferentielTaxo, new AnchorLayoutData("50%")); |
panneauPremierColonne.add(espece, new AnchorLayoutData("95%")); |
selecteurAbondance = new ComboBox(); |
522,11 → 495,10 |
comment.setAllowBlank(true); |
comment.setHeight(50); |
//comment.setTabIndex(7); |
panneauSecondeColonne.add(comment, new AnchorLayoutData("95%") ); |
Panel panelSeparationPs = new Panel(); |
panelSeparationPs.setHeight(15); |
panelSeparationPs.setHeight(39); |
panelSeparationPs.setBorder(false); |
panneauSecondeColonne.add(panelSeparationPs); |
541,6 → 513,16 |
selecteurCertitude.setForceSelection(false); |
panneauSecondeColonne.add(selecteurCertitude, new AnchorLayoutData("50%")); |
selecteurStadePheno = new ComboBox(); |
selecteurStadePheno.setLabel("Phénologie"); |
selecteurStadePheno.setStore(Ontologies.getValeursPhenologie()); |
selecteurStadePheno.setDisplayField("label") ; |
selecteurStadePheno.setValueField("valeur"); |
selecteurStadePheno.setEditable(true); |
selecteurStadePheno.setHideTrigger(false); |
selecteurStadePheno.setForceSelection(false); |
panneauSecondeColonne.add(selecteurStadePheno, new AnchorLayoutData("50%")); |
if (Window.getClientWidth() > Window.getClientHeight() || Window.getClientWidth() < 800) { |
panneauIntermediaire.add(panneauPremierColonne, new ColumnLayoutData(.5)); |
panneauIntermediaire.add(panneauSecondeColonne, new ColumnLayoutData(.5)); |
547,8 → 529,7 |
} |
else { |
panneauIntermediaire.add(panneauPremierColonne); |
panneauIntermediaire.add(panneauSecondeColonne); |
panneauIntermediaire.add(panneauSecondeColonne); |
} |
panneauFormulaire.add(panneauIntermediaire); |
569,8 → 550,7 |
bt.addSpacer() ; |
bt.addText("Mode de saisie ") ; |
bt.addField(selecteurMode) ; |
if (Ext.isIE()) { |
panneauPremierColonne.setButtonAlign(Position.RIGHT); |
panneauPremierColonne.addButton(boutonOK); |
577,15 → 557,12 |
panneauSecondeColonne.setButtonAlign(Position.LEFT); |
panneauPremierColonne.addButton(boutonAnnuler); |
} |
else { |
else { |
panneauFormulaire.addButton(boutonOK); |
panneauFormulaire.addButton(boutonAnnuler); |
} |
selecteurMode.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
593,7 → 570,6 |
comboBox.setValue(record.getAsString("nom_mode")); |
setModification(record.getAsString("mode")) ; |
} |
}); |
this.add(panneauFormulaire) ; |
615,417 → 591,124 |
htmlPanel.doLayout(); |
doLayout(); |
}}); |
} |
}); |
// on ajoute les listeners |
ajouterListeners() ; |
saisieTabindex(); |
} |
private void ajouterListeners() |
{ |
// Listener completion communne |
final Rafraichissable r = this; |
commune.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
commune.setValue(record.getAsString("commune")); |
departement=record.getAsString("departement"); |
codeInseeCommune=record.getAsString("codeInsee"); |
selectionCommune=true; |
commune.collapse(); |
} |
@Override |
public void onExpand(ComboBox comboBox) { |
comboBox.focus(); |
} |
}); |
ListenerConfig listenerConfigCommune=new ListenerConfig(); |
listenerConfigCommune.setDelay(200); |
listenerConfigCommune.setStopPropagation(false); |
listenerConfigCommune.setStopEvent(false); |
commune.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
if (selectionCommune) { |
communeModifiee= true; |
selectionCommune=false; |
} |
else { |
validerSaisie(Champs.COMMUNE); |
// lancer mise a jour |
} |
break; |
default: |
departement=""; |
commune.collapse(); |
obtenirListeReferentielCommune(); |
communeModifiee= true; |
break; |
} |
} |
}, listenerConfigCommune |
); |
date.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
// TODO Auto-generated method stub |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
if(date.getRawValue().equals(VALEURS_MULTIPLES)) { |
date.clearInvalid(); |
} |
case KEY_UP: |
break; |
case KEY_ENTER: |
validerSaisie(Champs.DATE); |
break; |
default: |
dateModifiee = true; |
} |
private void surPremierAffichageCoordPanel(final double largeur) { |
ExtElement lienCoord = Ext.get("lien_coord"); |
lienCoord.removeAllListeners(); |
lienCoord.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
coordPanel.setVisible(!coordPanel.isVisible()); |
if(Ext.isIE()) { |
latitude.focus(); |
} |
}); |
date.addListener(new DatePickerListenerAdapter() { |
@Override |
public void onSelect(DatePicker dataPicker, Date date) { |
dateModifiee = true; |
} |
}); |
ListenerConfig listenerConfigAutocompletion=new ListenerConfig(); |
listenerConfigAutocompletion.setDelay(200); |
listenerConfigAutocompletion.setStopPropagation(false); |
listenerConfigAutocompletion.setStopEvent(false); |
// Listener completion espece |
espece.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
espece.setValue(record.getAsString("nom")); |
numeroNom=record.getAsString("numeroNom"); |
selectionEspece=true; |
observationMediateur.obtenirImageInformationExternes(numeroNom); |
} |
}); |
ListenerConfig listenerConfigEspece=new ListenerConfig(); |
listenerConfigEspece.setDelay(10); |
listenerConfigEspece.setStopPropagation(false); |
listenerConfigEspece.setStopEvent(false); |
CarnetEnLigneMediateur.fireResize(); |
} |
}) ; |
espece.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
if(selectionEspece) { |
especeModifiee = true; |
selectionEspece=false; |
} |
else { |
validerSaisie(Champs.ESPECE); |
} |
break; |
default: |
numeroNom=""; |
obtenirListeReferentielNom(); |
especeModifiee = true; |
break; |
} |
ExtElement lienCartoCoord = Ext.get("lien_carto_coord"); |
lienCartoCoord.removeAllListeners(); |
lienCartoCoord.addListener("click", new EventCallback() { |
@Override |
public void execute(EventObject e) { |
obtenirInformationCoord(); |
} |
}) ; |
ExtElement lienCarto = Ext.get("lien_carto"); |
lienCarto.removeAllListeners(); |
lienCarto.addListener("click", new EventCallback() { |
} |
}, listenerConfigEspece |
); |
comment.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
default: |
commModifie = true; |
} |
} |
}); |
tCoord = new Timer() { |
@Override |
public void run() { |
double[] coord = coordonneesValides(); |
if(!rechercheCommuneEnCours && coord != null && (longModifiee || latModifiee)) { |
rechercheCommuneEnCours = true; |
Ext.get(lienSelectionCommune.getElement()).mask("recherche"); |
observationMediateur.obtenirInformationCoord(r,LatLng.newInstance(coord[0], coord[1])); |
} |
} |
@Override |
public void execute(EventObject e) { |
}; |
latitude.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
validerSaisie(Champs.LATITUDE); |
break; |
default: |
latModifiee = true; |
tCoord.cancel(); |
tCoord.schedule(250); |
} |
if(commune.getValue() != null && !commune.getValue().equals("") && !getDepartement().equals("")) { |
obtenirInformationCommune(); |
longlatAjoutee = true; |
} else { |
Window.alert("Veuillez renseigner une commune et un numéro de département sous la forme : Commune (departement)"); |
} |
}); |
} |
}); |
if(!Ext.isIE() && Window.getClientWidth() < 1200) { |
longitude.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_UP: |
case KEY_TAB: |
break; |
case KEY_ENTER: |
validerSaisie(Champs.LONGITUDE); |
break; |
default: |
longModifiee = true; |
tCoord.cancel(); |
tCoord.schedule(250); |
} |
} |
}); |
int largeurN = (int)largeur; |
selecteurAbondance.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionAbondance=true; |
abondanceModifiee = true; |
} |
}); |
latitude.setWidth(largeurN+"px"); |
longitude.setWidth(largeurN+"px"); |
lienSelectionCommune.setWidth(largeurN+"px"); |
} |
} |
selecteurAbondance.addKeyPressListener(new EventCallback() { |
private void ajouterListeners() |
{ |
// Listener completion communne |
final Rafraichissable r = this; |
ListenerConfig listenerConfigCommune=new ListenerConfig(); |
listenerConfigCommune.setDelay(200); |
listenerConfigCommune.setStopPropagation(false); |
listenerConfigCommune.setStopEvent(false); |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
if(!selectionAbondance) { |
validerSaisie(Champs.ABONDANCE); |
} else { |
selectionAbondance = false; |
} |
break; |
date.addListener(new DatePickerListenerAdapter() { |
default: |
selecteurAbondance.setRawValue(selecteurAbondance.getRawValue()); |
selecteurAbondance.setValue(selecteurAbondance.getRawValue()); |
abondanceModifiee = true; |
selectionAbondance = false; |
break; |
} |
} |
}); |
@Override |
public void onSelect(DatePicker dataPicker, Date date) { |
dateModifiee = true; |
} |
}); |
ListenerConfig listenerConfigAutocompletion=new ListenerConfig(); |
listenerConfigAutocompletion.setDelay(200); |
listenerConfigAutocompletion.setStopPropagation(false); |
listenerConfigAutocompletion.setStopEvent(false); |
ListenerConfig listenerConfigEspece=new ListenerConfig(); |
listenerConfigEspece.setDelay(10); |
listenerConfigEspece.setStopPropagation(false); |
listenerConfigEspece.setStopEvent(false); |
selecteurCertitude.addListener(new ComboBoxListenerAdapter() { |
tCoord = new Timer() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionCertitude=true; |
certitudeModifiee = true; |
} |
}); |
@Override |
public void run() { |
double[] coord = coordonneesValides(); |
if(!rechercheCommuneEnCours && coord != null && (longModifiee || latModifiee)) { |
rechercheCommuneEnCours = true; |
Ext.get(lienSelectionCommune.getElement()).mask("recherche"); |
observationMediateur.obtenirInformationCoord(r,LatLng.newInstance(coord[0], coord[1])); |
} |
} |
selecteurCertitude.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
if(!selectionCertitude) { |
validerSaisie(Champs.CERTITUDE); |
} else { |
selectionCertitude = false; |
} |
break; |
default: |
selecteurCertitude.setRawValue(selecteurCertitude.getRawValue()); |
selecteurCertitude.setValue(selecteurCertitude.getRawValue()); |
certitudeModifiee = true; |
selectionCertitude = false; |
break; |
} |
} |
}); |
}; |
ajouterListenerChampEvenementsClavier(commune, listenerConfigCommune); |
ajouterListenerChampEvenementsClavier(date); |
ajouterListenerChampEvenementsClavier(selecteurReferentielTaxo); |
ajouterListenerChampEvenementsClavier(espece, listenerConfigEspece); |
ajouterListenerChampEvenementsClavier(comment); |
ajouterListenerChampEvenementsClavier(latitude); |
ajouterListenerChampEvenementsClavier(longitude); |
ajouterListenerChampEvenementsClavier(selecteurAbondance); |
ajouterListenerChampEvenementsClavier(selecteurCertitude); |
ajouterListenerChampEvenementsClavier(selecteurStadePheno); |
ajouterListenerChampsCombobox(); |
boutonOK.addListener(new ButtonListenerAdapter() { |
@Override |
public void onClick(Button button, EventObject e) { |
public void onClick(Button button, EventObject e) { |
if(modification) { |
if(masseModification) { |
modifierObservationEnMasse(null); |
1036,17 → 719,12 |
else { |
ajouterObservation(); |
} |
} |
} |
}); |
boutonAnnuler.addListener(new ButtonListenerAdapter() { |
boutonAnnuler.addListener(new ButtonListenerAdapter() { |
@Override |
public void onClick(Button button, EventObject e) { |
public void onClick(Button button, EventObject e) { |
if(modification) |
{ |
supprimerObservation() ; |
1055,19 → 733,251 |
{ |
raz(); |
} |
} |
} |
}); |
this.addListener(new ContainerListenerAdapter() { |
@Override |
public void onAfterLayout(Container self) { |
commune.focus(); |
} |
}); |
}); |
} |
private void ajouterListenerChampsCombobox() { |
commune.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
commune.setValue(record.getAsString("commune")); |
departement=record.getAsString("departement"); |
codeInseeCommune=record.getAsString("codeInsee"); |
selectionCommune=true; |
commune.collapse(); |
} |
@Override |
public void onExpand(ComboBox comboBox) { |
comboBox.focus(); |
} |
}); |
selecteurReferentielTaxo.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
referentielTaxo = record.getAsString("valeur"); |
observationMediateur.setRefTaxSelectionne(index); |
referentielTaxoModifie = true; |
} |
}); |
espece.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
espece.setValue(record.getAsString("nom")); |
numeroNom=record.getAsString("numeroNom"); |
selectionEspece=true; |
observationMediateur.obtenirImageInformationExternes(referentielTaxo, numeroNom); |
} |
}); |
selecteurAbondance.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionAbondance=true; |
abondanceModifiee = true; |
} |
}); |
selecteurCertitude.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionCertitude=true; |
certitudeModifiee = true; |
} |
}); |
selecteurStadePheno.addListener(new ComboBoxListenerAdapter() { |
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionPhenologie=true; |
phenologieModifiee = true; |
} |
}); |
} |
private void ajouterListenerChampEvenementsClavier(final TextField champ) { |
champ.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
surEvenementClavier(e, champ); |
} |
}); |
} |
private void ajouterListenerChampEvenementsClavier(final TextField champ, final ListenerConfig config) { |
champ.addKeyPressListener(new EventCallback() { |
@Override |
public void execute(EventObject e) { |
surEvenementClavier(e, champ); |
} |
}, config); |
} |
private void surEvenementClavier(EventObject e, TextField champ) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
case KEY_ENTER: |
surEvenementClavierToucheEntree(champ); |
break; |
default: |
gererEvenementClavierDefaut(champ); |
break; |
} |
} |
private void surEvenementClavierToucheEntree(TextField champ) { |
//TODO: faire un switch ou une enum |
if(champ.equals(selecteurStadePheno)) { |
if(!selectionPhenologie) { |
validerSaisie(Champs.PHENOLOGIE); |
} else { |
selectionPhenologie = false; |
} |
} |
if(champ.equals(selecteurCertitude)) { |
if(!selectionCertitude) { |
validerSaisie(Champs.CERTITUDE); |
} else { |
selectionCertitude = false; |
} |
} |
if(champ.equals(selecteurAbondance)) { |
if(!selectionAbondance) { |
validerSaisie(Champs.ABONDANCE); |
} else { |
selectionAbondance = false; |
} |
} |
if(champ.equals(longitude)) { |
validerSaisie(Champs.LONGITUDE); |
} |
if(champ.equals(latitude)) { |
validerSaisie(Champs.LATITUDE); |
} |
if(champ.equals(espece)) { |
if(selectionEspece) { |
especeModifiee = true; |
selectionEspece=false; |
} |
else { |
validerSaisie(Champs.ESPECE); |
} |
} |
if(champ.equals(selecteurReferentielTaxo)) { |
validerSaisie(Champs.REFERENTIELTAXO); |
} |
if(champ.equals(date)) { |
validerSaisie(Champs.DATE); |
} |
if(champ.equals(commune)) { |
if(champ.equals(commune)) { |
if (selectionCommune) { |
communeModifiee= true; |
selectionCommune=false; |
} |
else { |
validerSaisie(Champs.COMMUNE); |
} |
} |
} |
} |
private void gererEvenementClavierDefaut(TextField champ) { |
//TODO: faire un switch ou une enum |
if(champ.equals(selecteurStadePheno)) { |
selecteurStadePheno.setRawValue(selecteurStadePheno.getRawValue()); |
selecteurStadePheno.setValue(selecteurStadePheno.getRawValue()); |
phenologieModifiee = true; |
selectionPhenologie = false; |
} |
if(champ.equals(selecteurCertitude)) { |
selecteurCertitude.setRawValue(selecteurCertitude.getRawValue()); |
selecteurCertitude.setValue(selecteurCertitude.getRawValue()); |
certitudeModifiee = true; |
selectionCertitude = false; |
} |
if(champ.equals(selecteurAbondance)) { |
selecteurAbondance.setRawValue(selecteurAbondance.getRawValue()); |
selecteurAbondance.setValue(selecteurAbondance.getRawValue()); |
abondanceModifiee = true; |
selectionAbondance = false; |
} |
if(champ.equals(longitude)) { |
longModifiee = true; |
tCoord.cancel(); |
tCoord.schedule(250); |
} |
if(champ.equals(latitude)) { |
latModifiee = true; |
tCoord.cancel(); |
tCoord.schedule(250); |
} |
if(champ.equals(comment)) { |
commModifie = true; |
} |
if(champ.equals(espece)) { |
numeroNom=""; |
obtenirListeReferentielNom(); |
especeModifiee = true; |
} |
if(champ.equals(selecteurReferentielTaxo)) { |
referentielTaxoModifie = true; |
} |
if(champ.equals(date)) { |
dateModifiee = true; |
} |
if(champ.equals(commune)) { |
departement=""; |
commune.collapse(); |
obtenirListeReferentielCommune(); |
communeModifiee= true; |
} |
} |
/** |
* Validation de la saisie |
*/ |
1076,7 → 986,7 |
if(modification) { |
if(masseModification) { |
modifierObservationEnMasse(champs); |
modifierObservationEnMasse(champs); |
} else { |
modifierObservation(); |
} |
1144,16 → 1054,14 |
} |
// si l'on a reçu une liste du référentiel nom (complétion referentiel nom) |
// si l'on a reçu une liste du référentiel nom (complétion referentiel nom) |
if(nouvelleDonnees instanceof ListeReferentielNom) |
{ |
ListeReferentielNom data = (ListeReferentielNom) nouvelleDonnees ; |
Object[][] nomData = new Object[data.size()][3]; |
int i = 0 ; |
// on la parse et on récupère les informations quiç nous interessent |
// on la parse et on récupère les informations qui nous interessent |
for (Iterator it = data.keySet().iterator(); it.hasNext();) |
{ |
1200,8 → 1108,6 |
calculerAfficherDifferences(listeObs); |
} |
// Sur Mise à jour ou suppression d'une suppression ? |
if(nouvelleDonnees instanceof String) |
{ |
String str = (String)nouvelleDonnees ; |
1299,7 → 1205,6 |
} |
private void rafraichirCommuneEtCoord(EntiteGeographiqueObservation infosCom) { |
; |
// on ne remplace la commune que si le champ était vide |
if(commune.getRawValue() == null || commune.getRawValue().equals("")) { |
rafraichirCommune(infosCom); |
1328,13 → 1233,12 |
} |
public void obtenirListeReferentielNom() { |
// FIXME : trouver un autre moyen que le hack "/*" pour rechercher les taxons lors de la saisie d'un espace apres le genre |
String esp=espece.getText().replaceAll(" ","/*"); |
esp=esp.replaceAll("%",""); |
String referentiel = this.referentielTaxo; |
observationMediateur.obtenirListeReferentielNom(this,esp); |
observationMediateur.obtenirListeReferentielNom(this,referentiel ,esp); |
} |
protected void obtenirReferentielStation() { |
1357,9 → 1261,7 |
return; |
} |
if(departement != null) { |
// TODO : regler le probleme a la base plutot que ce patch |
if(departement != null) { |
if(departement.equals("000null") || departement.equals("")) { |
String[] depCom = commune.getText().split(" "); |
if(depCom.length > 1) { |
1383,22 → 1285,24 |
} |
} |
} |
String dateObs = Util.remplacerSeparateursDateFormatCel(date.getRawValue()); |
Observation obs=new Observation(espece.getText(),numeroNom,commune.getText(),departement,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),dateObs); |
String[] coords = getValeurCoordonnees(); |
obs.setLatitude(coords[0]); |
obs.setLongitude(coords[1]); |
obs.setAbondance(getAbondance()); |
obs.setCertitude(getCertitude()); |
obs.setPhenologie(getPhenologie()); |
obs.setReferentielTaxo(Ontologies.getInfosReferentielNomParCode(referentielTaxo).getCodeVersionComplet()); |
observationMediateur.ajouterObservation(obs); |
} |
private void modifierObservation() { |
if(!Util.verifierDateFormatCel(date.getRawValue()) && !date.getRawValue().equals("")) { |
1442,15 → 1346,18 |
obs.setAbondance(getAbondance()); |
obs.setCertitude(getCertitude()); |
obs.setPhenologie(getPhenologie()); |
obs.setReferentielTaxo(getReferentielTaxo()); |
observationMediateur.modifierObservation(obs); |
selecteurMode.setValue("création"); |
setModification("false"); |
} |
private void modifierObservationEnMasse(Champs champModifie) { |
//TODO: factoriser |
String communeM = null; |
String departementM = null; |
String numNomSelM = null; |
1464,6 → 1371,8 |
String longM = null; |
String abondanceM = null; |
String certitudeM = null; |
String referentielTaxoM = null; |
String phenologieM = null; |
String champs = modeleMessageModif; |
1560,6 → 1469,18 |
champs = champs.replaceAll(":identification", ""); |
} |
if(referentielTaxoModifie && !selecteurReferentielTaxo.getRawValue().equals(VALEURS_MULTIPLES)) { |
referentielTaxoM = getReferentielTaxo(); |
} else { |
champs = champs.replaceAll(":referentiel", ""); |
} |
if(phenologieModifiee && !selecteurStadePheno.getRawValue().equals(VALEURS_MULTIPLES)) { |
phenologieM = getPhenologie(); |
} else { |
champs = champs.replaceAll(":phenologie", ""); |
} |
champs = champs.replaceAll(":",", "); |
if(champs.startsWith(",")) { |
champs = champs.replaceFirst(",", ""); |
1576,6 → 1497,8 |
obs.setLongitude(longM); |
obs.setAbondance(abondanceM); |
obs.setCertitude(certitudeM); |
obs.setReferentielTaxo(referentielTaxoM); |
obs.setPhenologie(phenologieM); |
if(Window.confirm(message)) { |
observationMediateur.modifierObservationEnMasse(obs); |
reinitialiserValeurModifiees(); |
1583,8 → 1506,7 |
} |
} |
private void supprimerObservation() { |
private void supprimerObservation() { |
observationMediateur.supprimerObservation(this, numeroOrdre); |
} |
1672,6 → 1594,18 |
selecteurCertitude.getStore().load(); |
selecteurCertitude.setValue(obs.getCertitude()); |
selecteurStadePheno.getStore().load(); |
selecteurStadePheno.setValue(obs.getPhenologie()); |
selecteurReferentielTaxo.getStore().load(); |
if(obs.getReferentielTaxo() != VALEURS_MULTIPLES) { |
referentielTaxo = obs.getCodeCourtReferentielTaxo(); |
selecteurReferentielTaxo.setValue(referentielTaxo); |
} else { |
referentielTaxo = ""; |
selecteurReferentielTaxo.setRawValue(VALEURS_MULTIPLES); |
} |
} |
1683,8 → 1617,6 |
public void raz(Champs champs) |
{ |
switch (champs) { |
case DATE: |
date.reset() ; |
break; |
1705,7 → 1637,6 |
comment.reset() ; |
break; |
case COMMUNE: |
commune.reset() ; |
departement =""; |
1737,6 → 1668,14 |
selecteurCertitude.setValue(""); |
break; |
case REFERENTIELTAXO: |
selecteurReferentielTaxo.setValue(""); |
break; |
case PHENOLOGIE: |
selecteurStadePheno.setValue(""); |
break; |
case TOUT: |
commune.reset(); |
date.reset() ; |
1751,6 → 1690,9 |
espece.reset(); |
selecteurAbondance.clearValue(); |
selecteurCertitude.clearValue(); |
selecteurReferentielTaxo.clearValue(); |
selecteurStadePheno.clearValue(); |
referentielTaxo = ""; |
numeroNom = "" ; |
numeroOrdre = ""; |
afficherIndicationCommune(null); |
1834,6 → 1776,8 |
String lon = null; |
String abondance = null; |
String certitude = null; |
String referentielTaxo = null; |
String phenologie = null; |
String ordreObs = ""; |
1851,6 → 1795,8 |
lon = comparerDifferencesChamps(lon, obsEnCours.getLongitude()); |
abondance = comparerDifferencesChamps(abondance, obsEnCours.getAbondance()); |
certitude = comparerDifferencesChamps(certitude, obsEnCours.getCertitude()); |
referentielTaxo = comparerDifferencesChamps(referentielTaxo, obsEnCours.getReferentielTaxo()); |
phenologie = comparerDifferencesChamps(phenologie, obsEnCours.getPhenologie()); |
ordreObs += obsEnCours.getNumeroOrdre()+","; |
} |
1861,6 → 1807,8 |
obs.setLongitude(lon); |
obs.setAbondance(abondance); |
obs.setCertitude(certitude); |
obs.setReferentielTaxo(referentielTaxo); |
obs.setPhenologie(phenologie); |
rafraichir(obs, false); |
} |
1892,6 → 1840,8 |
longModifiee = false; |
abondanceModifiee = false; |
certitudeModifiee = false; |
referentielTaxoModifie = false; |
phenologieModifiee = false; |
} |
public void saisieTabindex() |
1922,8 → 1872,9 |
espece.setTabIndex(12); |
selecteurCertitude.setTabIndex(13); |
selecteurAbondance.setTabIndex(14); |
boutonOK.setTabIndex(15); |
boutonAnnuler.setTabIndex(16); |
selecteurStadePheno.setTabIndex(15); |
boutonOK.setTabIndex(16); |
boutonAnnuler.setTabIndex(17); |
} |
1937,7 → 1888,7 |
} |
private void obtenirInformationCommune() { |
observationMediateur.obtenirInformationCommune(getCommuneSansDepartement(), obtenirDepartementAPartirChampCommune()); |
observationMediateur.obtenirInformationCommune(getCommuneSansDepartement(), Util.obtenirDepartementAPartirChaineCommune(departement, commune.getText())); |
} |
public double[] coordonneesValides() { |
1967,52 → 1918,6 |
} |
} |
private String obtenirDepartementAPartirChampCommune() { |
String dep = ""; |
if(departement == null) { |
departement = ""; |
} |
if(departement.equals("000null") || departement.equals("")) { |
String[] depCom = commune.getText().split(" "); |
if(depCom.length > 1) { |
dep = depCom[1].replace('(', ' '); |
} else { |
dep = ""; |
} |
} else { |
dep = departement; |
} |
dep = dep.replace(')', ' '); |
dep = dep.trim(); |
dep = dep.replace('\\',' '); |
dep = dep.trim(); |
try |
{ |
int nDep = Integer.parseInt(dep); |
if(nDep > 0 && nDep < 110) { |
departement = dep ; |
} |
if(departement.length() == 4) { |
departement = "0"+departement; |
} |
departement = departement.substring(0,2); |
} |
catch(NumberFormatException e) |
{ |
departement = "" ; |
} |
return departement; |
} |
public String getCommune() { |
String valeurCommune = ""; |
2024,7 → 1929,7 |
} |
public String getDepartement() { |
return obtenirDepartementAPartirChampCommune(); |
return Util.obtenirDepartementAPartirChaineCommune(departement, commune.getText()); |
} |
public String getCommuneSansDepartement() { |
2031,35 → 1936,38 |
return Util.supprimerNumDepartementChaineLocalite(getCommune()); |
} |
//TODO fusionner les deux fonctions et les objets qu'elles utilisent |
// car leur code est à 99% identique |
public String getAbondance() { |
String valeurAbondance = selecteurAbondance.getValue(); |
String valeurAbondanceBrute = selecteurAbondance.getRawValue(); |
private String getValeurChampListeLibre(ComboBox champ) { |
String valeurChamp = champ.getValue(); |
String valeurChampBrute = champ.getRawValue(); |
// Test idiot qui permet de savoir si l'on utilise la valeur saisie directement ou bien la valeur |
// selectionnee car lors du setValue sur le keypress, gwtext ne prends pas en compte le dernier |
// caractère |
if(valeurAbondance.equals(valeurAbondanceBrute.substring(0, valeurAbondanceBrute.length() -1))) { |
valeurAbondance = selecteurAbondance.getRawValue(); |
if(valeurChamp != null && valeurChamp.length() > 0) { |
if(valeurChamp.equals(valeurChampBrute.substring(0, valeurChampBrute.length() -1))) { |
valeurChamp = champ.getRawValue(); |
} |
} |
return valeurAbondance; |
return valeurChamp; |
} |
public String getAbondance() { |
return getValeurChampListeLibre(selecteurAbondance); |
} |
public String getCertitude() { |
String valeurCertitude = selecteurCertitude.getValue(); |
String valeurCertitudeBrute = selecteurCertitude.getRawValue(); |
// Test idiot qui permet de savoir si l'on utilise la valeur saisie directement ou bien la valeur |
// selectionnee car lors du setValue sur le keypress, gwtext ne prends pas en compte le dernier |
// caractère |
if(valeurCertitude.equals(valeurCertitudeBrute.substring(0, valeurCertitudeBrute.length() -1))) { |
valeurCertitude = selecteurCertitude.getRawValue(); |
} |
return valeurCertitude; |
return getValeurChampListeLibre(selecteurCertitude); |
} |
public String getPhenologie() { |
return getValeurChampListeLibre(selecteurStadePheno); |
} |
public String getReferentielTaxo() { |
String codeCourt = getValeurChampListeLibre(selecteurReferentielTaxo); |
return Ontologies.getInfosReferentielNomParCode(codeCourt).getCodeVersionComplet(); |
} |
public boolean communeInitialisee() { |
return communeModifiee; |
/trunk/src/org/tela_botanica/client/interfaces/FournisseurListe.java |
---|
5,17 → 5,13 |
* implémentent cette interface. |
* Elle permet de faire transiter le rafraichissable jusqu'au DAO et d'appeler sa méthode rafraichir un fois |
* les données reçues, tout celà en préservant bien la séparation des rôles car les classes qui font transiter |
* le rafraichissable ne connaissent que cette interface et pas le restye de l'objet |
* le rafraichissable ne connaissent que cette interface et pas le reste de l'objet |
* @author aurelien |
* |
*/ |
public interface FournisseurListe { |
/** |
* Méthode de mise à jour d'un objet |
* @param nouvelleDonnees Un objet de n'importe quel type (programmation générique) qui contient les données de mise à jour |
* @param repandreRaffraichissement indique si l'élement doit notifier d'autres éléments de sa mise à jour |
*/ |
public void obtenirListeDonnees(final Rafraichissable r, String critere); |
public void obtenirListeDonnees(Rafraichissable r, String referentiel, String critere); |
} |