Subversion Repositories eFlore/Applications.cel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2846 → Rev 2911

/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeChampsEtendus.java
New file
0,0 → 1,30
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
import java.util.Iterator;
 
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class ListeChampsEtendus extends HashMap<String, String> {
public ListeChampsEtendus(String listeChampsEtendusJson) {
super();
final JSONValue responseValue = JSONParser.parse(listeChampsEtendusJson);
JSONObject reponse = null;
// si c'est un objet
if ((reponse = responseValue.isObject()) != null) {
Iterator<String> it = reponse.keySet().iterator();
while(it.hasNext()) {
String cle = it.next();
String valeur = reponse.get(cle).isString().stringValue();
this.put(cle, valeur);
}
}
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/EntiteGeographiqueObservation.java
New file
0,0 → 1,89
package org.tela_botanica.client.modeles.objets;
 
/**
*
* Classe representant une idZoneGeo geographique (localite, zoneGeo, lieu dit) presente dans la liste des observations
*
*/
 
public class EntiteGeographiqueObservation {
 
private String idZoneGeo=null;
private String zoneGeo=null;
private String lieuDit=null;
private String station=null;
private String lat=null;
private String lon=null;
private String pays=null;
private int zoom = 0; // si zoom <= 0, on l'ignore lors du rafraîchissement
 
public EntiteGeographiqueObservation() {
}
 
/**
* @param zoneGeo
* @param departement
*/
 
public EntiteGeographiqueObservation(String idZoneGeo, String zoneGeo, String lieuDit, String station, int zoom) {
this(idZoneGeo, zoneGeo, lieuDit, station);
this.zoom = zoom;
}
 
public EntiteGeographiqueObservation(String idZoneGeo, String zoneGeo, String lieuDit, String station) {
this.idZoneGeo = idZoneGeo;
this.zoneGeo = zoneGeo;
this.lieuDit = lieuDit;
this.station = station;
}
public void setPays(String pays) {
this.pays = pays;
}
public String getPays() {
return pays;
}
 
public void setLat(String la) {
lat = la;
}
 
public void setLon(String lo) {
lon = lo;
}
 
public void setZoom(int zoom) {
this.zoom = zoom;
}
 
public String getLat() {
return lat;
}
public String getLon() {
return lon;
}
 
public String getIdZoneGeo() {
return idZoneGeo;
}
 
 
public String getZoneGeo() {
return zoneGeo;
}
 
 
public String getLieuDit() {
return lieuDit;
}
public String getStation() {
return station;
}
 
public int getZoom() {
return zoom;
}
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeEntiteGeographiqueObservation.java
New file
0,0 → 1,54
package org.tela_botanica.client.modeles.objets;
 
 
import java.util.LinkedHashMap;
 
/**
* table de hachage composée d'entite geographique, renvoyé par les objets de type DAO
* La clé est le nom de l'entite + le nom de l'entite parente
*
* @author david delon
*
*/
public class ListeEntiteGeographiqueObservation extends LinkedHashMap<String, EntiteGeographiqueObservation> {
private static final long serialVersionUID = 2717710270773281540L;
/**
* Constructeur sans paramètres
*/
public ListeEntiteGeographiqueObservation()
{
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ListeEntiteGeographiqueObservation(int taille)
{
super(taille);
}
/**
* Constructeur avec paramètre
* @param ic un tableau d'ImageCarnet
*/
public ListeEntiteGeographiqueObservation(EntiteGeographiqueObservation[] ent)
{
super() ;
for (int i = 0; i < ent.length; i++)
{
if(ent[i] != null && ent[i] instanceof EntiteGeographiqueObservation)
{
this.put(ent[i].hashCode()+"",ent[i]);
}
}
}
public void put(EntiteGeographiqueObservation value) {
this.put(value.hashCode()+"",value);
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/Configuration.java
New file
0,0 → 1,340
package org.tela_botanica.client.modeles.objets;
 
import java.util.ArrayList;
import java.util.List;
 
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.user.client.Window.Location;
 
/**
* Classe chargeant certains paramètres de configuration à partir d'un fichier
* javascript (config.js)
*
* @author aurelien
*
*/
public class Configuration {
 
/**
* L'url de base du serveur jrest
*/
private static String identificationBaseUrl;
private static String serviceBaseUrl;
 
private static String imageBaseUrl;
private static String suiviBugUrl ;
private static String aideBaseUrl ;
 
private static String remarquesBaseUrl ;
private static String serviceContact;
private static String referentielGeo ;
private static String cleGoogleMaps ;
 
private static String lienEfloreBaseUrl;
private static String licence ="";
private static String formatOriginal = "";
private static String formatZoom = "";
private static String formatGalerie = "";
private static String formatListe = "";
 
private static String utiliseRedirectionImage;
 
private static String imageRedirectUrl;
private static String tailleMaxUpload;
private static List<InfosReferentielNom> referentielsDispos;
private static String activerSaisieChampsEtendus = "0";
private static String wikiDescriptionChampsEtendusPageUrl = "";
private static String wikiDescriptionChampsEtendusRestUrl = "";
private static String wikiDescriptionChampsEtendusRestUrlOptions = "";
private static String wikiDescriptionChampsEtendusUrlOptionsPageTpl = "";
private static String langueDefaut = "";
private static String languesDisponibles = "";
private static String chorologieAvertissementCourriel = "";
 
private static boolean prod = false;
 
/**
* Constructeur sans argument
*/
public Configuration() {
// on utilise le dictionnaire d'internationalisation pour lire les
// variables du fichier javascript
//if(GWT.isScript()) {
identificationBaseUrl = Dictionary.getDictionary("configuration").get(
"identificationBaseUrl");
serviceBaseUrl = Dictionary.getDictionary("configuration").get(
"serviceBaseUrl");
serviceContact = Dictionary.getDictionary("configuration").get(
"serviceContact");
suiviBugUrl = Dictionary.getDictionary("configuration").get(
"suiviBugUrl");
imageBaseUrl = Dictionary.getDictionary("configuration").get(
"imageBaseUrl");
aideBaseUrl = Dictionary.getDictionary("configuration").get(
"aideBaseUrl");
remarquesBaseUrl = Dictionary.getDictionary("configuration").get(
"remarquesBaseUrl");
referentielGeo = Dictionary.getDictionary("configuration").get(
"referentielGeo");
cleGoogleMaps = Dictionary.getDictionary("configuration").get(
"cleGoogleMaps");
lienEfloreBaseUrl = Dictionary.getDictionary("configuration").get(
"lienEfloreBaseUrl");
formatOriginal = Dictionary.getDictionary("configuration").get(
"formatOriginal");
formatZoom = Dictionary.getDictionary("configuration").get(
"formatZoom");
formatGalerie = Dictionary.getDictionary("configuration").get(
"formatGalerie");
formatListe = Dictionary.getDictionary("configuration").get(
"formatListe");
utiliseRedirectionImage = Dictionary.getDictionary("configuration").get(
"utiliseRedirectionImage");
imageRedirectUrl = Dictionary.getDictionary("configuration").get(
"imageRedirectUrl");
tailleMaxUpload = Dictionary.getDictionary("configuration").get(
"tailleMaxUpload");
referentielsDispos = parserReferentielsDispos(Dictionary.getDictionary("configuration").get(
"referentielsDispos"));
activerSaisieChampsEtendus = Dictionary.getDictionary("configuration").get(
"activerSaisieChampsEtendus");
wikiDescriptionChampsEtendusPageUrl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusPageUrl");
wikiDescriptionChampsEtendusRestUrl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusRestUrl");
wikiDescriptionChampsEtendusRestUrlOptions = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusRestUrlOptions");
wikiDescriptionChampsEtendusUrlOptionsPageTpl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusUrlOptionsPageTpl");
langueDefaut = Dictionary.getDictionary("configuration").get("langueDefaut");
languesDisponibles = Dictionary.getDictionary("configuration").get("languesDisponibles");
chorologieAvertissementCourriel = Dictionary.getDictionary("configuration").get("chorologieAvertissementCourriel");
prod = Boolean.parseBoolean(Dictionary.getDictionary("configuration").get("prod"));
// Pour test, l'activation de l'ajout des champs étendus est activable ou désactivable par
// l'url
if(Location.getParameter("activerSaisieChampsEtendus") != null) {
if(Location.getParameter("activerSaisieChampsEtendus").equals("1")) {
activerSaisieChampsEtendus = "1";
} else if(Location.getParameter("activerSaisieChampsEtendus").equals("0")) {
activerSaisieChampsEtendus = "0";
}
}
}
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 d'identification
*
* @return une url de la forme http://emplacement_serveur/annuaire/Auth
*/
public static String getIdentificationBaseUrl() {
return identificationBaseUrl;
}
 
/**
* Accesseur pour l'url de base du serveur jrest
*
* @return une url de la forme http://emplacement_serveur/jrest
*/
public static String getServiceBaseUrl() {
return serviceBaseUrl;
}
/**
* Accesseur pour l'url de base du suivi de bug
*
* @return une url pointant vers le suivi des bugs
*/
public static String getSuiviBugUrl() {
return suiviBugUrl;
}
/**
* Accesseur pour l'url de base des images
*
* @return une url pointant vers la racine du dossier contenant les images
*/
public static String getImageBaseUrl() {
return imageBaseUrl ;
}
/**
* Accesseur pour l'url de base de l'aide
*
* @return une url pointant vers la racine de l'aide
*/
public static String getAideBaseUrl() {
return aideBaseUrl ;
}
/**
* Accesseur pour l'url de base du widget de remarques
*
* @return une url pointant vers la racine du widget (sans paramètres)
*/
public static String getRemarquesBaseUrl() {
return remarquesBaseUrl;
}
/**
* Accesseur pour le service de contact du carnet en ligne
*
* @return une chaine contenant le service de contact
*/
public static String getServiceContact() {
return serviceContact;
}
/**
* Accesseur pour le référentiel geo
*
* @return le référentiel geo
*/
public static String getReferentielGeo() {
return referentielGeo ;
}
/**
* Accesseur pour la clé google maps
*
* @return la clé google maps
*/
public static String getCleGoogleMaps() {
return cleGoogleMaps ;
}
 
public static String getLienEfloreBaseUrl() {
return lienEfloreBaseUrl;
}
public static String getLicence() {
return licence;
}
public static String getFormatOriginal() {
return formatOriginal;
}
public static String getFormatZoom() {
return formatZoom;
}
public static String getFormatGalerie() {
return formatGalerie;
}
public static String getFormatListe() {
return formatListe;
}
 
public static boolean utiliseRedirectionImages() {
return utiliseRedirectionImage.equals("1");
}
 
public static String getImageRedirectUrl() {
return imageRedirectUrl;
}
public static String getTailleMaxUpload() {
return tailleMaxUpload;
}
public static List<InfosReferentielNom> getReferentielsDispos() {
return referentielsDispos;
}
public static boolean saisieChampsEtendusActivee() {
return activerSaisieChampsEtendus.equals("1");
}
public static String getWikiDescriptionChampsEtendusPageUrl() {
return wikiDescriptionChampsEtendusPageUrl;
}
public static String getWikiDescriptionChampsEtendusRestUrl() {
return wikiDescriptionChampsEtendusRestUrl;
}
public static String getWikiDescriptionChampsEtendusUrlOptions() {
return wikiDescriptionChampsEtendusRestUrlOptions;
}
public static String getWikiDescriptionChampsEtendusUrlOptionsPageTpl() {
return wikiDescriptionChampsEtendusUrlOptionsPageTpl;
}
public static String getLangueDefaut() {
return langueDefaut;
}
public static String getLanguesDisponibles() {
return languesDisponibles;
}
public static String getChorologieAvertissementCourriel() {
return chorologieAvertissementCourriel;
}
 
public static boolean isProd() {
return prod;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeGroupesChampsEtendus.java
New file
0,0 → 1,59
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.client.cel2;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
 
public class ListeGroupesChampsEtendus extends HashMap<String,HashMap<String, String>> {
public HashMap<String, String> correspondancesClesLabels ;
public HashMap<String, String> correspondancesCorrespondancesIdsNomsGroupes;
public ListeGroupesChampsEtendus(String groupeChampsEtendusJson) {
super();
try {
correspondancesClesLabels = new HashMap<String, String>();
correspondancesCorrespondancesIdsNomsGroupes = new HashMap<String, String>();
JSONValue groupesJson = JSONParser.parseStrict(groupeChampsEtendusJson);
JSONArray groupes = groupesJson.isArray();
for (int i = 0; i < groupes.size(); i++) {
JSONObject groupe = groupes.get(i).isObject();
String cleGroupe = groupe.get("cle").isString().stringValue();
String nomGroupe = groupe.get("nom").isString().stringValue();
JSONArray listeClesLabels = groupe.get("champs").isArray();
correspondancesCorrespondancesIdsNomsGroupes.put(cleGroupe, nomGroupe);
HashMap<String, String> groupesClesLabel = new HashMap<String, String>();
for (int j = 0; j < listeClesLabels.size(); j++) {
JSONObject champ = listeClesLabels.get(j).isObject();
String cle = champ.get("cle").isString().stringValue();
String label = champ.get("label").isString().stringValue();
groupesClesLabel.put(cle, label);
correspondancesClesLabels.put(cle, label);
}
this.put(nomGroupe, groupesClesLabel);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public HashMap<String, String> getCorrespondancesClesLabel() {
return correspondancesClesLabels;
}
public HashMap<String, String> getCorrespondancesCorrespondancesIdsNomsGroupes() {
return correspondancesCorrespondancesIdsNomsGroupes;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/Utilisateur.java
New file
0,0 → 1,140
package org.tela_botanica.client.modeles.objets;
 
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
 
public class Utilisateur {
 
private String loginUtilisateurConnecte = null;
private String loginUtilisateurConsulte = null;
private String identifiantUtilisateurConnecte = null;
private String identifiantUtilisateurConsulte = null;
private boolean identifie = false;
private boolean isAdmin = false;
private boolean licenceAcceptee = false;
private static Utilisateur thisUtilisateur = null;
// Jeton encodé en base64 passé de manière automatique aux services dans un header
private static String jeton = "";
public static Utilisateur InitialiserInstance(JSONObject objetJsonUtilisateur) {
thisUtilisateur = new Utilisateur(objetJsonUtilisateur);
return thisUtilisateur;
}
public static Utilisateur getInstance() {
return thisUtilisateur;
}
public static String getJeton() {
return jeton;
}
public static void setJeton(String jeton) {
Utilisateur.jeton = jeton;
}
private Utilisateur(JSONObject objetJsonUtilisateur) {
// login utilisateur ou vide si non identifie
loginUtilisateurConnecte = ((JSONString) objetJsonUtilisateur.get("courriel")).stringValue();
loginUtilisateurConsulte = loginUtilisateurConnecte;
// identifiant utilisateur ou bien identifiant de session si non identifie
identifiantUtilisateurConnecte = ((JSONString) objetJsonUtilisateur.get("id_utilisateur")).stringValue();
identifiantUtilisateurConsulte = identifiantUtilisateurConnecte;
// Drapeau leve si utilisateur deja identifie
identifie = objetJsonUtilisateur.get("connecte").isBoolean().booleanValue();
// Drapeau leve si utilisateur est admin
isAdmin = objetJsonUtilisateur.get("admin").isBoolean().booleanValue();
// Drapeau leve si utilisateur a accepte licence
licenceAcceptee = objetJsonUtilisateur.get("licence_acceptee").isBoolean().booleanValue();
}
/**
* Retourne vrai si utilisateur identifie
* @return boolean
*/
public boolean isIdentifie() {
return identifie;
}
/**
* Retourne vrai si utilisateur est admin
* @return boolean
*/
public boolean isAdmin() {
return isAdmin;
}
/**
* Met à jour l'identité utilisée (dans le cas où l'utilisateur est admin)
* @param identite la nouvelle identité
*/
public void setUtilisateurConsulte(String identifiantUtilisateurConsulte, String loginUtilisateurConsulte) {
if(isAdmin()) {
this.identifiantUtilisateurConsulte = identifiantUtilisateurConsulte;
this.loginUtilisateurConsulte = loginUtilisateurConsulte;
}
else {
this.identifiantUtilisateurConsulte = identifiantUtilisateurConnecte;
this.loginUtilisateurConsulte = loginUtilisateurConnecte;
}
}
/**
* Retourne l'identifiant de l'utilisateur identifie ou un identifiant de session
* @return String identifiantUtilisateurConsulte
*/
public String getIdentifiantUtilisateurConnecte() {
return identifiantUtilisateurConnecte;
}
/**
* Retourne l'identifiant de l'utilisateur consulte
* @return String identifiantUtilisateurConsulte
*/
public String getIdentifiantUtilisateurConsulte() {
return identifiantUtilisateurConsulte;
}
/**
* Retourne le login de l'utilisateur identifie ou un identifiant de session
* @return String loginUtilisateurConnecte
*/
public String getLoginUtilisateurConnecte() {
return loginUtilisateurConnecte;
}
/**
* Retourne le login de l'utilisateur consulte
* @return String loginUtilisateurConsulte
*/
public String getLoginUtilisateurConsulte() {
return loginUtilisateurConsulte;
}
public void setLicenceAcceptee(boolean licenceAcceptee) {
this.licenceAcceptee = licenceAcceptee;
}
public boolean getLicenceAcceptee() {
return licenceAcceptee;
}
public void setLoginUtilisateurConnecte(String loginUtilisateurConnecte) {
this.loginUtilisateurConnecte = loginUtilisateurConnecte;
}
public void setLoginUtilisateurConsulte(String loginUtilisateurConsulte) {
this.loginUtilisateurConsulte = loginUtilisateurConsulte;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/InfosReferentielNom.java
New file
0,0 → 1,67
package org.tela_botanica.client.modeles.objets;
 
import org.tela_botanica.client.i18n.Msg;
 
public class InfosReferentielNom {
private String code = null;
private String version = null;
private String versionCourte = null;
private String intitule = null;
 
public InfosReferentielNom(String infosReferentiel) {
String[] codeVersion = infosReferentiel.split(":");
code = codeVersion[0];
intitule = Msg.get("referentiel-"+code);
if(codeVersion.length > 1) {
version = codeVersion[1];
versionCourte = formaterVersionCourte(version);
} else {
version = versionCourte = null;
}
}
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;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ReferentielNom.java
New file
0,0 → 1,49
package org.tela_botanica.client.modeles.objets;
 
 
/**
*
* Classe representant un element du referentiel de nom
*
*/
public class ReferentielNom {
 
 
private String nom=null;
private String numeroNom=null;
private String statut=null;
public ReferentielNom() {
}
 
/**
* @param nom
* @param numeroNom
* @param statut
*
*/
public ReferentielNom(String nom, String numeroNom, String statut) {
this.nom = nom;
this.numeroNom = numeroNom;
this.statut = statut;
}
 
 
public String getNom() {
return nom;
}
 
public String getNumeroNom() {
return numeroNom;
}
 
public String getStatut() {
return statut;
}
public boolean estRetenu() {
return statut != null && statut.equals("3");
}
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeDate.java
New file
0,0 → 1,59
package org.tela_botanica.client.modeles.objets;
 
 
import java.util.LinkedHashMap;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
 
/**
* table de hachage composée d'entite geographique, renvoyé par les objets de type DAO
* La clé est le nom de l'entite + le nom de l'entite parente
*
* @author david delon
*
*/
public class ListeDate extends LinkedHashMap<String, DateObservation> {
/**
*
*/
private static final long serialVersionUID = 6057292016502553510L;
 
/**
* Constructeur sans paramètres
*/
public ListeDate()
{
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ListeDate(int taille)
{
super(taille);
}
public ListeDate(JSONArray dates)
{
super(dates.size()) ;
final int taillemax = dates.size();
for (int i = 0; i < taillemax; i++) {
JSONString dateEncours = dates.get(i).isString() ;
if(dateEncours != null)
{
String dateString = dateEncours.stringValue() ;
DateObservation dat = new DateObservation(dateString);
 
this.put(dateString,dat);
}
}
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeReferentielPerso.java
New file
0,0 → 1,76
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
 
public class ListeReferentielPerso extends HashMap<String, String> {
public static enum TypesReferentiels {
REFERENTIEL_LIEU_DIT {
@Override
public String toString() {
return "lieudit";
}
},
REFERENTIEL_STATION {
@Override
public String toString() {
return "station";
}
},
REFERENTIEL_MILIEU {
@Override
public String toString() {
return "milieu";
}
}
}
/**
*
*/
private static final long serialVersionUID = 2159394354752556196L;
private TypesReferentiels typeReferentiel = null;
 
/**
* Constructeur sans paramètres
*/
public ListeReferentielPerso(TypesReferentiels typeReferentiel)
{
super();
this.typeReferentiel = typeReferentiel;
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ListeReferentielPerso(int taille,TypesReferentiels typeReferentiel)
{
super();
this.typeReferentiel = typeReferentiel;
}
/**
* Constructeur avec paramètre
* @param ic un tableau de strings
*/
public ListeReferentielPerso(TypesReferentiels typeReferentiel, String[] nom)
{
super() ;
this.typeReferentiel = typeReferentiel;
for (int i = 0; i < nom.length; i++)
{
if(nom[i] != null && nom[i].equals("00null"))
{
this.put(i+"",nom[i]);
}
}
}
public TypesReferentiels getTypeReferentiel() {
return typeReferentiel;
}
 
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ImageCarnet.java
New file
0,0 → 1,457
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
 
import org.tela_botanica.client.i18n.VocabulaireMetadonnees;
import org.tela_botanica.client.util.Util;
 
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Node;
import com.google.gwt.xml.client.NodeList;
import com.google.gwt.xml.client.Text;
import com.google.gwt.xml.client.XMLParser;
import com.google.gwt.xml.client.impl.DOMParseException;
 
/**
*
* Classe representant une image du carnet, elle ne contient pas d'image à
* proprement parler mais plutôt les informations associées ainsi que l'url
* distante. C'est une table de hachage qui contient des paires propriété/valeur
*
*/
public class ImageCarnet extends HashMap<String, String> {
 
/**
*
*/
private static final long serialVersionUID = -6220175386957259859L;
 
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public ImageCarnet(JSONObject image) {
// l'objet JSON est une table de hachage
Set<String> im = image.keySet();
 
// on la parcourt pour chaque clé
for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) {
 
// si elle est associée à une valeur, on l'ajoute
String key = iterator.next();
if (Util.jsonNonNull(image, key)) {
String valeur = image.get(key).isString().stringValue();
this.put(key, valeur);
} else {
// sinon on ajoute la clé avec une valeur vide
String valeur = " ";
this.put(key, valeur);
}
 
}
 
}
public ImageCarnet(String[][] image) {
 
for (int i = 0; i < image.length; i++) {
if (image[i][0] != null && image[i][1] != null) {
this.put(image[i][0], image[i][1]);
}
}
}
 
/**
* Surcharge de toString qui affiche toutes les propriétés de l'image
*/
 
@Override
public String toString() {
String valeur = " ";
 
for (Iterator<String> iterator = this.keySet().iterator(); iterator
.hasNext();) {
 
String key = iterator.next();
if (this.get(key) != null) {
valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
}
 
}
 
return valeur;
}
 
/**
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
* cette fonction qui retire les charactères nuls qui font planter
* l'affichage, il ne faut pas utiliser get directement
*
* @param cle
* @return la valeur associée à la clé
*/
public String renvoyerValeurCorrecte(String cle) {
if (this.containsKey((cle))) {
String valeur = this.get(cle);
if (valeur.equals("null") || valeur == null) {
return " ";
} else {
char nullChar = '\u0000';
String sNull = "" + nullChar;
valeur = valeur.replaceAll(sNull, "");
return valeur;
}
} else {
return " ";
}
}
 
/**
* Acesseur pour l'id de l'image
*
* @return l'id de l'image
*/
public String getId() {
 
return renvoyerValeurCorrecte("id_image");
}
 
/**
* Acesseur pour le numero d'ordre de l'image
*
* @return l'ordre de l'image
*/
public String getOrdre() {
 
return renvoyerValeurCorrecte("ordre");
}
 
/**
* Base de l'url serveur pour les images
*
* @return url racine pour les images
*/
public String getVraieBaseUrl() {
return Configuration.getImageBaseUrl() ;
}
/**
* Base de l'url serveur pour les images
*
* @return url racine pour les images
*/
public String getBaseUrlRedirect() {
return Configuration.getImageRedirectUrl() ;
}
public String getIdAvecPadding() {
String id = getId();
 
int maxZeros = 9 - id.length();
 
for (int i = 0; i < maxZeros; i++) {
id = "0" + id;
}
return id;
}
private String getUrlFormat(String format) {
String urlImage = "";
if(Configuration.utiliseRedirectionImages()) {
String identifiantRedirect = getIdAvecPadding()+format;
urlImage = getBaseUrlRedirect()+identifiantRedirect;
} else {
urlImage = getVraieUrlFormat(format);
}
 
return urlImage;
}
 
/**
* Renvoie le nom de base du fichier image et ses sous dossier
*
* @return le nom de base du fichier de type (XXX_XXX_XXX), et ses sous
* dossier
*/
public String[] getVraiCheminBaseFichier() {
String id = getIdAvecPadding();
 
String dossierNv1 = id.substring(0, 3);
String dossierNv2 = id.substring(3, 6);
String fichierNv = id.substring(6, 9);
 
String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
 
String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
return infosFichier;
}
private String getVraieUrlFormat(String format) {
String[] infosFichier = getVraiCheminBaseFichier();
 
return getVraieBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/"+format+"/"
+ infosFichier[0] + "_"+format+".jpg";
}
/**
* Renvoie le chemin et nom du fichier format original
*
* @return le chemin du fichier grand original
*/
public String getUrlFormatOriginal() {
 
return getUrlFormat(Configuration.getFormatOriginal());
}
 
/**
* Renvoie le chemin et nom du fichier grand format
*
* @return le chemin du fichier grand format
*/
public String getUrlFormatZoom() {
 
return getUrlFormat(Configuration.getFormatZoom());
}
 
/**
* Renvoie le chemin et nom du fichier petit format
*
* @return le chemin du fichier petit format
*/
public String getUrlFormatGalerie() {
 
return getUrlFormat(Configuration.getFormatGalerie());
}
 
/**
* Renvoie le chemin et nom du fichier moyen format
*
* @return le chemin du fichier moyen format
*/
public String getUrlFormatListe() {
 
return getUrlFormat(Configuration.getFormatListe());
}
 
/**
* Renvoie la taille de l'image
*
* @return un tableau de deux string contenant la hauteur puis la largeur
*/
public String[] getTailleImage() {
String[] XY = { renvoyerValeurCorrecte("hauteur"),
renvoyerValeurCorrecte("largeur") };
return XY;
}
 
public String[] getNote() {
String[] note = { renvoyerValeurCorrecte("note_qualite") };
return note;
}
 
/**
* Renvoie la date exif associée à l'image
*
* @return la date associée à l'image
*/
public String getDate() {
 
if(renvoyerValeurCorrecte("date_prise_de_vue").equals("00/00/0000"))
{
return "" ;
}
return renvoyerValeurCorrecte("date_prise_de_vue");
}
 
/**
* Renvoie la ville associée à l'image
*
* @return la ville iptc
*/
public Object getIptcCity() {
 
return renvoyerValeurCorrecte("");
}
 
/**
* Renvoie le fabricant de l'appareil
*
* @return le fabricant
*/
public String getFabriquantAppareil() {
 
return renvoyerValeurCorrecte("appareil_fabricant");
}
 
/**
* Renvoie le modele de l'appareil
*
* @return le modele
*/
public String getModeleAppareil() {
 
return renvoyerValeurCorrecte("appareil_modele");
}
 
/**
* Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
*
* @return les métadonnées iptc
*/
public String[][] getMetadonnesIptc() {
return getMetadonneesXml("meta_iptc");
}
 
/**
* Renvoie un tableau nom / valeur de toutes les metadonnées Exif
*
* @return les métadonnées Exif
*/
public String[][] getMetadonnesExif() {
return getMetadonneesXml("meta_exif");
}
private String[][] getMetadonneesXml(String type) {
String[][] metadonnees = {{},{}};
String xml = renvoyerValeurCorrecte(type);
String invalidXmlPattern = "[^"
+ "\\u0009\\u000A\\u000D"
+ "\\u0020-\\uD7FF"
+ "\\uE000-\\uFFFD"
+ "\\u10000-\\u10FFFF"
+ "]+";
xml = xml.replaceAll(invalidXmlPattern, " ");
 
try {
Document d = XMLParser.parse(xml);
if(d.hasChildNodes()) {
NodeList attributs = d.getFirstChild().getChildNodes();
int taille = attributs.getLength();
metadonnees = new String[taille][2];
for(int i = 0; i < taille; i++) {
if(attributs.item(i) != null) {
XMLParser.removeWhitespace(attributs.item(i));
attributs.item(i).normalize();
String nomMetaDonneestraduite = VocabulaireMetadonnees.getTraduction(attributs.item(i).getNodeName());
metadonnees[i][0] = nomMetaDonneestraduite;
if(attributs.item(i).hasChildNodes()) {
Node valeur = attributs.item(i).getFirstChild();
if(valeur.getNodeType() == Node.TEXT_NODE) {
metadonnees[i][1] = ((Text)valeur).getData();
} else {
metadonnees[i][1] = "";
}
}
}
}
}
} catch(DOMParseException e) {
}
return metadonnees;
}
 
/**
* Renvoie un tableau nom / valeur contenant les infos générales
*
* @return les infos générales
*/
public String[][] getInfoGenerales() {
 
String[][] metaGen = new String[2][2];
 
metaGen[0][0] = "commentaire";
metaGen[0][1] = this.renvoyerValeurCorrecte("commentaire");
 
metaGen[1][0] = "date_prise_de_vue";
metaGen[1][1] = this.renvoyerValeurCorrecte("date_prise_de_vue");
 
return metaGen;
}
 
/**
* Renvoie une string contenant les mots clés séparés par des ','
*
* @return les mots clés
*/
public String getMotsCles() {
 
return renvoyerValeurCorrecte("mots_cles");
}
 
/**
* Met à jour le commenentaire et la date
*
* @param commentaires
* le nouveau commentaire
* @param date
* la nouvelle date
*/
public void miseAJourInfoGenerales(String commentaires, String date,
String note) {
put("commentaire", commentaires);
put("note_qualite", note);
put("date_prise_de_vue", date);
}
 
/**
* Met à jour les mots clés
*
* @param motsClesEnCours
* la liste de mots clés séparés par des ','
*/
public void mettreAjourMotsCles(String motsClesEnCours) {
 
put("mots_cles", motsClesEnCours);
 
}
public void mettreAjourObsAssociees(String idsObsAssociees) {
put("id_observation", idsObsAssociees);
}
/**
* Accesseur pour le nom original
*
* @return le nom orginal de l'image
*/
public String getNomOriginal() {
return renvoyerValeurCorrecte("nom_original");
}
public String getIdsObsAssociees() {
String observationsAssociees = renvoyerValeurCorrecte("id_observation");
observationsAssociees = observationsAssociees.replaceAll("null", "");
return observationsAssociees;
}
public String[][] obtenirChampsModifiablesImage() {
String[][] champs = {
{"commentaire", renvoyerValeurCorrecte("commentaire")},
{"note_qualite", renvoyerValeurCorrecte("note_qualite")},
{"date_prise_de_vue",renvoyerValeurCorrecte("date_prise_de_vue")}
};
return champs;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeImageCarnet.java
New file
0,0 → 1,54
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
 
/**
* table de hachage composée d'ImageCarnet, renvoyé par les objets de type DAO
* pour les images. La clé est l'identifiant de l'image dans la base de données,
* et la valeur un objet de type ImageCarnet. GWT ne supporte pas encore les
* type paramètres mais quand il le fera il faudra créer la HashMap avec
* <String,ImageCarnet>
*
* @author aurelien
*
*/
public class ListeImageCarnet extends HashMap<String, ImageCarnet> {
 
/**
*
*/
private static final long serialVersionUID = 2715320270773281540L;
 
/**
* Constructeur sans paramètres
*/
public ListeImageCarnet() {
super();
}
 
/**
* Constructeur avec paramètre
*
* @param taille
* la taille de la table de hachage
*/
public ListeImageCarnet(int taille) {
super(taille);
}
 
/**
* Constructeur avec paramètre
*
* @param ic
* un tableau d'ImageCarnet
*/
public ListeImageCarnet(ImageCarnet[] ic) {
super();
for (int i = 0; i < ic.length; i++) {
if (ic[i] != null && ic[i] instanceof ImageCarnet) {
this.put(ic[i].getOrdre(), ic[i]);
}
}
}
 
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ReferentielLocalite.java
New file
0,0 → 1,41
package org.tela_botanica.client.modeles.objets;
 
/**
*
* Classe representant un element du referentiel de localites
*
*/
 
public class ReferentielLocalite {
 
private String localite = null;
private String codeLocalite = null;
private String codeInsee = null;
 
/**
* @param localite
* @param code
*/
public ReferentielLocalite(String localite, String code) {
this.localite = localite;
if(code.length() == 5) {
codeInsee = code;
codeLocalite = code.substring(0,2);
} else {
codeLocalite = code;
}
}
 
public String getLocalite() {
return localite;
}
 
public String getCodeLocalite() {
return codeLocalite;
}
 
public String getCodeInsee() {
return codeInsee;
}
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/Ontologies.java
New file
0,0 → 1,166
package org.tela_botanica.client.modeles.objets;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.i18n.Msg;
 
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.IntegerFieldDef;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.SimpleStore;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
 
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 = {{Msg.get("certain"),"certain"},
{Msg.get("douteux"),"douteux"},
{Msg.get("a-determiner"),"aDeterminer"}
};
SimpleStore storeCertitude = new SimpleStore(new String[] {"label","valeur"},valeurs);
storeCertitude.load();
return storeCertitude;
}
public static Store getValeursAbondance() {
Object[][] valeurs = {
{Msg.get("abondance-5"),"5"},
{Msg.get("abondance-4"),"4"},
{Msg.get("abondance-3"),"3"},
{Msg.get("abondance-2"),"2"},
{Msg.get("abondance-1"),"1"},
{Msg.get("abondance-+"),"+"},
{Msg.get("abondance-r"),"r"},
{Msg.get("abondance-i"),"i"},
{Msg.get("abondance-1-5"),"1-5"},
{Msg.get("abondance-5-10"),"5-10"},
{Msg.get("abondance-10-50"),"10-50"},
{Msg.get("abondance-50-100"),"50-100"},
{Msg.get("abondance-100-500"),"100-500"},
{Msg.get("abondance->500"),">500"},
{Msg.get("abondance-E"),"E"},
{Msg.get("abondance-RR"),"RR"},
{Msg.get("abondance-R"),"R"},
{Msg.get("abondance-AR"),"AR"},
{Msg.get("abondance-PC"),"PC"},
{Msg.get("abondance-AC"),"AC"},
{Msg.get("abondance-C"),"C"},
{Msg.get("abondance-CC"),"CC"}
};
SimpleStore storeAbondance = new SimpleStore(new String[] {"label","valeur"},valeurs);
storeAbondance.load();
return storeAbondance;
}
public static String getCorrespondanceCertitude(String cle) {
if(valeursCertitude == null) {
valeursCertitude = new HashMap<String, String>();
valeursCertitude.put("certain", Msg.get("certain"));
valeursCertitude.put("douteux", Msg.get("douteux"));
valeursCertitude.put("aDeterminer", Msg.get("a-determiner"));
}
 
String valeur = valeursCertitude.get(cle);
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 referentielNom = Msg.get("referentiel-"+infosReferentielNom.getCode());
String[] valeur = {referentielNom, 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 = {
{Msg.get("phenologie-00-09"), "00-09"},
{Msg.get("phenologie-10-19"), "10-19"},
{Msg.get("phenologie-11"), "11"},
{Msg.get("phenologie-15"), "15"},
{Msg.get("phenologie-20-29"), "20-29"},
{Msg.get("phenologie-30-39"), "30-39"},
{Msg.get("phenologie-40-49"), "40-49"},
{Msg.get("phenologie-50-59"), "50-59"},
{Msg.get("phenologie-60-69"), "60-69"},
{Msg.get("phenologie-61"), "61"},
{Msg.get("phenologie-65"), "65"},
{Msg.get("phenologie-70-79"), "70-79"},
{Msg.get("phenologie-80-89"), "80-89"},
{Msg.get("phenologie-85"), "85"},
{Msg.get("phenologie-90-99"), "90-99"},
{Msg.get("phenologie-91"), "91"},
{Msg.get("phenologie-95"), "95"}
};
SimpleStore storeAbondance = new SimpleStore(new String[] {"label","valeur"},valeurs);
storeAbondance.load();
return storeAbondance;
}
public static HashMap<String, String> getCorrespondanceGrilleObservationChampsTri() {
HashMap<String, String> correspondances = new HashMap<String, String>();
correspondances.put("etat_observation", "transmission");
correspondances.put("referentiel_taxo_observation", "nom_referentiel");
correspondances.put("nomSaisi_observation", "nom_sel");
correspondances.put("certitude", "certitude");
correspondances.put("nomRetenu_observation", "nom_ret");
correspondances.put("famille_observation", "famille");
correspondances.put("abondance", "abondance");
correspondances.put("phenologie", "phenologie");
correspondances.put("etat_observation", "transmission");
correspondances.put("lieu_observation", "ce_zone_geo");
correspondances.put("altitude_observation", "altitude");
correspondances.put("date_observation", "date_observation");
correspondances.put("ordre_observation", "ordre");
return correspondances;
}
public static HashMap<String, String> getCorrespondanceGrilleImageChampsTri() {
HashMap<String, String> correspondances = new HashMap<String, String>();
correspondances.put("num_image", "ordre");
correspondances.put("transmis", "transmission");
correspondances.put("obs_associees", "nom_sel");
correspondances.put("dat_image", "date_prise_de_vue");
correspondances.put("lie_image", "zone_geo");
correspondances.put("app_image", "appareil_fabriquant");
correspondances.put("note_image", "note_qualite");
correspondances.put("nom_original", "nom_original");
 
return correspondances;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/DateObservation.java
New file
0,0 → 1,33
package org.tela_botanica.client.modeles.objets;
 
public class DateObservation {
private String annee=null;
private String mois=null;
private String jour=null;
public DateObservation(String date) {
String dateTab[] = date.split(" ") ;
String dateSpl[] = dateTab[0].split("-") ;
annee= dateSpl[0];
mois= dateSpl[1];
jour= dateSpl[2];
}
 
public String getAnnee() {
return annee;
}
 
 
public String getMois() {
return mois;
}
 
 
public String getJour() {
return jour;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/Observation.java
New file
0,0 → 1,402
package org.tela_botanica.client.modeles.objets;
 
import java.util.Map;
 
import org.tela_botanica.client.util.Util;
 
import com.google.gwt.json.client.JSONObject;
 
 
public class Observation {
 
private String id=null;
private String transmis=null;
private String nomSaisi=null;
private String nomRetenu=null;
private String numeroNomenclaturalSaisi=null;
private String numeroNomenclaturalRetenu=null;
private String numeroTaxonomique=null;
private String famille=null;
private String localite=null;
private String identifiantLocalite=null;
private String lieudit=null;
private String station=null;
private String milieu=null;
private String commentaire=null;
private String date=null;
private String numeroOrdre=null;
private String motsCles=null;
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 String pays=null;
private Map<String, ChampEtendu> champsEtendus=null;
 
public Observation() {
}
 
/**
* Une observation telle que stockee dans la base de donnee
*
* @param transmis
* @param nomSaisi
* @param nomRetenu
* @param numeroNomenclaturalSaisi
* @param numeroNomenclaturalRetenu
* @param numeroTaxonomique
* @param famille
* @param localite
* @param IdentifiantLocalite
* @param lieudit
* @param station
* @param milieu
* @param commentaire
* @param date
* @param numeroOrdre
*/
public Observation(String transmis, String nomSaisi, String nomRetenu, String numeroNomenclaturalSaisi, String numeroNomenclaturalRetenu, String numeroTaxonomique, String famille, String localite, String identifiantLocalite, String lieudit, String station, String milieu, String commentaire, String date, String numeroOrdre, String pays) {
this.transmis = transmis;
this.nomSaisi = nomSaisi;
this.nomRetenu = nomRetenu;
this.numeroNomenclaturalSaisi = numeroNomenclaturalSaisi;
this.numeroNomenclaturalRetenu = numeroNomenclaturalRetenu;
this.numeroTaxonomique = numeroTaxonomique;
this.famille = famille;
this.identifiantLocalite = identifiantLocalite;
this.lieudit = lieudit;
this.station = station;
this.milieu = milieu;
this.commentaire = commentaire;
this.date = date;
this.numeroOrdre = numeroOrdre;
// Suppresion indication departementale (on pourrait faire mieux !!)
if(localite != null) {
int pos=localite.indexOf(" (" );
if (pos>=0) {
this.localite=localite.substring(0,pos);
}
else {
this.localite=localite;
}
}
this.motsCles = "";
}
public Observation(JSONObject observation) {
this.transmis = Util.getValeurJsonOuVide(observation, "transmission");
this.pays = Util.getValeurJsonOuVide(observation, "pays");
this.identifiantLocalite = Util.getValeurJsonOuVide(observation, "ce_zone_geo");
this.nomSaisi = Util.getValeurJsonOuVide(observation, "nom_sel");
this.nomRetenu = (Util.getValeurJsonOuVide(observation,"nom_ret"));
this.numeroNomenclaturalSaisi = Util.getValeurJsonOuVide(observation,"nom_sel_nn");
this.numeroNomenclaturalRetenu = Util.getValeurJsonOuVide(observation,"nom_ret_nn");
this.numeroTaxonomique= Util.getValeurJsonOuVide(observation,"nt");
this.famille = Util.getValeurJsonOuVide(observation,"famille");
this.localite = Util.getValeurJsonOuVide(observation,"zone_geo");
this.lieudit = Util.getValeurJsonOuVide(observation,"lieudit");
this.station= Util.getValeurJsonOuVide(observation,"station");
this.milieu = Util.getValeurJsonOuVide(observation,"milieu");
this.commentaire = Util.getValeurJsonOuVide(observation,"commentaire");
this.date = Util.getValeurJsonOuVide(observation,"date_observation");
this.numeroOrdre = Util.getValeurJsonOuVide(observation,"ordre");
this.id = Util.getValeurJsonOuVide(observation,"id_observation");
this.latitude = Util.getValeurJsonOuVide(observation,"latitude");
this.longitude = Util.getValeurJsonOuVide(observation,"longitude");
this.altitude = Util.getValeurJsonOuVide(observation,"altitude");
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"));
this.setChampsEtendus(Util.getMapValeursOuVide(observation, "obs_etendue"));
}
/**
* Une observation saisie ou modifiee
*
* @param nomSaisi
* @param numeroNomenclaturalSaisi
* @param localite
* @param IdentifiantLocalite
* @param lieudit
* @param station
* @param milieu
* @param commentaire
* @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;
this.numeroNomenclaturalSaisi = numeroNomenclaturalSaisi;
this.identifiantLocalite = identifiantLocalite;
this.lieudit = lieudit;
this.station = station;
this.milieu = milieu;
this.commentaire = commentaire;
this.date = date;
// Suppresion indication departementale (on pourrait faire mieux !!)
if(localite != null) {
int pos=localite.indexOf(" (" );
if (pos>=0) {
this.localite=localite.substring(0,pos);
}
else {
this.localite=localite;
}
}
this.motsCles = "" ;
}
 
 
public String getNomSaisi() {
return nomSaisi;
}
 
 
public String getNumeroOrdre() {
return numeroOrdre;
}
 
 
public String getCommentaire() {
return commentaire;
}
 
 
public String getDate() {
return date;
}
 
 
public String getFamille() {
return famille;
}
 
 
public String getLieudit() {
return lieudit;
}
 
 
public String getLocalite() {
return localite;
}
 
 
public String getIdentifiantLocalite() {
if(identifiantLocalite != null) {
identifiantLocalite = identifiantLocalite.replaceAll("\"", "");
}
return identifiantLocalite;
}
public String getPays() {
return pays;
}
public void setPays(String pays) {
this.pays = pays;
}
 
public String getMilieu() {
return milieu;
}
 
 
public String getNomRetenu() {
return nomRetenu;
}
 
 
public String getNumeroNomenclaturalSaisi() {
return numeroNomenclaturalSaisi;
}
 
 
public String getNumeroNomenclaturalRetenu() {
return numeroNomenclaturalRetenu;
}
 
 
public String getNumeroTaxonomique() {
return numeroTaxonomique;
}
 
public void setNomRetenu(String nomRetenu) {
this.nomRetenu = nomRetenu;
}
 
public void setNumeroNomenclaturalSaisi(String numeroNomenclaturalSaisi) {
this.numeroNomenclaturalSaisi = numeroNomenclaturalSaisi;
}
 
public void setNumeroNomenclaturalRetenu(String numeroNomenclaturalRetenu) {
this.numeroNomenclaturalRetenu = numeroNomenclaturalRetenu;
}
 
public void setNumeroTaxonomique(String numeroTaxonomique) {
this.numeroTaxonomique = numeroTaxonomique;
}
 
public String getStation() {
return station;
}
 
 
public String getTransmis() {
return transmis;
}
public String getMotsCles() {
return motsCles;
}
public String getLatitude() {
return this.latitude ;
}
public String getLongitude() {
return this.longitude ;
}
public String getReferentielGeo() {
return this.referentielGeo ;
}
public String getId() {
return this.id;
}
public String getAbondance() {
return this.abondance;
}
public String getCertitude() {
return this.certitude;
}
public void setMotsCles(String motsCles) {
this.motsCles = motsCles;
}
public void setNumeroOrdre(String numeroOrdre) {
this.numeroOrdre = numeroOrdre;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public void setReferentielGeo(String refGeo) {
this.referentielGeo = refGeo;
}
 
public void setId(String id) {
this.id = id;
}
public void setAbondance(String abondance) {
this.abondance = abondance;
}
public void setCertitude(String certitude) {
this.certitude = certitude;
}
 
public String getReferentielTaxo() {
return referentielTaxo;
}
 
public String getCodeCourtReferentielTaxo() {
String codeRef = "";
if(!getReferentielTaxo().equals("") && getReferentielTaxo().length() >= 3) {
int positionDeuxPoints = referentielTaxo.indexOf(':');
if (positionDeuxPoints == -1) {
codeRef = referentielTaxo;
} else {
codeRef = referentielTaxo.substring(0, positionDeuxPoints);
}
}
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, String label) {
ChampEtendu champ = new ChampEtendu(cle, label, valeur);
champsEtendus.put(cle, champ);
}
public ChampEtendu getChampEtendu(String cle) {
ChampEtendu champ = null;
if(champsEtendus.containsKey(cle)) {
champ = champsEtendus.get(cle);
}
return champ;
}
public String getLabelChampEtendu(String cle) {
String valeur = "";
if(champsEtendus.containsKey(cle)) {
valeur = champsEtendus.get(cle).getLabel();
}
return valeur;
}
 
public String getValeurChampEtendu(String cle) {
String valeur = "";
if(champsEtendus.containsKey(cle)) {
valeur = champsEtendus.get(cle).getValeur();
}
return valeur;
}
public Map<String, ChampEtendu> getChampsEtendus() {
return champsEtendus;
}
 
public void setChampsEtendus(Map<String, ChampEtendu> champsEtendus) {
this.champsEtendus = champsEtendus;
}
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ListeObservation.java
New file
0,0 → 1,60
package org.tela_botanica.client.modeles.objets;
 
import java.util.LinkedHashMap;
 
/**
* 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
*
* L'uitilisation de LinkedHashMap permet de conserver l'ordre d'insertion des
* elements à la lecture
*
* @author david delon
*
*/
public class ListeObservation extends LinkedHashMap<String, Observation> {
/**
*
*/
private static final long serialVersionUID = 2715320270773281540L;
 
/*
* Constructeur sans paramètres
*/
public ListeObservation() {
super();
}
 
/**
* Constructeur avec paramètre
*
* @param taille
* la taille de la table de hachage
*/
public ListeObservation(int taille) {
super(taille);
}
 
/**
* Constructeur avec paramètre
*
* @param ic
* un tableau d'ImageCarnet
*/
public ListeObservation(Observation[] obs) {
super();
for (int i = 0; i < obs.length; i++) {
if (obs[i] != null && obs[i] instanceof Observation) {
this.put(obs[i].getNumeroOrdre(), obs[i]);
}
}
}
 
public void ajouterObservation(Observation obs) {
if (obs != null) {
this.put(obs.getNumeroOrdre(), obs);
}
}
 
}
/tags/v2.25-scarificateur/src/org/tela_botanica/client/modeles/objets/ChampEtendu.java
New file
0,0 → 1,42
package org.tela_botanica.client.modeles.objets;
 
public class ChampEtendu {
 
private String cle;
private String label;
private String valeur;
public ChampEtendu() {
}
public ChampEtendu(String cle, String label, String valeur) {
this.setCle(cle);
this.setLabel(label);
this.setValeur(valeur);
}
 
public String getCle() {
return cle;
}
 
public void setCle(String cle) {
this.cle = cle;
}
 
public String getLabel() {
return label;
}
 
public void setLabel(String label) {
this.label = label;
}
 
public String getValeur() {
return valeur;
}
 
public void setValeur(String valeur) {
this.valeur = valeur;
}
}