Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 499 → Rev 500

/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
44,9 → 44,9
triParNbVotes = Tri par nombre de votes
triParDate = Tri par date
triParNbVotesAscendant = Tri par nombre de votes du maximum au minimum
triParDateAscendant = Tri par date du plus ancien au plus recent
triParDateAscendant = Tri par date du plus ancien au plus récent
triParNbVotesDescendant = Tri par nombre de votes du minimum au maximum
triParDateDescendant = Tri par date du plus recent au plus ancien
triParDateDescendant = Tri par date du plus récent au plus ancien
 
#ecran recherche observation
rechercherObservation = Identifier une plante
67,7 → 67,7
autreProposition = Autre Proposition
confianceSimpleSuggestion = Simple Suggestion
confianceProbable = Probable
confianceSurCent = Sur à 100%
confianceSurCent = Sûr à 100%
comparer = Comparer cette image
infoComparer = Vous pouvez comparer cette image à d'autres photos. Saisissez le nom de l'espèce et cliquez sur OK
lesPropositions = Propositions
75,11 → 75,11
 
#ecran comparaison
dateObservation = Date de la prise de vue
taxonADeterminer = Taxon a determiner
taxonADeterminer = Taxon à déterminer
imageEflore = Photos d'eFlore
metadonneesPhoto = Meta-donnees de la photo
motsClefs = Mots-clés
validePar = Valide par
validePar = Validé par
dateValidation = Date de dernière validation
taxon = Taxon
transmisLe = Transmis le
87,7 → 87,7
#ecran votes protcoles
votes = Moyenne des votes
infoVotes = Voici la moyenne des votes en fonction du protocole choisi :
protocoleEsthetisme = Esthetisme
protocoleEsthetisme = Esthétisme
protocoleIdentificationAuto = Identification automatique
monVote = Mon vote
nbVotes = vote(s)
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesAutoCompletionService.java
New file
0,0 → 1,64
package org.tela_botanica.del.client.utils;
 
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
 
public class UtilitairesAutoCompletionService {
// Attention à n'utiliser que si eflore est installé
public static String urlServiceCompletionNomEflore = "http://localhost/service:eflore:0.1/bdtfx/noms";
public static String urlServiceCompletionNomLocale = "/del/jrest/NomsTaxons/";
public static String urlServiceCompletionCommunes = "/del/jrest/Communes/";
public static String effectuerPreTraitementChaineRequeteGenreEspeceSlash(String requete) {
String chaineTraitee = requete;
String[] parties = requete.split(" ", 2);
if(parties.length == 2) {
if(parties[1].trim().isEmpty()) {
parties[1] = "*";
}
chaineTraitee = parties[0]+"/"+parties[1];
}
return chaineTraitee;
}
public static String effectuerPreTraitementChaineRequeteGenreEspeceEflore(String requete) {
String chaineTraitee = "?recherche=etendue&ns.structure=au&retour.format=oss&masque="+requete;
return chaineTraitee;
}
public static String[] parserRetourSimple(Response response) {
final JSONValue responseValue = JSONParser.parseStrict(response.getText());
JSONArray noms;
String[] valeurs = new String[0];
if ((noms=responseValue.isArray()) != null) {
final int taillemax = noms.size();
valeurs = new String[taillemax];
for (int i = 0; i < taillemax; i++) {
valeurs[i] = (noms.get(i).isArray().get(0).isString().stringValue());
}
}
return valeurs;
}
public static String[] parserRetourOss(Response response) {
JSONValue retourJson = JSONParser.parseStrict(response.getText());
JSONArray tableauResultat = retourJson.isArray().get(1).isArray();
String[] suggestions = new String[tableauResultat.size()];
for (int i = 0; i < tableauResultat.size(); i++) {
suggestions[i] = tableauResultat.get(i).isString().stringValue();
}
return suggestions;
}
}
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
New file
0,0 → 1,125
package org.tela_botanica.del.client.utils;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteProtocole;
 
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
 
