Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 627 → Rev 629

/trunk/src/org/tela_botanica/del/client/modeles/Image.java
47,25 → 47,34
this.idImage = idImage;
}
 
private Map<String, List<VoteProtocole>> voteProtocoles = new HashMap<String, List<VoteProtocole>>();
// Impossible d'utiliser le type générique Map ici, pourquoi ? je ne sais pas !
private HashMap<String, HashMap<String, VoteProtocole>> votesProtocoles = new HashMap<String, HashMap<String, VoteProtocole>>();
 
public List<VoteProtocole> getVoteProtocoles(String id_protocole) {
if(!voteProtocoles.containsKey(""+id_protocole) || voteProtocoles.get(""+id_protocole) == null) {
voteProtocoles.put(""+id_protocole, new ArrayList<VoteProtocole>());
public void ajouterVoteProtocole(VoteProtocole voteProcotole) {
getVotesProtocoles(voteProcotole.getIdProtocole()).put(voteProcotole.getContributeur(), voteProcotole);
}
public HashMap<String, VoteProtocole> getVotesProtocoles(String id_protocole) {
if(!votesProtocoles.containsKey(""+id_protocole) || votesProtocoles.get(""+id_protocole) == null) {
votesProtocoles.put(""+id_protocole, new HashMap<String, VoteProtocole>());
}
return voteProtocoles.get(id_protocole+"");
return votesProtocoles.get(id_protocole+"");
}
public List<VoteProtocole> getVotesProtocoles(int id_protocole) {
return getVoteProtocoles(id_protocole+"");
public HashMap<String, VoteProtocole> getVotesProtocoles(int id_protocole) {
return getVotesProtocoles(id_protocole+"");
}
public void setVoteProtocoles(Map<String, List<VoteProtocole>> voteProtocoles) {
this.voteProtocoles = voteProtocoles;
public HashMap<String, HashMap<String, VoteProtocole>> getListeVotesProtocoles() {
return votesProtocoles;
}
public void setVoteProtocoles(HashMap<String, HashMap<String, VoteProtocole>> voteProtocoles) {
this.votesProtocoles = voteProtocoles;
}
 
public void setVoteProtocoles(String id_protocole, List<VoteProtocole> voteProtocoles) {
this.voteProtocoles.put(id_protocole, voteProtocoles);
public void setVoteProtocoles(String id_protocole, HashMap<String, VoteProtocole> voteProtocoles) {
this.votesProtocoles.put(id_protocole, voteProtocoles);
}
 
public Observation getObservation() {
/trunk/src/org/tela_botanica/del/client/modeles/VoteProtocole.java
11,8 → 11,12
public Protocole getProtocole() {
return protocole;
}
 
public void setProtocole(Protocole protocole) {
this.protocole = protocole;
}
public int getIdProtocole() {
return getProtocole().getId();
}
}
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
64,9 → 64,9
 
 
#ecran determination
proposerSaDetermination = Proposer votre détermination
proposerSaDetermination = Proposer une détermination
infoProposerDetermination = Pour proposer une détermination, remplissez les champs ci-dessous et cliquez sur le bouton Proposer !
boutonProposer = Valider ma détermination
boutonProposer = Valider
infoVous = Vos nom et prénom
fiabilite = Fiabilité
infoFiabilite = Indiquez votre niveau de certitude vis-à-vis de votre proposition.
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
71,10 → 71,10
return propositionDetermination;
}
public static Map<String, List<VoteProtocole>> parserVotesProtocoles(JSONArray votes) {
public static HashMap<String, HashMap<String,VoteProtocole>> parserVotesProtocoles(JSONArray votes) {
int nbVotes = votes.size();
Map<String, List<VoteProtocole>> votesProtocoles = new HashMap<String, List<VoteProtocole>>();
HashMap<String, HashMap<String,VoteProtocole>> votesProtocoles = new HashMap<String, HashMap<String,VoteProtocole>>();
for (int j = 0; j < nbVotes; j++) {
JSONObject vote = votes.get(j).isObject();
VoteProtocole vd = new VoteProtocole();
86,9 → 86,9
vd.setVote(valeurVote);
if(!votesProtocoles.containsKey(idProtocoleVote)) {
votesProtocoles.put(idProtocoleVote, new ArrayList<VoteProtocole>());
votesProtocoles.put(idProtocoleVote, new HashMap<String,VoteProtocole>());
}
votesProtocoles.get(idProtocoleVote).add(vd);
votesProtocoles.get(idProtocoleVote).put(vd.getContributeur(), vd);
}
return votesProtocoles;
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java
1,5 → 1,6
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images;
 
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
26,6 → 27,7
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.votes.MoyenneVotePresenteur;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.votes.MoyenneVoteVue;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
58,7 → 60,7
private Vue vue;
 
private final Image image;
private boolean detailsOpen = false;
private boolean detailsOuverts = false;
 
private Protocole protocole;
 
72,15 → 74,15
composite.add(vue.asWidget());
vue.loadImage(image);
new MetadonneesPresenteur(new MetadonneesVue(), image.getObservation(), ModeRecherche.MODE_IMAGE).go(vue.getMetadonnees());
loadValidationData();
chargerDonneesValidation();
gererEvenements();
}
 
private void loadValidationData() {
private void chargerDonneesValidation() {
vue.getZoneVoter().clear();
List<VoteProtocole> observationValidationDatas = image.getVotesProtocoles(protocole.getId());
HashMap<String, VoteProtocole> observationValidationDatas = image.getVotesProtocoles(protocole.getId());
if(observationValidationDatas != null) {
new MoyenneVotePresenteur(observationValidationDatas, image.getIdImage(), protocole).go(vue.getZoneVoter());
new MoyenneVotePresenteur(image, protocole, new MoyenneVoteVue()).go(vue.getZoneVoter());
}
}
 
88,7 → 90,7
CacheClient.getInstance().setImageCourante(image);
final Observation obs = image.getObservation();
 
// charge toutes les images de l'observation associee à l'observation en cours
// charge toutes les images de l'observation associée à l'observation en cours
ImageService imageService = new ImageServiceConcret();
imageService.getImagesParObservation(obs.getId(), new ImagesParTaxonCallback() {
 
144,7 → 146,7
public void onVoirDetailsImage(EvenementVoirDetailsImage event) {
if (image.getIdImage().equals(event.getImage().getIdImage())) {
 
if (!detailsOpen) {
if (!detailsOuverts) {
afficherDetails();
} else {
cacherDetails();
159,7 → 161,7
@Override
public void onChangementProtocole(EvenementChangementProtocole event) {
setProtocole(event.getProtocole());
loadValidationData();
chargerDonneesValidation();
}
});
}
166,16 → 168,16
 
public void cacherDetails() {
vue.cacherZoneCache();
detailsOpen = false;
detailsOuverts = false;
}
 
public void afficherDetails() {
vue.afficherZoneCache();
detailsOpen = true;
detailsOuverts = true;
}
 
public boolean isDetailsOpen() {
return detailsOpen;
return detailsOuverts;
}
 
public Protocole getProtocole() {
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/votes/MoyenneVotePresenteur.java
1,34 → 1,64
package org.tela_botanica.del.client.vues.rechercheimages.resultats.votes;
 
import java.util.Iterator;
import java.util.List;
 
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 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;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class MoyenneVotePresenteur {
 
private MoyenneVoteVue vue;
public interface Vue extends IsWidget {
public HasClickHandlers getBoutonVoter();
public HasClickHandlers getBoutonAnnuler();
public HasText getNbVotes();
public HasClickHandlers getVotes();
public int getValeurVote();
public void afficherBoutonVoter();
public void afficherBoutonAnnuler();
public void masquerBoutonVoter();
public void masquerBoutonAnnuler();
public void afficherNbVotes();
public void masquerNbVotes();
public void reinitialiserVotes();
public void rafraichir(int moyenneVote, int nbVotes);
public void ajouterAuParent(HasWidgets composite);
}
private Vue vue;
private Protocole protocole;
private final VoteProtocoleService voteProtocoleService = MockDatasource.getInstance();
private String idImage;
private final MockDatasource validationService = MockDatasource.getInstance();
private Image image;
public MoyenneVotePresenteur(List<VoteProtocole> validationDatas, String idImage, Protocole protocole) {
vue = new MoyenneVoteVue(validationDatas);
private int valeurVoteDefaut = -1;
private int valeurVoteUtilisateur = -1;
private int valeurVoteTotal = 0;
public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue) {
this.vue = vue;
this.protocole = protocole;
this.idImage = idImage;
this.image = image;
}
 
public void go(HasWidgets container) {
container.add(vue);
public void go(HasWidgets composite) {
vue.ajouterAuParent(composite);
gererEvenements();
rafraichirVue();
}
public void gererEvenements() {
35,6 → 65,7
vue.getVotes().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
valeurVoteUtilisateur = vue.getValeurVote();
vue.afficherBoutonVoter();
vue.afficherBoutonAnnuler();
vue.masquerNbVotes();
44,6 → 75,7
vue.getBoutonAnnuler().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
valeurVoteUtilisateur = valeurVoteDefaut;
vue.masquerBoutonVoter();
vue.masquerBoutonAnnuler();
vue.afficherNbVotes();
54,7 → 86,6
vue.getBoutonVoter().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
enregistrerVote();
vue.masquerBoutonVoter();
vue.masquerBoutonAnnuler();
64,12 → 95,48
});
}
public void setValeurVoteUtilisateur(int valeurVoteUtilisateur) {
this.valeurVoteUtilisateur = valeurVoteUtilisateur;
}
public void enregistrerVote() {
VoteProtocole voteProtocole = new VoteProtocole();
voteProtocole.setProtocole(this.protocole);
voteProtocoleService.saveVote(idImage, voteProtocole);
voteProtocole.setVote(valeurVoteUtilisateur);
voteProtocole.setContributeur(CacheClient.getInstance().getUtilisateur().getId());
// voteProtocoleService.saveVote(idImage, voteProtocole);
// TODO: sauver vote asynchrone
image.ajouterVoteProtocole(voteProtocole);
rafraichirVue();
}
public int getValeurVoteTotal() {
return valeurVoteTotal;
}
 
public IsWidget getVue() {
return vue;
}
private void rafraichirVue() {
valeurVoteTotal = calculerMoyenneVotes();
vue.rafraichir(valeurVoteTotal, image.getVotesProtocoles(protocole.getId()).size());
}
public int calculerMoyenneVotes() {
double valeurVote = 0;
int nbVote = 0;
for (Iterator<String> iterator = image.getVotesProtocoles(protocole.getId()).keySet().iterator(); iterator.hasNext();) {
VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(iterator.next());
valeurVote += (double)imageCelValidationData.getVote()/5;
nbVote++;
}
List<VoteProtocole> observationValidationDatas = validationService.getVotePourImageEtProtocole(idImage, protocole.getNom());
vue.rafraichir(observationValidationDatas);
if (nbVote > 0) {
valeurVote /= nbVote;
valeurVote *= 5;
}
 
return (int)Math.round(valeurVote);
}
}
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/votes/MoyenneVoteVue.java
9,6 → 9,7
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.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
17,10 → 18,11
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
 
public class MoyenneVoteVue extends Composite {
public class MoyenneVoteVue extends Composite implements MoyenneVotePresenteur.Vue {
 
// Annotation can be used to change the name of the associated xml file
// @UiTemplate("MoyenneVoteVue.ui.xml")
40,16 → 42,13
@UiField
Button boutonVoter, boutonAnnuler;
protected MoyenneVoteVue(List<VoteProtocole> validationDatas) {
public MoyenneVoteVue() {
initWidget(uiBinder.createAndBindUi(this));
votes = new Rating(0, 5);
votes.setReadOnly(false);
voter.add(votes);
 
masquerBoutonAnnuler();
masquerBoutonVoter();
rafraichir(validationDatas);
}
public HasClickHandlers getBoutonVoter() {
68,6 → 67,10
return votes;
}
public int getValeurVote() {
return votes.getValue();
}
public void afficherBoutonVoter() {
boutonVoter.setVisible(true);
}
96,19 → 99,14
votes.setValue(valeurOrigine);
}
public void rafraichir(List<VoteProtocole> validationDatas) {
int meanVote = 0;
int nbVote = 0;
for (VoteProtocole imageCelValidationData : validationDatas) {
meanVote += imageCelValidationData.getVote();
nbVote++;
}
if (nbVote > 0) {
meanVote /= nbVote;
}
votes.setValue(nbVote);
valeurOrigine = nbVote;
nbVotes.setText(String.valueOf(validationDatas.size()) + " " +I18n.getVocabulary().nbVotes());
public void rafraichir(int moyenneVote, int nombreVotes) {
valeurOrigine = moyenneVote;
nbVotes.setText(nombreVotes+" "+I18n.getVocabulary().nbVotes());
votes.setValue(moyenneVote);
}
 
@Override
public void ajouterAuParent(HasWidgets composite) {
composite.add(this);
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVotePresenteur.java
57,16 → 57,13
public void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
@Override
public void onVoteDetermination(VoteDetermination event) {
public void onVoteDetermination(VoteDetermination event) {
if(event.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) {
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(event);
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee());
afficherVotes(moyenneVote);
}
}
}
});
104,7 → 101,6
}
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd);
BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd));
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/MoyenneVoteProtocolePresenteur.java
1,5 → 1,6
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne;
 
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.del.client.modeles.Protocole;
15,7 → 16,7
 
private Protocole protocole;
 
public MoyenneVoteProtocolePresenteur(Protocole protocole, List<VoteProtocole> validationDatas) {
public MoyenneVoteProtocolePresenteur(Protocole protocole, HashMap<String, VoteProtocole> validationDatas) {
view = new MoyenneVoteProtocoleVue(protocole, validationDatas);
}
 
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/protocole/moyenne/MoyenneVoteProtocoleVue.java
1,8 → 1,11
package org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
import org.cobogw.gwt.user.client.ui.Rating;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteProtocole;
 
27,7 → 30,7
@UiField
Label nbVotes, nomProtocole;
 
protected MoyenneVoteProtocoleVue(Protocole protocole, List<VoteProtocole> validationDatas) {
protected MoyenneVoteProtocoleVue(Protocole protocole, HashMap<String, VoteProtocole> validationDatas) {
initWidget(uiBinder.createAndBindUi(this));
 
nomProtocole.setText(protocole.getNom());
34,8 → 37,8
 
int meanVote = 0;
int nbVote = 0;
for (VoteProtocole validationData : validationDatas) {
meanVote += validationData.getVote();
for (Iterator<String> iterator = validationDatas.keySet().iterator(); iterator.hasNext();) {
meanVote += validationDatas.get(iterator.next()).getVote();
nbVote++;
}
if (nbVote > 0)
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/EnsembleVotesPresenteur.java
1,5 → 1,6
package org.tela_botanica.del.client.vues.plateformedetermination.vote;
 
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
38,11 → 39,11
Image imageCourante = CacheClient.getInstance().getImageCourante();
 
Protocole protocoleEsthetisme = protocoleService.getProtocole(Protocole.ESTHETISME);
List<VoteProtocole> observationValidationsEsthetisme = imageCourante.getVotesProtocoles(protocoleEsthetisme.getId());
HashMap<String, VoteProtocole> observationValidationsEsthetisme = imageCourante.getVotesProtocoles(protocoleEsthetisme.getId());
new MoyenneVoteProtocolePresenteur(protocoleEsthetisme, observationValidationsEsthetisme).go(vue.getPanneauVotes());
 
Protocole protocoleIdentification = protocoleService.getProtocole(Protocole.IDENTIFICATION_AUTOMATIQUE);
List<VoteProtocole> observationValidationsIdentification = imageCourante.getVotesProtocoles(protocoleIdentification.getId());
HashMap<String, VoteProtocole> observationValidationsIdentification = imageCourante.getVotesProtocoles(protocoleIdentification.getId());
new MoyenneVoteProtocolePresenteur(protocoleIdentification, observationValidationsIdentification).go(vue.getPanneauVotes());
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java
1,6 → 1,8
package org.tela_botanica.del.client.vues.plateformedetermination;
 
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
9,9 → 11,12
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteDetermination;
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.ajoutdetermination.EvenementAjoutDetermination;
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
18,10 → 23,12
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
import org.tela_botanica.del.client.services.rest.ProtocoleService;
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
29,9 → 36,13
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue;
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue;
import org.tela_botanica.del.client.vues.plateformedetermination.vote.protocole.moyenne.MoyenneVoteProtocolePresenteur;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.votes.MoyenneVotePresenteur;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.votes.MoyenneVoteVue;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
48,6 → 59,7
public Panel getBarreRepartition();
public Button getBoutonAjoutProposition();
public HasWidgets getMetadonnees();
public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
}
 
private Vue vue;
54,6 → 66,8
 
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur;
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
private ProtocoleService protocoleService = MockDatasource.getInstance();
 
public DeterminationPresenteur(Vue vue) {
this.vue = vue;
64,7 → 78,8
if (CacheClient.getInstance().getImageCourante() != null) {
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVoteProtocole());
 
ajouterLignesVotesProtocole();
}
new ForumPresenteur(new ForumVue()).go(vue.getForum());
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
77,6 → 92,17
 
gererEvenements();
}
private void ajouterLignesVotesProtocole() {
List<Protocole> tousLesProtocoles = protocoleService.getProtocoles();
Image imageCourante = CacheClient.getInstance().getImageCourante();
for (Iterator<Protocole> iterator = tousLesProtocoles.iterator(); iterator.hasNext();) {
Protocole protocole = (Protocole) iterator.next();
MoyenneVotePresenteur presenteurCeProtocole = new MoyenneVotePresenteur(imageCourante, protocole, new MoyenneVoteVue());
presenteurCeProtocole.go(vue.getVoteProtocole());
vue.ajouterLigneVoteProtocole(protocole.getNom(), presenteurCeProtocole.getVue());
}
}
 
private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
 
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java
5,6 → 5,10
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
56,4 → 60,13
public Panel getMetadonnees() {
return metadonnees;
}
 
@Override
public void ajouterLigneVoteProtocole(String nom, IsWidget vue) {
HorizontalPanel panneauVote = new HorizontalPanel();
Label labelProtocole = new Label(nom);
panneauVote.add(labelProtocole);
panneauVote.add(vue);
voteProtocole.add(panneauVote);
}
}
/trunk/src/org/tela_botanica/del/test/vues/rechercheimages/resultats/votes/MoyenneVotePresenteurTest.java
New file
0,0 → 1,75
package org.tela_botanica.del.test.vues.rechercheimages.resultats.votes;
 
import static org.junit.Assert.assertEquals;
 
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
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.vues.rechercheimages.resultats.votes.MoyenneVotePresenteur;
 
import com.google.gwt.user.client.ui.HasWidgets;
 
public class MoyenneVotePresenteurTest {
 
MoyenneVotePresenteur mvp;
HasWidgets container;
List<Protocole> tousLesProtocoles = new ArrayList<Protocole>();
MoyenneVotePresenteur.Vue vue;
Image imageCourante;
@Before
public void setUp() {
Protocole protocol1 = new Protocole();
protocol1.setNom(Protocole.ESTHETISME);
protocol1.setId(0);
 
Protocole protocol2 = new Protocole();
protocol2.setNom(Protocole.IDENTIFICATION_AUTOMATIQUE);
protocol2.setId(1);
 
tousLesProtocoles.add(protocol1);
tousLesProtocoles.add(protocol2);
imageCourante = new Image();
Protocole protocole = tousLesProtocoles.get(0);
vue = Mockito.mock(MoyenneVotePresenteur.Vue.class,Mockito.RETURNS_DEEP_STUBS);
mvp = new MoyenneVotePresenteur(imageCourante, protocole, vue);
container = Mockito.mock(HasWidgets.class, Mockito.RETURNS_DEEP_STUBS);
mvp.go(container);
}
@Test
public void testerVote() {
assertEquals(1, imageCourante.getListeVotesProtocoles().size());
mvp.setValeurVoteUtilisateur(3);
mvp.enregistrerVote();
mvp.setValeurVoteUtilisateur(3);
mvp.enregistrerVote();
assertEquals(2, imageCourante.getVotesProtocoles(0).size());
assertEquals(3, mvp.getValeurVoteTotal());
}
@Test
public void testerTroisVotes() {
assertEquals(1, imageCourante.getListeVotesProtocoles().size());
mvp.setValeurVoteUtilisateur(3);
mvp.enregistrerVote();
mvp.setValeurVoteUtilisateur(1);
mvp.enregistrerVote();
assertEquals(2, imageCourante.getVotesProtocoles(0).size());
assertEquals(2, mvp.getValeurVoteTotal());
mvp.setValeurVoteUtilisateur(5);
mvp.enregistrerVote();
assertEquals(3, imageCourante.getVotesProtocoles(0).size());
assertEquals(3, mvp.getValeurVoteTotal());
}
}