/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); |
} |
/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() { |