Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1470 → Rev 1471

/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java
1114,6 → 1114,15
String station();
 
/**
* Translated "Supprimer votre vote".
*
* @return translated "Supprimer votre vote"
*/
@DefaultStringValue("Supprimer votre vote")
@Key("supprimerVote")
String supprimerVote();
 
/**
* Translated "Tag".
*
* @return translated "Tag"
1402,6 → 1411,15
String votePrisEnCompte();
 
/**
* Translated "Vote supprimé".
*
* @return translated "Vote supprimé"
*/
@DefaultStringValue("Vote supprimé")
@Key("voteSupprime")
String voteSupprime();
 
/**
* Translated "Moyenne des votes".
*
* @return translated "Moyenne des votes"
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
51,8 → 51,10
aucunResultat = Aucun resultat trouvé
par = par
publiee = Publiée le
supprimerVote = Supprimer votre vote
votePrisEnCompte = Vote pris en compte
voteModifie = Vote modifié
voteSupprime = Vote supprimé
ajouterObservation = Proposez une observation à déterminer
ajouterImage = Ajouter une image
legendeAjouterObservation = Soumettez au réseau une observation à déterminer \n Si vous avez déjà un carnet en ligne, ajoutez votre observation dans le projet "aDeterminer"
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
389,6 → 389,7
JSONObject voteEnCours = votesPourCeProtocoles.get(itVotes.next()).isObject();
VoteProtocole vd = new VoteProtocole();
vd.setContributeur(voteEnCours.get("auteur.id").isString().stringValue());
vd.setId(voteEnCours.get("vote.id").isString().stringValue());
// TODO récupérer la date du vote et la parser
vd.setDate(parserDateObservation(getValeurOuVide(voteEnCours, "date")));
int valeurVote = Integer.parseInt(voteEnCours.get("vote").isString().stringValue());
669,4 → 670,12
}
return motsCles;
}
 
public static String parserRetourAjoutVoteProtocole(JSONObject retour) {
String id = "";
if (retour != null) {
id = getValeurOuVide(retour, "id_vote");
}
return id;
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/VoteProtocoleService.java
3,6 → 3,7
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 {
11,8 → 12,10
 
public List<VoteProtocole> getVotePourImageEtProtocole(String idImage, String protocolName);
 
void ajouterVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback callback);
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);
 
}
/trunk/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());
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/VoteProtocoleServiceConcret.java
4,6 → 4,7
 
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;
 
36,7 → 37,7
}
 
@Override
public void ajouterVote(String idImage, VoteProtocole voteProtocole, VoteProtocoleCallback callback) {
public void ajouterVote(String idImage, VoteProtocole voteProtocole, AjoutVoteProtocoleCallback callback) {
RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, baseUrl+"images/"+idImage+"/votes/");
callback.setMode(ModeRequete.AJOUT);
String chainePost = assemblerChaineRequeteAjoutModif(voteProtocole);
53,7 → 54,7
"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/");
65,4 → 66,16
//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) {
RequestBuilder rb = new RequestBuilder(RequestBuilder.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 ?
}
}
}
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/moyenne.css
31,7 → 31,8
border: none;
padding-left: 16px;
padding-top: 16px;
margin-left: 5px
margin-left: 5px;
cursor: pointer;
}
 
.zoneNoteGlobale {
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVoteVue.ui.xml
19,9 → 19,9
<g:FocusPanel ui:field="voter" styleName="{style.barreVote}"/>
<g:HTMLPanel ui:field="votePrisEnCompte"><g:Label text="{constants.votePrisEnCompte}"></g:Label></g:HTMLPanel>
<g:HTMLPanel ui:field="voteModifie"><g:Label text="{constants.voteModifie}"></g:Label></g:HTMLPanel>
<g:HTMLPanel ui:field="voteSupprime"><g:Label text="{constants.voteSupprime}"></g:Label></g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneBoutonsVote}">
<g:Button ui:field="boutonVoter" text="" styleName="{style.validerVote} boutonOK"></g:Button>
<g:Button ui:field="boutonAnnuler" text=" " styleName="{style.annuler}"></g:Button>
<g:Button ui:field="boutonAnnuler" title="{constants.supprimerVote}" styleName="{style.annuler}"></g:Button>
</g:HTMLPanel>
</g:HorizontalPanel>
</g:HTMLPanel>
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVotePresenteur.java
8,7 → 8,13
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.GestionnaireEvenementSuppressionCommentaire;
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
import org.tela_botanica.del.client.services.rest.async.AjoutVoteProtocoleCallback;
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback;
 
import com.google.gwt.event.dom.client.ClickEvent;
17,6 → 23,7
import com.google.gwt.event.dom.client.HasMouseMoveHandlers;
import com.google.gwt.event.dom.client.MouseMoveEvent;
import com.google.gwt.event.dom.client.MouseMoveHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
24,8 → 31,6
public class MoyenneVotePresenteur {
 
public interface Vue extends IsWidget {
public HasClickHandlers getBoutonVoter();
 
public HasClickHandlers getBoutonAnnuler();
 
public HasClickHandlers getVotes();
32,12 → 37,8
 
public int getValeurVote();
 
public void afficherBoutonVoter();
 
public void afficherBoutonAnnuler();
 
public void masquerBoutonVoter();
 
public void masquerBoutonAnnuler();
 
public void afficherNbVotes();
64,6 → 65,12
public void masquerZoneVoter();
 
public void setNoteGeneraleToolTip(double valeurVoteTotalPrecise);
 
void desactiverInteractionVote();
 
void activerInteractionVote();
 
void afficherVoteSupprime();
}
 
private Vue vue;
111,7 → 118,7
@Override
public void onClick(ClickEvent event) {
valeurVoteUtilisateur = vue.getValeurVote();
vue.afficherBoutonVoter();
enregistrerVote();
vue.afficherBoutonAnnuler();
vue.masquerNbVotes();
}
121,21 → 128,17
@Override
public void onClick(ClickEvent event) {
valeurVoteUtilisateur = valeurVoteDefaut;
vue.masquerBoutonVoter();
vue.masquerBoutonAnnuler();
supprimerVote();
vue.afficherNbVotes();
vue.reinitialiserVotes();
}
});
 
vue.getBoutonVoter().addClickHandler(new ClickHandler() {
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
@Override
public void onClick(ClickEvent event) {
enregistrerVote();
vue.masquerBoutonVoter();
vue.masquerBoutonAnnuler();
vue.afficherNbVotes();
vue.reinitialiserVotes();
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
rafraichirVue();
}
});
}
145,6 → 148,7
}
 
public void enregistrerVote() {
vue.desactiverInteractionVote();
final VoteProtocole voteProtocole = new VoteProtocole();
voteProtocole.setProtocole(this.protocole);
voteProtocole.setVote(valeurVoteUtilisateur);
151,31 → 155,57
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(Void objetRetour) {
// TODO: voir si l'on affiche un message en cas de succès ?
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
}
 
};
 
//TODO: ceci devrait pouvoir être factorisé
if (image.utilisateurAVotePourProtocole(this.protocole.getId() + "",
idContributeur)) {
voteProtocole.setId(image.getVotesProtocoles(this.protocole.getId()+"").get(idContributeur).getId());
VoteProtocoleCallback vpc = new VoteProtocoleCallback() {
@Override
public void surRetour(Void objetRetour) {
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
vue.afficherVoteModifie();
vue.activerInteractionVote();
}
};
voteProtocoleService.modifierVote(image.getIdImage(),
voteProtocole, vpc);
vue.afficherVoteModifie();
} else {
AjoutVoteProtocoleCallback vpc = new AjoutVoteProtocoleCallback() {
@Override
public void surRetour(String idVote) {
voteProtocole.setId(idVote);
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
vue.afficherVotePrisEnCompte();
vue.activerInteractionVote();
}
};
voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole,
vpc);
vue.afficherVotePrisEnCompte();
}
}
public void supprimerVote() {
vue.desactiverInteractionVote();
final String idContributeur = CacheClient.getInstance().getUtilisateur()
.getId();
final VoteProtocole voteProtocole = image.getVotesProtocoles(protocole.getId()).get(idContributeur);
VoteProtocoleCallback vpc = new VoteProtocoleCallback() {
@Override
public void surRetour(Void objetRetour) {
// TODO: voir si l'on affiche un message en cas de succès ?
image.supprimerVoteProtocole(protocole.getId() + "", idContributeur);
rafraichirVue();
vue.afficherVoteSupprime();
vue.activerInteractionVote();
}
 
};
voteProtocoleService.supprimerVote(image.getIdImage(), voteProtocole, vpc);
}
 
public int getValeurVoteTotal() {
return valeurVoteTotal;
}
195,6 → 225,10
voteUtilisateur = voteProtocole.getVote();
vue.masquerZoneVoter();
}
if(image.utilisateurAVotePourProtocole(protocole.getId()+"", CacheClient.getInstance().getUtilisateur().getId())) {
vue.afficherBoutonAnnuler();
}
 
VoteFleurPresenteur presenteurFleur = new VoteFleurPresenteur(
new VoteFleurVue());
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVoteVue.java
1,21 → 1,14
package org.tela_botanica.del.client.composants.votes.moyennevotes;
 
import java.util.List;
 
import org.cobogw.gwt.user.client.ui.Rating;
import org.tela_botanica.del.client.composants.votes.barrerepartition.InfoBulleAnim;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.VoteProtocole;
 
import com.google.gwt.core.client.GWT;
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.event.dom.client.HasMouseMoveHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
37,18 → 30,19
private int valeurOrigine;
private InfoBulleAnim animerVotePrisEnCompte;
private InfoBulleAnim animerVoteModifie;
private InfoBulleAnim animerVoteSupprime;
@UiField
FocusPanel voter;
 
@UiField
Panel votePrisEnCompte, voteModifie, zoneFleur;
Panel votePrisEnCompte, voteModifie, voteSupprime, zoneFleur;
@UiField
Label nbVotes, protocole, noteGenerale;
 
@UiField
Button boutonVoter, boutonAnnuler;
Button boutonAnnuler;
@UiField
Label zoneVoter;
59,16 → 53,12
votes.setReadOnly(false);
voter.add(votes);
masquerBoutonAnnuler();
masquerBoutonVoter();
votePrisEnCompte.setVisible(false);
animerVotePrisEnCompte = new InfoBulleAnim(votePrisEnCompte);
animerVoteModifie = new InfoBulleAnim(voteModifie);
animerVoteSupprime = new InfoBulleAnim(voteSupprime);
}
public HasClickHandlers getBoutonVoter() {
return boutonVoter;
}
public HasClickHandlers getBoutonAnnuler() {
return boutonAnnuler;
}
84,19 → 74,11
public int getValeurVote() {
return votes.getValue();
}
public void afficherBoutonVoter() {
boutonVoter.setVisible(true);
}
 
public void afficherBoutonAnnuler() {
boutonAnnuler.setVisible(true);
}
public void masquerBoutonVoter() {
boutonVoter.setVisible(false);
}
public void masquerBoutonAnnuler() {
boutonAnnuler.setVisible(false);
}
157,6 → 139,12
animerVoteModifie.run(2000);
}
@Override
public void afficherVoteSupprime() {
voteSupprime.setStyleName("voteSupprime");
animerVoteSupprime.run(2000);
}
public HasMouseMoveHandlers getZoneVoter() {
return zoneVoter;
}
164,4 → 152,20
public void masquerZoneVoter() {
zoneVoter.setVisible(false);
}
@Override
public void desactiverInteractionVote() {
votes.setReadOnly(true);
boutonAnnuler.setEnabled(false);
boutonAnnuler.addStyleName("elementMasque");
votes.addStyleName("elementMasque");
}
@Override
public void activerInteractionVote() {
votes.setReadOnly(false);
boutonAnnuler.setEnabled(true);
boutonAnnuler.removeStyleName("elementMasque");
votes.removeStyleName("elementMasque");
}
}
/trunk/src/org/tela_botanica/del/client/modeles/Image.java
55,6 → 55,12
getVotesProtocoles(voteProcotole.getIdProtocole()).put(voteProcotole.getContributeur(), voteProcotole);
}
public void supprimerVoteProtocole(String idProtocole, String idContributeur) {
if(utilisateurAVotePourProtocole(idProtocole, idContributeur)) {
votesProtocoles.get(idProtocole).remove(idContributeur);
}
}
public boolean utilisateurAVotePourProtocole(String idProtocole, String idContributeur) {
boolean aVote = false;
if (votesProtocoles.containsKey(idProtocole) && votesProtocoles.get(idProtocole).containsKey(idContributeur)) {