Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1517 → Rev 1535

/tags/v1.1-helium/src/org/tela_botanica/del/client/services/CalculVoteDeterminationService.java
New file
0,0 → 1,90
package org.tela_botanica.del.client.services;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;
 
 
public class CalculVoteDeterminationService {
public static List<MoyenneVote> calculerVoteDeterminationPlusPopulaire(List<PropositionDetermination> propositions) {
List<MoyenneVote> pairesVotes = new ArrayList<MoyenneVote>();
for (PropositionDetermination proposition : propositions) {
pairesVotes.add(calculerVoteDetermination(proposition));
}
java.util.Collections.sort(pairesVotes);
return pairesVotes;
}
public static int getNombreTotalVotants(PropositionDetermination proposition) {
int nbVotants = 0;
List<PropositionDetermination> votes = proposition.getObservation().getPropositionDeterminations();
Iterator<PropositionDetermination> itVotes = votes.iterator();
while (itVotes.hasNext()) {
PropositionDetermination propositionCourante = itVotes.next();
nbVotants += propositionCourante.getVotesDeterminations().size();
}
return nbVotants;
}
public static MoyenneVote calculerVoteDetermination(PropositionDetermination propositionDetermination) {
int nbVotants = getNombreTotalVotants(propositionDetermination);
return calculerProportionVote(propositionDetermination, nbVotants);
}
public static MoyenneVote calculerMoyenneVoteDetermination(PropositionDetermination propositionDetermination, int nbVotants) {
return calculerProportionVote(propositionDetermination, nbVotants);
}
private static MoyenneVote calculerProportionVote(PropositionDetermination propositionDetermination, int nbVotants) {
Map<String,VoteDetermination> votes = propositionDetermination.getVotesDeterminations();
double scoreVoteIdentifie = 0;
double scoreVoteAnonyme = 0;
double scoreVote = 0;
if(votes.size() > 0) {
Set<String> cles = votes.keySet();
 
for (String cle : cles) {
String idAuteur = cle;
int valeurVote = votes.get(cle).getVote();
if(estUnAuteurIdentifie(idAuteur)) {
// un votant identifiant compte comme deux votants supplémentaires
// il a donc un vote 3 fois supérieur
scoreVoteIdentifie += valeurVote;
//nbVotants += 2;
} else {
scoreVoteAnonyme += valeurVote;
}
}
scoreVote = ((scoreVoteAnonyme + scoreVoteIdentifie)/(nbVotants))*100;
} else {
scoreVote = -1;
}
return new MoyenneVote((new Double(scoreVote)).intValue(), propositionDetermination);
}
private static boolean estUnAuteurIdentifie(String idAuteur) {
boolean estIdentifie = true;
try {
int intIdAuteur = Integer.parseInt(idAuteur);
} catch (NumberFormatException nfe) {
estIdentifie = false;
}
return estIdentifie;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/ReferentielService.java
New file
0,0 → 1,29
package org.tela_botanica.del.client.services;
 
import java.util.LinkedHashMap;
import java.util.Map;
 
import org.tela_botanica.del.client.i18n.I18n;
 
public class ReferentielService {
//TODO: trouver une meilleure manière de gérer les référentiels
// que cette classe statique
private static Map<String, String> referentiels;
public static Map<String, String> getReferentiels() {
// le fonctionnement de l'i18n empeche de mettre les référentiels dans
// des fichiers de config car il est impossigble de charger les termes
// de vocabulaires associés avec la réflexivité
if(referentiels == null) {
// attention l'utilisation de LinkedHashmap est importante pour conserver
// l'ordre des référentiels
referentiels = new LinkedHashMap<String, String>();
referentiels.put("tous", I18n.getVocabulary().referentielTous());
referentiels.put("bdtfx", I18n.getVocabulary().referentielBdtfx());
referentiels.put("bdtxa", I18n.getVocabulary().referentielBdtxa());
}
return referentiels;
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/RequestBuilderWithCredentials.java
New file
0,0 → 1,11
package org.tela_botanica.del.client.services;
 
import com.google.gwt.http.client.RequestBuilder;
 
public class RequestBuilderWithCredentials extends RequestBuilder {
 
public RequestBuilderWithCredentials(Method httpMethod, String url) {
super(httpMethod, url);
this.setIncludeCredentials(true);
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/VoteProtocoleService.java
New file
0,0 → 1,21
package org.tela_botanica.del.client.services.rest;
 
import java.util.List;
 
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.services.rest.async.AjoutVoteProtocoleCallback;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
 
public interface VoteProtocoleService {
public List<VoteProtocole> getVote(String idImage);
 
public List<VoteProtocole> getVotePourImageEtProtocole(String idImage, String protocolName);
 
void ajouterVote(String idImage, VoteProtocole voteProtocole, AjoutVoteProtocoleCallback callback);
 
public void modifierVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback vpc);
public void supprimerVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback vpc);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ProtocoleService.java
New file
0,0 → 1,11
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
 
public interface ProtocoleService {
 
public void getProtocole(String nomProtocole);
 
public void getProtocoles(ProtocolesCallback pc);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/MotsClesServiceConcret.java
New file
0,0 → 1,77
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallback;
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
import org.tela_botanica.del.client.services.rest.async.SuppressionMotCleImageCallback;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
import com.google.gwt.http.client.URL;
 
public class MotsClesServiceConcret implements MotsClesService {
 
private String baseUrl;
public MotsClesServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public MotsClesServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void getMotsClesImage(String idImage,
ListeMotsClesImageCallBack callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "mots-cles" + assemblerChaineRequete(idImage));
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
private String assemblerChaineRequete(String idImage) {
String chaineRequete = "?masque.image="+idImage;
return chaineRequete;
}
 
@Override
public void ajouterMotCleImage(String idImage, String motCle,
AjoutMotsClesImageCallback callback) {
String urlService = baseUrl+"mots-cles/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjout(idImage, motCle);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
 
}
 
private String assemblerChaineRequeteAjout(String idImage, String motCle) {
return "image="+URL.encodeQueryString(idImage)+
"&mot_cle="+URL.encodeQueryString(motCle)+
"&"+URL.encodeQueryString("auteur.id")+"="+URL.encodeQueryString(CacheClient.getInstance().getUtilisateur().getId());
}
 
@Override
public void supprimerMotCleImage(String idMotCle, SuppressionMotCleImageCallback callback) {
String urlService = baseUrl+"mots-cles/"+idMotCle;
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
callback.setMode(ModeRequete.SUPPRESSION);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/PropositionDeterminationService.java
New file
0,0 → 1,13
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
 
public interface PropositionDeterminationService {
 
public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback);
public void supprimerProposition(PropositionDetermination proposition, SuppressionPropositionDeterminationCallback callback);
public void validerProposition(PropositionDetermination proposition, ValidationPropositionCallback validationPropositionCallback);
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ObservationServiceConcret.java
New file
0,0 → 1,56
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class ObservationServiceConcret implements ObservationService {
 
private String baseUrl;
 
public ObservationServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public ObservationServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void getObservations(InformationsRecherche infos, int debut, int fin, String statut, ObservationsCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "observations" + assemblerChaineRequete(infos, debut, fin, statut));
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin, String statut) {
 
String chaineRequete = "?navigation.depart=" + debut + "&navigation.limite=" + (fin - debut);
if (statut != null && !statut.equals("tous")) {
chaineRequete += "&masque.type=" + statut;
}
chaineRequete+= infos.versChaineRequete();
 
return chaineRequete;
}
 
@Override
public void getObservation(String idObservation,
ObservationsCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "observations/"+idObservation);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/UtilisateurService.java
New file
0,0 → 1,11
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
 
public interface UtilisateurService {
public void connecterUtilisateur(String login, String motDePasse, UtilisateurCallback callback);
public void deconnecterUtilisateur(UtilisateurCallback callback);
public void obtenirUtilisateur(UtilisateurCallback callback);
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ImagesParTaxonCallback.java
New file
0,0 → 1,24
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.modeles.ImageServiceResultat;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
*
* Objet passé en paramètre d'un service d'ajout de recuperation des images pour
* un taxon
*
* @author LIENS
*
*/
public abstract class ImagesParTaxonCallback extends PHPCallback<ImageServiceResultat> {
 
@Override
public ImageServiceResultat parserJSON(String retourService) {
ImageServiceResultat resultat = UtilitairesServiceResultat.parserImageServiceResultat(JSONParser.parseStrict(retourService));
return resultat;
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/SuppressionPropositionDeterminationCallback.java
New file
0,0 → 1,9
package org.tela_botanica.del.client.services.rest.async;
 
public abstract class SuppressionPropositionDeterminationCallback extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return null;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ListeVotesDeterminationCallback.java
New file
0,0 → 1,22
package org.tela_botanica.del.client.services.rest.async;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.modeles.VoteDetermination;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
/**
* Objet passé en paramètre d'un service de recuperation de la liste de votes
* sur une determination
*
* @author LIENS
*
*/
public abstract class ListeVotesDeterminationCallback extends PHPCallback<HashMap<String, VoteDetermination>> {
 
@Override
public HashMap<String, VoteDetermination> parserJSON(String retourService) {
return UtilitairesServiceResultat.parserRetourListeVotesDetermination(retourService);
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ListeCommentairesCallback.java
New file
0,0 → 1,22
package org.tela_botanica.del.client.services.rest.async;
 
import java.util.List;
 
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de recuperation d'une liste de commentaires
* @author LIENS
*
*/
public abstract class ListeCommentairesCallback extends PHPCallback<List<Commentaire>> {
 
@Override
public List<Commentaire> parserJSON(String retourService) {
return UtilitairesServiceResultat.parserCommentaires(JSONParser.parseStrict(retourService).isObject().get("resultats").isObject());
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ModificationPreferencesCallback.java
New file
0,0 → 1,15
package org.tela_botanica.del.client.services.rest.async;
 
/**
* Objet passé en paramètre d'un service de modification des préférences utilisateur
* @author LIENS
*
*/
public abstract class ModificationPreferencesCallback extends PHPCallback<String>{
 
@Override
public String parserJSON(String retourService) {
return null;
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/PHPCallback.java
New file
0,0 → 1,87
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.utils.StringUtils;
 
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONException;
import com.google.gwt.user.client.Window;
 
/**
* Cette classe correspond au retour asynchrone d'un webservice php qui retourne
* l'objet generique T si l'appel de service est un succcès
*
* @author LIENS
*
* @param <T>
*/
public abstract class PHPCallback<T> implements RequestCallback {
 
public enum ModeRequete {
AJOUT, MODIFICATION, SUPPRESSION, LECTURE
}
 
protected ModeRequete mode;
 
public PHPCallback() {
}
 
public void setMode(ModeRequete mode) {
this.mode = mode;
}
 
@Override
public void onResponseReceived(Request request, Response response) {
int statusCode = response.getStatusCode();
int codeAttendu = 500;
switch (mode) {
case AJOUT:
codeAttendu = 201;
break;
case MODIFICATION:
codeAttendu = 200;
break;
case SUPPRESSION:
codeAttendu = 200;
break;
case LECTURE:
codeAttendu = 200;
break;
default:
codeAttendu = 500;
break;
}
 
if (statusCode == codeAttendu) {
try {
T reponseParsee = parserJSON(response.getText());
surRetour(reponseParsee);
} catch (JSONException e) {
StringUtils.logChaine("Une erreur est survenue, le serveur a répondu : "+response.getText());
}
} else {
surErreur("Erreur " + statusCode + ": " + response.getText());
}
}
 
/**
* Cette methode permet de pareser le JSON retourné par le webservice pour
* le transformer en objet métier
*
* @param retourService
* @return
*/
public abstract T parserJSON(String retourService);
 
@Override
public void onError(Request request, Throwable exception) {
surErreur(exception.getMessage());
}
 
public abstract void surRetour(T objetRetour);
 
public void surErreur(String messageErreur) {
Window.alert(messageErreur);
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ProtocolesCallback.java
New file
0,0 → 1,22
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de recuperation de la liste des
* protocoles
*
* @author LIENS
*
*/
public abstract class ProtocolesCallback extends PHPCallback<ProtocoleServiceResultat> {
 
@Override
public ProtocoleServiceResultat parserJSON(String retourService) {
return UtilitairesServiceResultat.parserProtocoleServiceResultat(JSONParser.parseStrict(retourService));
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ListeMotsClesImageCallBack.java
New file
0,0 → 1,16
package org.tela_botanica.del.client.services.rest.async;
 
import java.util.List;
 
import org.tela_botanica.del.client.modeles.MotCle;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.user.client.Window;
 
public abstract class ListeMotsClesImageCallBack extends PHPCallback<List<MotCle>> {
@Override
public List<MotCle> parserJSON(String retourService) {
return UtilitairesServiceResultat.parserRetourListeMotsClesImage(JSONParser.parseStrict(retourService).isObject().get("resultats").isObject());
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/AjoutMotsClesImageCallback.java
New file
0,0 → 1,8
package org.tela_botanica.del.client.services.rest.async;
 
public abstract class AjoutMotsClesImageCallback extends PHPCallback<Void> {
@Override
public Void parserJSON(String retourService) {
return null;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ValidationPropositionCallback.java
New file
0,0 → 1,9
package org.tela_botanica.del.client.services.rest.async;
 
public abstract class ValidationPropositionCallback extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return retourService;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/SuppressionMotCleImageCallback.java
New file
0,0 → 1,9
package org.tela_botanica.del.client.services.rest.async;
 
public abstract class SuppressionMotCleImageCallback extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return null;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ListePreferencesCallback.java
New file
0,0 → 1,19
package org.tela_botanica.del.client.services.rest.async;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de chargement des préférences utilisateur
*
*/
public abstract class ListePreferencesCallback extends PHPCallback<HashMap<String, String>>{
 
@Override
public HashMap<String, String> parserJSON(String retourService) {
return UtilitairesServiceResultat.parserPreferencesUtilisateur(JSONParser.parseStrict(retourService));
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/AjoutVoteDeterminationCallback.java
New file
0,0 → 1,15
package org.tela_botanica.del.client.services.rest.async;
 
/**
* Objet passé en paramètre d'un service d'ajout de vote sur une determination
* @author LIENS
*
*/
public abstract class AjoutVoteDeterminationCallback extends PHPCallback<Void> {
 
@Override
public Void parserJSON(String retourService) {
return null;
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/VoteProtocoleCallback.java
New file
0,0 → 1,15
package org.tela_botanica.del.client.services.rest.async;
 
/**
* Objet passé en paramètre d'un service d'ajout de votes
* @author LIENS
*
*/
public abstract class VoteProtocoleCallback extends PHPCallback<Void> {
 
@Override
public Void parserJSON(String retourService) {
return null;
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/AjoutCommentaireCallback.java
New file
0,0 → 1,19
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service d'ajout de commentaire
* @author LIENS
*
*/
public abstract class AjoutCommentaireCallback extends PHPCallback<String>{
 
@Override
public String parserJSON(String retourService) {
return UtilitairesServiceResultat.parserRetourAjoutCommentaire(JSONParser.parseStrict(retourService).isObject());
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/AjoutVoteProtocoleCallback.java
New file
0,0 → 1,13
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
public abstract class AjoutVoteProtocoleCallback extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return UtilitairesServiceResultat.parserRetourAjoutVoteProtocole(JSONParser.parseStrict(retourService).isObject());
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/PropositionDeterminationCallBack.java
New file
0,0 → 1,19
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service d'ajout de determination
* @author LIENS
*
*/
public abstract class PropositionDeterminationCallBack extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return UtilitairesServiceResultat.parserRetourAjoutCommentaire(JSONParser.parseStrict(retourService).isObject());
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/UtilisateurCallback.java
New file
0,0 → 1,20
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de recuperation d'un utilisateur
* @author LIENS
*
*/
public abstract class UtilisateurCallback extends PHPCallback<Utilisateur> {
 
@Override
public Utilisateur parserJSON(String retourService) {
return UtilitairesServiceResultat.parserUtilisateurJson(JSONParser.parseStrict(retourService));
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/ObservationsCallback.java
New file
0,0 → 1,21
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de recuperation d'observations
*
* @author LIENS
*
*/
public abstract class ObservationsCallback extends PHPCallback<ObservationServiceResultat> {
 
@Override
public ObservationServiceResultat parserJSON(String retourService) {
return UtilitairesServiceResultat.parserObservationServiceResultat(JSONParser.parseStrict(retourService));
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/async/SuppressionCommentaireCallback.java
New file
0,0 → 1,9
package org.tela_botanica.del.client.services.rest.async;
 
public abstract class SuppressionCommentaireCallback extends PHPCallback<String> {
 
@Override
public String parserJSON(String retourService) {
return null;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/VoteDeterminationServiceConcret.java
New file
0,0 → 1,95
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback;
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
import com.google.gwt.user.client.Window;
 
public class VoteDeterminationServiceConcret implements VoteDeterminationService {
 
private String baseUrl;
 
public VoteDeterminationServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public VoteDeterminationServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {
String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
String idProposition = voteDetermination.getPropositionDetermination().getId();
//cas de la proposition de détermination crée automatiquement à partir de l'obs
if(idProposition == null) {
idProposition = "0";
}
String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
 
@Override
public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) {
String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId();
String idProposition = voteDetermination.getPropositionDetermination().getId();
//cas de la proposition de détermination crée automatiquement à partir de l'obs
if(idProposition == null) {
idProposition = "0";
}
String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = assemblerChaineRequeteAjoutModif(voteDetermination);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
 
private String assemblerChaineRequeteAjoutModif(VoteDetermination voteDetermination) {
String chaineRequete = "utilisateur="+voteDetermination.getContributeur()+"&"+
"valeur="+voteDetermination.getVote();
return chaineRequete;
}
 
@Override
public void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callback) {
String idObservation = propositionDetermination.getObservation().getId();
String idProposition = propositionDetermination.getId();
//cas de la proposition de détermination crée automatiquement à partir de l'obs
if(idProposition == null) {
idProposition = "0";
}
String urlService = baseUrl+"observations/"+idObservation+"/"+idProposition+"/vote/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/PreferencesServiceConcret.java
New file
0,0 → 1,70
package org.tela_botanica.del.client.services.rest;
 
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
import com.google.gwt.user.client.Window;
 
public class PreferencesServiceConcret implements PreferencesService {
private String baseUrl;
 
public PreferencesServiceConcret() {
this(new Config());
}
public PreferencesServiceConcret(Config config) {
this.baseUrl = config.getUrl("serviceUtilisateursBaseUrl");
}
 
@Override
public void modifierPreferences(Utilisateur utilisateur, HashMap<String, String> preferences, ModificationPreferencesCallback callback) {
String idUtilisateur = utilisateur.getId();
String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = assemblerRequeteModification(preferences);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
private String assemblerRequeteModification(HashMap<String, String> preferences) {
String chaine = "";
Iterator<String> it = preferences.keySet().iterator();
while (it.hasNext()) {
String cle = it.next();
if(!chaine.equals("")) {
chaine += "&";
}
chaine += cle+"="+preferences.get(cle);
}
return chaine;
}
 
@Override
public void chargerPreferences(Utilisateur utilisateur,
ListePreferencesCallback callback) {
String idUtilisateur = utilisateur.getId();
String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/CommentaireServiceConcret.java
New file
0,0 → 1,93
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback;
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
import com.google.gwt.http.client.URL;
 
public class CommentaireServiceConcret implements CommentaireService {
 
private String baseUrl;
 
public CommentaireServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public CommentaireServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback) {
String urlService = baseUrl+"commentaires/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(commentaire);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
private String assemblerChaineRequeteAjoutModif(Commentaire commentaire) {
 
String chaineRequete = "";
if(commentaire.getObservation() != null && commentaire.getObservation().getId() != null) {
chaineRequete += "observation="+URL.encodeQueryString(commentaire.getObservation().getId());
}
if(commentaire.getContributeur().getId() != null) {
chaineRequete += "&auteur.id="+URL.encodeQueryString(commentaire.getContributeur().getId());
}
 
if(commentaire.getParent() != null && commentaire.getParent().getId() != null) {
chaineRequete += "&id_parent="+URL.encodeQueryString(commentaire.getParent().getId());
PropositionDetermination propositionParente = commentaire.getPropositionParenteOuNulle();
if(propositionParente != null) {
chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
}
}
chaineRequete += "&texte="+URL.encodeQueryString(commentaire.getCommentaire())+
"&auteur.prenom="+URL.encodeQueryString(commentaire.getContributeur().getPrenom())+
"&auteur.nom="+URL.encodeQueryString(commentaire.getContributeur().getNom())+
"&auteur.courriel="+URL.encodeQueryString(commentaire.getContributeur().getAdresseEmail());
return chaineRequete;
}
 
public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) {
String urlService = baseUrl+"commentaires/?masque.proposition="+propositionDetermination.getId();
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, urlService);
commentaireCallback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, commentaireCallback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
 
@Override
public void supprimerCommentaire(Commentaire commentaire,
SuppressionCommentaireCallback callback) {
String urlService = baseUrl+"commentaires/"+commentaire.getId();
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
callback.setMode(ModeRequete.SUPPRESSION);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/VoteProtocoleServiceConcret.java
New file
0,0 → 1,81
package org.tela_botanica.del.client.services.rest;
 
import java.util.List;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.services.rest.async.AjoutVoteProtocoleCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class VoteProtocoleServiceConcret implements VoteProtocoleService {
 
private String baseUrl;
 
public VoteProtocoleServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public VoteProtocoleServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public List<VoteProtocole> getVote(String idImage) {
// TODO Auto-generated method stub
return null;
}
 
@Override
public List<VoteProtocole> getVotePourImageEtProtocole(String idImage,
String protocolName) {
// TODO Auto-generated method stub
return null;
}
 
@Override
public void ajouterVote(String idImage, VoteProtocole voteProtocole, AjoutVoteProtocoleCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, baseUrl+"images/"+idImage+"/votes/");
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(voteProtocole);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
 
private String assemblerChaineRequeteAjoutModif(VoteProtocole voteProtocole) {
String chaineRequete = "utilisateur="+voteProtocole.getContributeur()+"&"+
"protocole="+voteProtocole.getIdProtocole()+"&"+
"valeur="+voteProtocole.getVote();
return chaineRequete;
}
@Override
public void modifierVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, baseUrl+"images/"+idImage+"/votes/");
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = assemblerChaineRequeteAjoutModif(voteProtocole);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
 
@Override
public void supprimerVote(String idImage, VoteProtocole voteProtocole,
VoteProtocoleCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, baseUrl+"images/"+idImage+"/votes/"+voteProtocole.getId());
callback.setMode(ModeRequete.SUPPRESSION);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ImageService.java
New file
0,0 → 1,14
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
 
public interface ImageService {
 
public void getImagesEfloreParTaxon(String nomTaxon, ImagesParTaxonCallback callback);
 
public void getImagesParTaxon(InformationsRecherche informationsRecherche, int debut, int fin, ImagesParTaxonCallback callback);
 
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ProtocoleServiceConcret.java
New file
0,0 → 1,38
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class ProtocoleServiceConcret implements ProtocoleService {
 
private String baseUrl;
public ProtocoleServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public ProtocoleServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void getProtocole(String nomProtocole) {
//TODO: voir si l'on aura besoin de ne retourner qu'un seul protocole
}
 
@Override
public void getProtocoles(ProtocolesCallback callback) {
//TODO: inventer un système de cache car sinon c'est chargé à fois qu'on accède à la partie
// recherche image
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "protocoles");
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/PropositionDeterminationServiceConcret.java
New file
0,0 → 1,111
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback;
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
import com.google.gwt.http.client.URL;
 
public class PropositionDeterminationServiceConcret implements
PropositionDeterminationService {
private String baseUrl;
 
public PropositionDeterminationServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public PropositionDeterminationServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
 
@Override
public void ajouterProposition(PropositionDetermination proposition, PropositionDeterminationCallBack callback) {
String urlService = baseUrl+"commentaires/";
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.PUT, urlService);
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(proposition);
try {
// TODO urlencoder toutes les requetes;
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
private String assemblerChaineRequeteAjoutModif(PropositionDetermination proposition) {
 
String chaineRequete = "";
//TODO: tests sur les num nn et nt et la famille quand ils seront implémentés
chaineRequete += "nom_sel="+URL.encodeQueryString(proposition.getEspece())+
"&auteur.prenom="+URL.encodeQueryString(proposition.getContributeur().getPrenom())+
"&auteur.nom="+URL.encodeQueryString(proposition.getContributeur().getNom())+
"&auteur.courriel="+URL.encodeQueryString(proposition.getContributeur().getAdresseEmail());
if(proposition.getNumNomenclatural() != null) {
chaineRequete += "&nom_sel_nn="+URL.encodeQueryString(proposition.getNumNomenclatural());
}
if(proposition.getReferentiel() != null && !proposition.getReferentiel().equals("tous")) {
chaineRequete += "&nom_referentiel="+URL.encodeQueryString(proposition.getReferentiel());
}
if (proposition.getObservation() != null && proposition.getObservation().getId() != null) {
chaineRequete += "&observation="+URL.encodeQueryString(proposition.getObservation().getId());
}
if (proposition.getContributeur().getId() != null) {
chaineRequete += "&auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
}
if (proposition.getParent() != null && proposition.getParent().getId() != null) {
chaineRequete += "&id_parent="+URL.encodeQueryString(proposition.getParent().getId());
PropositionDetermination propositionParente = proposition.getPropositionParenteOuNulle();
if(propositionParente != null) {
chaineRequete += "&proposition="+URL.encodeQueryString(propositionParente.getId());
}
}
if (proposition.getCommentaire() != null) {
chaineRequete += "&texte="+URL.encodeQueryString(proposition.getCommentaire());
}
 
return chaineRequete;
}
 
@Override
public void supprimerProposition(PropositionDetermination proposition, SuppressionPropositionDeterminationCallback callback) {
String urlService = baseUrl+"commentaires/"+proposition.getId();
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.DELETE, urlService);
callback.setMode(ModeRequete.SUPPRESSION);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
@Override
public void validerProposition(PropositionDetermination proposition, ValidationPropositionCallback callback) {
String urlService = baseUrl+"determinations/valider-determination/"+proposition.getId();
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = "auteur.id="+URL.encodeQueryString(proposition.getContributeur().getId());
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/UtilisateurServiceConcret.java
New file
0,0 → 1,54
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class UtilisateurServiceConcret implements UtilisateurService {
private String baseUrl;
public UtilisateurServiceConcret() {
this(new Config());
}
public UtilisateurServiceConcret(Config config) {
this.baseUrl = config.getUrl("serviceUtilisateursBaseUrl");
}
@Override
public void connecterUtilisateur(String login, String motDePasse, UtilisateurCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "utilisateurs/" + login + "/" + motDePasse);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
@Override
public void deconnecterUtilisateur(UtilisateurCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "utilisateurs/deconnecter");
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
@Override
public void obtenirUtilisateur(UtilisateurCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "utilisateurs/");
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/MotsClesService.java
New file
0,0 → 1,15
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallback;
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack;
import org.tela_botanica.del.client.services.rest.async.SuppressionMotCleImageCallback;
 
public interface MotsClesService {
public void getMotsClesImage(String idImage, ListeMotsClesImageCallBack listeMotsClesImageCallBack);
public void ajouterMotCleImage(String idImage, String motCle, AjoutMotsClesImageCallback ajoutMotsClesImageCallBack);
 
public void supprimerMotCleImage(String idMotCle, SuppressionMotCleImageCallback callback);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ObservationService.java
New file
0,0 → 1,13
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
 
public interface ObservationService {
 
public void getObservations(InformationsRecherche informationsRecherche, int debut, int fin, String statut, ObservationsCallback callback);
 
public void getObservation(String idObservation,
ObservationsCallback observationsCallback);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/VoteDeterminationService.java
New file
0,0 → 1,14
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback;
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback;
 
public interface VoteDeterminationService {
 
void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback);
public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback);
void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callBack);
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/ImageServiceConcret.java
New file
0,0 → 1,68
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class ImageServiceConcret implements ImageService {
 
private String baseUrl;
public ImageServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public ImageServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
@Override
public void getImagesEfloreParTaxon(String taxon, ImagesParTaxonCallback callback) {
 
// RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET,
// serverUrl+"ImagesEflore");
// adresse ajoutee temporairement le temps de faire fonctionner le
// service d'images eflore
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "images?nom_taxon=" + taxon);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
@Override
public void getImagesParTaxon(InformationsRecherche infos, int debut, int fin, ImagesParTaxonCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "images" + assemblerChaineRequete(infos, debut, fin));
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback) {
// TODO implementer avec une methode realiste
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "observations/"+observationId);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
// TODO: handle exception
}
}
 
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin) {
 
String chaineRequete = "?navigation.depart=" + debut + "&navigation.limite=" + (fin - debut);
chaineRequete+= infos.versChaineRequete();
 
return chaineRequete;
}
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/PreferencesService.java
New file
0,0 → 1,14
package org.tela_botanica.del.client.services.rest;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
 
public interface PreferencesService {
public void modifierPreferences(Utilisateur utilisateur, HashMap<String, String> preferences, ModificationPreferencesCallback modificationPreferencesCallback);
public void chargerPreferences(Utilisateur utilisateur, ListePreferencesCallback listePreferencesCallbackCallback);
 
}
/tags/v1.1-helium/src/org/tela_botanica/del/client/services/rest/CommentaireService.java
New file
0,0 → 1,13
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback;
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback;
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback;
 
public interface CommentaireService {
public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback);
public void supprimerCommentaire(Commentaire commentaire, SuppressionCommentaireCallback callback);
public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback);
}