/branches/v1.5-carbone/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); |
} |
} |
/branches/v1.5-carbone/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 ? |
} |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/CommentaireServiceConcret.java |
---|
New file |
0,0 → 1,91 |
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/?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 ? |
} |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/ImageService.java |
---|
New file |
0,0 → 1,18 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.modeles.Image; |
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.SuppressionImageCallback; |
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); |
public void supprimer(Image image, SuppressionImageCallback callback); |
} |
/branches/v1.5-carbone/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 ? |
} |
} |
} |
/branches/v1.5-carbone/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 |
} |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/PropositionDeterminationServiceConcret.java |
---|
New file |
0,0 → 1,112 |
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())+ |
"&validateur.id="+URL.encodeQueryString(proposition.getValideePar()); |
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 ? |
} |
} |
} |
/branches/v1.5-carbone/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 |
} |
} |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/ObservationService.java |
---|
New file |
0,0 → 1,18 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack; |
public interface ObservationService { |
public void getObservations(InformationsRecherche informationsRecherche, int debut, int fin, String statut, ObservationsCallback callback); |
public void getObservation(String idObservation, ObservationsCallback observationsCallback); |
public void depublier(Observation observation, DepublicationObservationCallBack callback); |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/ImageServiceConcret.java |
---|
New file |
0,0 → 1,75 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.Image; |
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.SuppressionImageCallback; |
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, 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; |
} |
public void supprimer(Image image, SuppressionImageCallback callback) { |
String urlService = baseUrl+"images/"+image.getIdImage(); |
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 ? |
} |
} |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/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 = "?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 ? |
} |
} |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/ObservationServiceConcret.java |
---|
New file |
0,0 → 1,69 |
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.modeles.Observation; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack; |
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 |
} |
} |
public void depublier(Observation observation, DepublicationObservationCallBack callback) { |
String urlService = baseUrl+"observations/"+observation.getId(); |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService); |
callback.setMode(ModeRequete.MODIFICATION); |
String chainePost = "transmission=0"; |
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 ? |
} |
} |
} |
/branches/v1.5-carbone/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); |
} |
/branches/v1.5-carbone/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); |
} |
} |
/branches/v1.5-carbone/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()); |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/async/PHPCallback.java |
---|
New file |
0,0 → 1,94 |
package org.tela_botanica.del.client.services.rest.async; |
import java.util.Arrays; |
import java.util.List; |
import org.tela_botanica.del.client.utils.StringUtils; |
import com.google.gwt.core.shared.GWT; |
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(); |
List<Integer> codeAttendu = null; |
switch (mode) { |
case AJOUT: |
codeAttendu = Arrays.asList(200, 201, 204); |
break; |
case MODIFICATION: |
codeAttendu = Arrays.asList(200, 201, 204); |
break; |
case SUPPRESSION: |
codeAttendu = Arrays.asList(200); |
break; |
case LECTURE: |
codeAttendu = Arrays.asList(200); |
break; |
default: |
codeAttendu = Arrays.asList(500); |
break; |
} |
GWT.log("Codes attendus:"+codeAttendu.toString()); |
GWT.log("Code:"+statusCode); |
if (codeAttendu.contains(statusCode)) { |
GWT.log("Code: OK"); |
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) { |
GWT.log("Erreur service : "+messageErreur); |
Window.alert(messageErreur); |
} |
} |
/branches/v1.5-carbone/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)); |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/async/SuppressionImageCallback.java |
---|
New file |
0,0 → 1,12 |
package org.tela_botanica.del.client.services.rest.async; |
import com.google.gwt.json.client.JSONParser; |
public abstract class SuppressionImageCallback extends PHPCallback<String> { |
@Override |
public String parserJSON(String retourService) { |
String reponse = JSONParser.parseStrict(retourService).isString().stringValue(); |
return reponse; |
} |
} |
/branches/v1.5-carbone/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()); |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/rest/async/DepublicationObservationCallBack.java |
---|
New file |
0,0 → 1,13 |
package org.tela_botanica.del.client.services.rest.async; |
import com.google.gwt.json.client.JSONParser; |
public abstract class DepublicationObservationCallBack extends PHPCallback<String> { |
@Override |
public String parserJSON(String retourService) { |
String reponse = JSONParser.parseStrict(retourService).isString().stringValue(); |
return reponse; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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)); |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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()); |
} |
} |
/branches/v1.5-carbone/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()); |
} |
} |
/branches/v1.5-carbone/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()); |
} |
} |
/branches/v1.5-carbone/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)); |
} |
} |
/branches/v1.5-carbone/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)); |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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 ? |
} |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/CalculVoteDeterminationService.java |
---|
New file |
0,0 → 1,79 |
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 scoreVote = 0; |
if (votes.size() > 0 && nbVotants > 0) { |
Set<String> cles = votes.keySet(); |
for (String cle : cles) { |
String idAuteur = cle; |
boolean voteEstPositif = votes.get(cle).getVote() == 1; |
// un votant identifiant compte comme deux votants supplémentaires |
// il a donc un vote 3 fois supérieur |
int valeurVote = estUnAuteurIdentifie(idAuteur) ? 3 : 1; |
scoreVote += voteEstPositif ? valeurVote : -valeurVote; |
} |
} |
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; |
} |
} |
/branches/v1.5-carbone/src/org/tela_botanica/del/client/services/ReferentielService.java |
---|
New file |
0,0 → 1,31 |
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()); |
referentiels.put("isfan", I18n.getVocabulary().referentielIsfan()); |
referentiels.put("apd", I18n.getVocabulary().referentielApd()); |
} |
return referentiels; |
} |
} |