public class UtilitairesServiceResultat {
public static Image parserImageJSON (JSONObject imageJson) {
Image image = new Image();
String idImage = "1"+imageJson.get("id_image").isString().stringValue();
image.setIdImage(idImage);
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg");
image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg");
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg");
return image;
}
public static Observation parserObservationEtCreerPropositionDetermination(JSONObject observationJson) {
Observation observation = parserObservationJSON(observationJson);
observation.addImageCelValidationData(creerPropositionDeterminationAPartirObservationJSON(observationJson));
return observation;
}
public static Observation parserObservationJSON(JSONObject observationJson) {
Observation observation = new Observation();
observation.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
observation.setDateTransmission(observationJson.get("date_observation").isString().stringValue());
observation.setDateReleve(observationJson.get("date_observation").isString().stringValue());
observation.setFamille(observationJson.get("famille").isString().stringValue());
observation.setId(observationJson.get("id_observation").isString().stringValue());
observation.setIdLocalite(observationJson.get("ce_zone_geo").isString().stringValue());
observation.setLocalite(observationJson.get("zone_geo").isString().stringValue());
observation.setNomRetenu(observationJson.get("nom_ret").isString().stringValue());
observation.setMilieu(observationJson.get("milieu").isString().stringValue());
observation.setLieuDit(observationJson.get("lieudit").isString().stringValue());
observation.setNumNomenclatural(observationJson.get("nom_ret_nn").isString().stringValue());
observation.setMotsClefs(parserMotsCles(observationJson.get("mots_cles_texte").isString().stringValue()));
return observation;
}
public static PropositionDetermination creerPropositionDeterminationAPartirObservationJSON(JSONObject observationJson) {
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setContributeur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
java.util.Date datePropDeter = parserDateObservation(observationJson.get("date_observation").isString().stringValue());
propositionDetermination.setDate(datePropDeter);
propositionDetermination.setEspece(observationJson.get("nom_ret").isString().stringValue());
return propositionDetermination;
}
public static Map<String, List<VoteProtocole>> parserVotesProtocoles(JSONArray votes) {
int nbVotes = votes.size();
Map<String, List<VoteProtocole>> votesProtocoles = new HashMap<String, List<VoteProtocole>>();
for (int j = 0; j < nbVotes; j++) {
JSONObject vote = votes.get(j).isObject();
VoteProtocole vd = new VoteProtocole();
String idProtocoleVote = ""+Math.round((int)vote.get("id_protocole").isNumber().doubleValue());
vd.setContributeur(vote.get("contributeur").isString().stringValue());
vd.setDate(new Date());
int valeurVote = Math.round((int)vote.get("vote").isNumber().doubleValue());
vd.setVote(valeurVote);
if(!votesProtocoles.containsKey(idProtocoleVote)) {
votesProtocoles.put(idProtocoleVote, new ArrayList<VoteProtocole>());
}
votesProtocoles.get(idProtocoleVote).add(vd);
}
return votesProtocoles;
}
public static Date parserDateObservation(String date) {
Date dateParsee = new Date();
DateTimeFormat formatDateObs = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss");
try{
dateParsee = formatDateObs.parse(date);
} catch (IllegalArgumentException e) {
dateParsee = new java.sql.Date(0);
}
return dateParsee;
}
public static List<String> parserMotsCles(String motsClesTexte) {
String[] tabMotsCle = motsClesTexte.split(",");
List<String> motsClesParses = new ArrayList<String>();
for (int i = 0; i < tabMotsCle.length; i++) {
motsClesParses.add(tabMotsCle[i]);
}
return motsClesParses;
}
public static String getIdAvecPadding(String id) {
 
int maxZeros = 9 - id.length();
 
for (int i = 0; i < maxZeros; i++) {
id = "0" + id;
}
return id;
}
}
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java
202,7 → 202,7
voteProtocole.setContributeur("aurelien");
voteProtocole.setDate(new Date());
 
