Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 822 → Rev 823

/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVotePresenteur.java
6,16 → 6,12
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
import org.tela_botanica.del.client.utils.MockDatasource;
 
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasChangeHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
49,6 → 45,9
private int valeurVoteUtilisateur = -1;
private int valeurVoteTotal = 0;
//TODO: on devrait passer un conteneur qui permet d'accéder à ces services
private VoteProtocoleService voteProtocoleService = new VoteProtocoleServiceConcret();
public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue) {
this.vue = vue;
this.protocole = protocole;
100,14 → 99,32
}
public void enregistrerVote() {
VoteProtocole voteProtocole = new VoteProtocole();
final VoteProtocole voteProtocole = new VoteProtocole();
voteProtocole.setProtocole(this.protocole);
voteProtocole.setVote(valeurVoteUtilisateur);
voteProtocole.setContributeur(CacheClient.getInstance().getUtilisateur().getId());
// voteProtocoleService.saveVote(idImage, voteProtocole);
// TODO: sauver vote asynchrone
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
String idContributeur = CacheClient.getInstance().getUtilisateur().getId();
voteProtocole.setContributeur(idContributeur);
// TODO: Mettre un message de chargement pendant l'envoi du vote ?
// C'est très rapide mais bon
VoteProtocoleCallback vpc = new VoteProtocoleCallback() {
@Override
public void surRetour(String messageRetour) {
//TODO: voir si l'on affiche un message en cas de succès ?
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
}
@Override
public void surErreur(String messageErreur) {
Window.alert(messageErreur);
}
};
if(image.utilisateurAVotePourProtocole(this.protocole.getId()+"", idContributeur)) {
voteProtocoleService.modifierVote(image.getIdImage(), voteProtocole, vpc);
} else {
voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole, vpc);
}
}
public int getValeurVoteTotal() {
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java
26,6 → 26,7
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
 
public class MockDatasource implements ObservationService, ImageService, ProtocoleService, VoteProtocoleService, PropositionDeterminationService {
 
323,17 → 324,8
return voteProtocolesLocal;
}
 
/*
* (non-Javadoc)
*
* @see org.tela_botanica.del.client.utils.ObservationService#saveVote(org.
* tela_botanica.del.client.modeles.VoteProtocole)
*/
@Override
public void saveVote(String idImage, VoteProtocole voteProtocole) {
// TODO implement method
}
 
 
/*
* (non-Javadoc)
*
388,4 → 380,18
}
 
@Override
public void ajouterVote(String idImage, VoteProtocole voteProtocole,
VoteProtocoleCallback callback) {
// TODO Auto-generated method stub
}
 
@Override
public void modifierVote(String idImage, VoteProtocole voteProtocole,
VoteProtocoleCallback vpc) {
// TODO Auto-generated method stub
}
 
}
/trunk/src/org/tela_botanica/del/client/services/rest/async/VoteProtocoleCallback.java
New file
0,0 → 1,58
package org.tela_botanica.del.client.services.rest.async;
 
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.user.client.Window;
 
public abstract class VoteProtocoleCallback implements RequestCallback {
public enum ModeRequete {
AJOUT, MODIFICATION
}
protected ModeRequete mode;
public VoteProtocoleCallback(ModeRequete mode) {
this.mode = mode;
}
 
public VoteProtocoleCallback() {
// TODO Auto-generated constructor stub
}
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;
default:
codeAttendu = 500;
break;
}
if (statusCode == codeAttendu) {
surRetour(response.getText());
} else {
surErreur("Erreur " + statusCode + ": " + response.getText());
}
}
 
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
}
public abstract void surRetour(String messageRetour);
public abstract void surErreur(String messageErreur);
}
/trunk/src/org/tela_botanica/del/client/services/rest/VoteProtocoleServiceConcret.java
New file
0,0 → 1,67
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.VoteProtocoleCallback;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback.ModeRequete;
import com.google.gwt.http.client.RequestBuilder;
 
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, VoteProtocoleCallback callback) {
RequestBuilder rb = new RequestBuilder(RequestBuilder.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) {
RequestBuilder rb = new RequestBuilder(RequestBuilder.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 ?
}
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/VoteProtocoleService.java
3,13 → 3,16
import java.util.List;
 
import org.tela_botanica.del.client.modeles.VoteProtocole;
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);
 
public void saveVote(String idImage, VoteProtocole voteProtocole);
void ajouterVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback callback);
 
public void modifierVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback vpc);
 
}