image.getVoteProtocoles().add(voteProtocole);
//image.getVoteProtocoles().add(voteProtocole);
 
VoteProtocole voteProtocole2 = new VoteProtocole();
voteProtocole2.setProtocole(protocol2);
210,7 → 210,7
voteProtocole2.setContributeur("jpm");
voteProtocole2.setDate(new Date());
 
image.getVoteProtocoles().add(voteProtocole2);
//image.getVoteProtocoles().add(voteProtocole2);
 
observations.add(observation);
}
274,7 → 274,8
public List<VoteProtocole> getVote(String idImage) {
for (Image image : images) {
if (image.getIdImage().equals(idImage)) {
return image.getVoteProtocoles();
return null;
//return image.getVoteProtocoles();
}
 
}
288,7 → 289,7
* getVoteByImageAndProtocol(java.lang.String, java.lang.String)
*/
@Override
public List<VoteProtocole> getVoteByImageAndProtocol(String idImage, String protocolName) {
public List<VoteProtocole> getVotePourImageEtProtocole(String idImage, String protocolName) {
 
List<VoteProtocole> voteProtocolesLocal = new ArrayList<VoteProtocole>();
 
/trunk/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEflorePresenteur.java
5,11 → 5,9
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ImageServiceResultat;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.services.rest.ImageService;
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.utils.MockDatasource;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
36,7 → 34,6
}
 
private Vue vue;
private final VoteProtocoleService validationService = MockDatasource.getInstance();
private final ImageService imageService;
 
private Image imagePrincipale;
52,17 → 49,11
 
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
chargerValidationObservationPrincipale();
vue.chargerImagePrincipale(imagePrincipale);
chargerObservationsEflore();
gererEvenements();
}
 
public void chargerValidationObservationPrincipale() {
List<VoteProtocole> observationValidations = validationService.getVote(imagePrincipale.getIdImage());
imagePrincipale.setVoteProtocoles(observationValidations);
}
 
public void chargerObservationsEflore() {
vue.startChargement();
/trunk/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEfloreVue.java
54,9 → 54,9
// validateurs
String validateursConcatenes = "";
try {
for (VoteProtocole observationValidation : image.getVoteProtocoles()) {
/*for (VoteProtocole observationValidation : image.getVoteProtocoles()) {
validateursConcatenes += observationValidation.getContributeur() + ", ";
}
}*/
validateursConcatenes = validateursConcatenes.subSequence(0, validateursConcatenes.lastIndexOf(",")).toString();
} catch (Exception e) {
 
65,13 → 65,13
// date derniere validation
Date dateDerniereValidation = null;
try {
for (VoteProtocole observationValidation : image.getVoteProtocoles()) {
/*for (VoteProtocole observationValidation : image.getVoteProtocoles()) {
if (dateDerniereValidation == null) {
dateDerniereValidation = observationValidation.getDate();
} else if (dateDerniereValidation.before(observationValidation.getDate())) {
dateDerniereValidation = observationValidation.getDate();
}
}
}*/
} catch (Exception e) {
}
 
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/votes/MoyenneVotePresenteur.java
69,7 → 69,7
voteProtocole.setProtocole(this.protocole);
voteProtocoleService.saveVote(idImage, voteProtocole);
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(idImage, protocole.getNom());
List<VoteProtocole> observationValidationDatas = validationService.getVotePourImageEtProtocole(idImage, protocole.getNom());
vue.rafraichir(observationValidationDatas);
}
}
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java
24,7 → 24,6
import org.tela_botanica.del.client.services.rest.ImageService;
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.votes.MoyenneVotePresenteur;
 
import com.google.gwt.event.dom.client.ClickEvent;
36,45 → 35,27
public class ImagePresenteur extends Presenteur {
 
public interface Vue extends IsWidget {
 
public abstract void loadImage(Image image);
 
public abstract HasClickHandlers getImagePrincipale();
public IsWidget getImagePrincipaleWidget();
public IsWidget getImagePrincipaleWidget();
public void setUrlImagePrincipale(String url);
 
public void setTitreImagePrincipale(String titre);
 
public void setAltTextImagePrincipale(String altText);
 
public String getUrlImagePrincipale();
 
public String getTitreImagePrincipale();
 
public String getAltTextImagePrincipale();
 
public abstract HasClickHandlers getEnSavoirPlus();
 
public abstract HasClickHandlers getZoom();
 
public abstract void cacherZoneCache();
 
public abstract void afficherZoneCache();
 
public abstract HasWidgets getZoneVoter();
 
public HasClickHandlers getNomAuteur();
public HasClickHandlers getNomEspece();
public HasClickHandlers getNomAuteur();
public HasClickHandlers getNomEspece();
public HasWidgets getMetadonnees();
}
 
private Vue vue;
 
private final MockDatasource validationService = MockDatasource.getInstance();
private final Image image;
private boolean detailsOpen = false;
 
96,9 → 77,10
 
private void loadValidationData() {
vue.getZoneVoter().clear();
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom());
new MoyenneVotePresenteur(observationValidationDatas, image.getIdImage(), protocole).go(vue.getZoneVoter());
List<VoteProtocole> observationValidationDatas = image.getVotesProtocoles(protocole.getId());
if(observationValidationDatas != null) {
new MoyenneVotePresenteur(observationValidationDatas, image.getIdImage(), protocole).go(vue.getZoneVoter());
}
}
 
private void lancerEvenementValidation() {
105,14 → 87,12
CacheClient.getInstance().setImageCourante(image);
final Observation obs = image.getObservation();
 
// charge toutes les images de l'observation associee à l'observation en
// cours
// charge toutes les images de l'observation associee à l'observation en cours
ImageService imageService = new ImageServiceConcret();
imageService.getImagesParObservation(obs.getId(), new ImagesParTaxonCallback() {
 
@Override
public void surImagesRecues(ImageServiceResultat imagesRecues) {
public void surImagesRecues(ImageServiceResultat imagesRecues) {
for (int i = 0; i < imagesRecues.getNbTotalImagesPourLaRecherche(); i++) {
Image img = imagesRecues.getImages().get(i);
img.setObservation(obs);
121,7 → 101,6
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(obs));
}
});
 
}
protected void gererEvenements() {
153,12 → 132,10
 
vue.getZoom().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(0, new FenetreOverlayDefilanteVue()) {
FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(0, new FenetreOverlayDefilanteVue()) {
@Override
public void surClicBoutonSuivant() {
}
}
@Override
public void surClicBoutonPrecedent() {
}
169,7 → 146,6
});
 
BusEvenementiel.getInstance().addHandler(EvenementVoirDetailsImage.TYPE, new GestionnaireEvenementVoirDetailsImage() {
 
@Override
public void onVoirDetailsImage(EvenementVoirDetailsImage event) {
if (image.getIdImage().equals(event.getImage().getIdImage())) {
186,7 → 162,6
});
 
BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
 
@Override
public void onChangementProtocole(EvenementChangementProtocole event) {
setProtocole(event.getProtocole());
216,5 → 191,4
public void setProtocole(Protocole protocole) {
this.protocole = protocole;
}
 
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java
12,7 → 12,7
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
import org.tela_botanica.del.client.services.UtilitairesAutoCompletionService;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/EnsembleVotesPresenteur.java
3,6 → 3,7
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.services.rest.ProtocoleService;
10,6 → 11,7
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne.MoyenneVoteProtocolePresenteur;
 
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
21,7 → 23,6
 
private Vue vue;
private ProtocoleService protocoleService = MockDatasource.getInstance();
private VoteProtocoleService voteProtocoleService = MockDatasource.getInstance();
 
public EnsembleVotesPresenteur(Vue vue) {
this.vue = vue;
34,14 → 35,14
 
public void afficherVotes() {
 
String idImageCourante = CacheClient.getInstance().getImageCourante().getIdImage();
Image imageCourante = CacheClient.getInstance().getImageCourante();
 
Protocole protocoleEsthetisme = protocoleService.getProtocole(Protocole.ESTHETISME);
List<VoteProtocole> observationValidationsEsthetisme = voteProtocoleService.getVoteByImageAndProtocol(idImageCourante, Protocole.ESTHETISME);
List<VoteProtocole> observationValidationsEsthetisme = imageCourante.getVotesProtocoles(protocoleEsthetisme.getId());
new MoyenneVoteProtocolePresenteur(protocoleEsthetisme, observationValidationsEsthetisme).go(vue.getPanneauVotes());
 
Protocole protocoleIdentification = protocoleService.getProtocole(Protocole.IDENTIFICATION_AUTOMATIQUE);
List<VoteProtocole> observationValidationsIdentification = voteProtocoleService.getVoteByImageAndProtocol(idImageCourante, Protocole.IDENTIFICATION_AUTOMATIQUE);
List<VoteProtocole> observationValidationsIdentification = imageCourante.getVotesProtocoles(protocoleIdentification.getId());
new MoyenneVoteProtocolePresenteur(protocoleIdentification, observationValidationsIdentification).go(vue.getPanneauVotes());
}
}
/trunk/src/org/tela_botanica/del/client/composants/observations/ObservationImagesPresenteur.java
61,7 → 61,6
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
chargerImagesObservation();
//gererEvenements();
}
 
protected void gererEvenements() {
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRecherchePresenteur.java
6,7 → 6,7
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.services.UtilitairesAutoCompletionService;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
/trunk/src/org/tela_botanica/del/client/modeles/ObservationServiceResultat.java
4,6 → 4,8
import java.util.Date;
import java.util.List;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
27,32 → 29,8
for (int i = 0; i < nbResultats; i++) {
JSONObject observationJson = tableauObs.get(i).isObject();
Observation observation = new Observation();
observation.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
observation.setDateReleve(observationJson.get("date_observation").isString().stringValue());
observation.setDateTransmission(observationJson.get("date_transmission").isString().stringValue());
observation.setFamille(observationJson.get("famille").isString().stringValue());
observation.setId(observationJson.get("id_observation").isString().stringValue());
observation.setIdLocalite(observationJson.get("ce_zone_geo").isString().stringValue());
observation.setLocalite(observationJson.get("zone_geo").isString().stringValue());
observation.setLieuDit(observationJson.get("lieudit").isString().stringValue());
observation.setMilieu(observationJson.get("milieu").isString().stringValue());
observation.setNomRetenu(observationJson.get("nom_ret").isString().stringValue());
observation.setCommentaire(observationJson.get("commentaire").isString().stringValue());
observation.ajouterMotsClef(observationJson.get("mots_cles_texte").isString().stringValue());
observation.setNumNomenclatural(observationJson.get("nom_ret_nn").isString().stringValue());
observation.setMotsClefs(parserMotsCles(observationJson.get("mots_cles_texte").isString().stringValue()));
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setContributeur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
java.util.Date datePropDeter = parserDateObservation(observationJson.get("date_observation").isString().stringValue());
propositionDetermination.setDate(datePropDeter);
propositionDetermination.setEspece(observationJson.get("nom_ret").isString().stringValue());
observation.addImageCelValidationData(propositionDetermination);
Observation observation = UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson);
JSONArray tableauImagesObs = observationJson.get("images").isArray();
List<Image> imagesPourObs = new ArrayList<Image>();
59,13 → 37,9
int nbImages = tableauImagesObs.size();
for (int j = 0; j < nbImages; j++) {
JSONObject imageJson = tableauImagesObs.get(j).isObject();
Image image = new Image();
String idImage = "1"+imageJson.get("id_image").isString().stringValue();
image.setIdImage(idImage);
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg");
image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg");
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg");
image.setObservation(observation);
Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
image.setObservation(observation);
imagesPourObs.add(image);
}
89,38 → 63,4
public void setNbTotalObservationsPourLaRecherche(int nbTotalObservationsPourLaRecherche) {
this.nbTotalObservationsPourLaRecherche = nbTotalObservationsPourLaRecherche;
}
private String getIdAvecPadding(String id) {
 
int maxZeros = 9 - id.length();
 
for (int i = 0; i < maxZeros; i++) {
id = "0" + id;
}
return id;
}
private Date parserDateObservation(String date) {
Date dateParsee = new Date();
DateTimeFormat formatDateObs = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss");
try{
dateParsee = formatDateObs.parse(date);
} catch (IllegalArgumentException e) {
dateParsee = new java.sql.Date(0);
}
return dateParsee;
}
private List<String> parserMotsCles(String motsClesTexte) {
String[] tabMotsCle = motsClesTexte.split(",");
List<String> motsClesParses = new ArrayList<String>();
for (int i = 0; i < tabMotsCle.length; i++) {
motsClesParses.add(tabMotsCle[i]);
}
return motsClesParses;
}
 
}
/trunk/src/org/tela_botanica/del/client/modeles/Image.java
1,8 → 1,12
package org.tela_botanica.del.client.modeles;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import com.google.gwt.user.client.Window;
 
public class Image {
 
private String idImage;
43,16 → 47,27
this.idImage = idImage;
}
 
private List<VoteProtocole> voteProtocoles = new ArrayList<VoteProtocole>();
private Map<String, List<VoteProtocole>> voteProtocoles = new HashMap<String, List<VoteProtocole>>();
 
public List<VoteProtocole> getVoteProtocoles() {
return voteProtocoles;
public List<VoteProtocole> getVoteProtocoles(String id_protocole) {
if(!voteProtocoles.containsKey(""+id_protocole) || voteProtocoles.get(""+id_protocole) == null) {
voteProtocoles.put(""+id_protocole, new ArrayList<VoteProtocole>());
}
return voteProtocoles.get(id_protocole+"");
}
 
public void setVoteProtocoles(List<VoteProtocole> voteProtocoles) {
public List<VoteProtocole> getVotesProtocoles(int id_protocole) {
return getVoteProtocoles(id_protocole+"");
}
public void setVoteProtocoles(Map<String, List<VoteProtocole>> voteProtocoles) {
this.voteProtocoles = voteProtocoles;
}
 
public void setVoteProtocoles(String id_protocole, List<VoteProtocole> voteProtocoles) {
this.voteProtocoles.put(id_protocole, voteProtocoles);
}
 
public Observation getObservation() {
return observation;
}
/trunk/src/org/tela_botanica/del/client/modeles/Protocole.java
1,11 → 1,15
package org.tela_botanica.del.client.modeles;
 
import org.tela_botanica.del.client.i18n.I18n;
 
import com.sun.imageio.plugins.common.I18N;
 
public class Protocole {
 
private int id;
private String nom;
public static String ESTHETISME = "Qualité de l'image";
public static String IDENTIFICATION_AUTOMATIQUE = "Protocole Pl@ntNet";
public static String ESTHETISME = I18n.getVocabulary().protocoleEsthetisme();
public static String IDENTIFICATION_AUTOMATIQUE = I18n.getVocabulary().protocoleIdentificationAuto();
 
public int getId() {
return id;
/trunk/src/org/tela_botanica/del/client/modeles/ImageServiceResultat.java
4,11 → 4,16
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class ImageServiceResultat {
21,55 → 26,30
//TODO ajouter vérifications plus précises
double total = retourJson.isObject().get("total").isNumber().doubleValue();
nbTotalImagesPourLaRecherche = (int) total;
JSONArray tableauObs = retourJson.isObject().get("contenu").isArray();
images = new ArrayList<Image>();
HashMap<String, Observation> observations = new HashMap<String, Observation>();
int nbResultats = tableauObs.size();
for (int i = 0; i < nbResultats; i++) {
JSONObject imageJson = tableauObs.get(i).isObject();
Image image = new Image();
String idImage = "1"+imageJson.get("id_image").isString().stringValue();
image.setIdImage(idImage);
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg");
image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg");
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg");
Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
if(imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
JSONObject observationJson = imageJson.get("observation").isObject();
Observation observation = new Observation();
observation.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
observation.setDateTransmission(observationJson.get("date_observation").isString().stringValue());
observation.setDateReleve(observationJson.get("date_observation").isString().stringValue());
observation.setFamille(observationJson.get("famille").isString().stringValue());
observation.setId(observationJson.get("id_observation").isString().stringValue());
observation.setIdLocalite(observationJson.get("ce_zone_geo").isString().stringValue());
observation.setLocalite(observationJson.get("zone_geo").isString().stringValue());
observation.setNomRetenu(observationJson.get("nom_ret").isString().stringValue());
observation.setMilieu(observationJson.get("milieu").isString().stringValue());
observation.setLieuDit(observationJson.get("lieudit").isString().stringValue());
observation.setNumNomenclatural(observationJson.get("nom_ret_nn").isString().stringValue());
observation.setMotsClefs(parserMotsCles(observationJson.get("mots_cles_texte").isString().stringValue()));
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setContributeur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
java.util.Date datePropDeter = parserDateObservation(observationJson.get("date_observation").isString().stringValue());
propositionDetermination.setDate(datePropDeter);
propositionDetermination.setEspece(observationJson.get("nom_ret").isString().stringValue());
observation.addImageCelValidationData(propositionDetermination);
image.setObservation(observation);
if(imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
JSONObject observationJson = imageJson.get("observation").isObject();
image.setObservation(UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson));
}
if(imageJson.get("votes") != null && imageJson.get("votes").isArray() != null) {
JSONArray votes = imageJson.get("votes").isArray();
image.setVoteProtocoles(UtilitairesServiceResultat.parserVotesProtocoles(votes));
}
images.add(image);
}
}
 
public List<Image> getImages() {
return images;
}
85,37 → 65,4
public void setNbTotalImagesPourLaRecherche(int nbTotalImagesPourLaRecherche) {
this.nbTotalImagesPourLaRecherche = nbTotalImagesPourLaRecherche;
}
private String getIdAvecPadding(String id) {
 
int maxZeros = 9 - id.length();
 
for (int i = 0; i < maxZeros; i++) {
id = "0" + id;
}
return id;
}
private Date parserDateObservation(String date) {
Date dateParsee = new Date();
DateTimeFormat formatDateObs = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss");
try{
dateParsee = formatDateObs.parse(date);
} catch (IllegalArgumentException e) {
dateParsee = new java.sql.Date(0);
}
return dateParsee;
}
private List<String> parserMotsCles(String motsClesTexte) {
String[] tabMotsCle = motsClesTexte.split(",");
List<String> motsClesParses = new ArrayList<String>();
for (int i = 0; i < tabMotsCle.length; i++) {
motsClesParses.add(tabMotsCle[i]);
}
return motsClesParses;
}
 
}
/trunk/src/org/tela_botanica/del/test/composants/moteurrecherche/MoteurRecherchePresenteurTest.java
8,7 → 8,7
import org.tela_botanica.del.client.composants.formulaires.AutoCompletionComboBoxPresenteur;
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.services.UtilitairesAutoCompletionService;
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService;
 
 
import com.google.gwt.http.client.Response;