Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1565 → Rev 1566

/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVoteVue.java
39,7 → 39,7
Panel votePrisEnCompte, voteModifie, voteSupprime, zoneFleur;
@UiField
Label nbVotes, protocole, noteGenerale;
Label nbVotes, protocole, noteGenerale, nbPoints;
 
@UiField
Button boutonAnnuler;
67,6 → 67,10
return nbVotes;
}
public HasText getNbPoints() {
return nbPoints;
}
public HasClickHandlers getVotes() {
return votes;
}
83,25 → 87,38
boutonAnnuler.setVisible(false);
}
public void afficherNbVotes () {
public void afficherNbVotes() {
nbVotes.setVisible(true);
}
public void masquerNbVotes () {
public void masquerNbVotes() {
nbVotes.setVisible(false);
}
public void afficherNbPoints() {
nbPoints.setVisible(true);
}
public void masquerNbPoints() {
nbPoints.setVisible(false);
}
public void reinitialiserVotes() {
votes.setValue(valeurOrigine);
}
public void rafraichir(int voteUtilisateur, int nombreVotes) {
public void rafraichir(int voteUtilisateur, int nombreVotes, int nombrePoints) {
valeurOrigine = voteUtilisateur;
String valeurVote = nombreVotes+" "+I18n.getVocabulary().nbVotes();
if (nombreVotes > 1) {
valeurVote += "s";
}
String valeurPoints = ", "+Math.max(0, nombrePoints)+" "+I18n.getVocabulary().nbPoints();
if (nombrePoints > 1) {
valeurPoints += "s";
}
nbVotes.setText(valeurVote);
nbPoints.setText(valeurPoints);
votes.setValue(voteUtilisateur);
}
 
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/moyenne.css
12,6 → 12,12
color: #AAA
}
 
.petitgauche {
font-size: 11px;
color: #AAA;
float: left;
}
 
.barreVote {
padding: 0 5px 0 5px
}
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVoteVue.ui.xml
8,7 → 8,8
<g:HTMLPanel styleName="{style.zoneNoteGlobale}">
<g:Label styleName="petit enligne">Note générale</g:Label><g:Label ui:field="noteGenerale" styleName="petit enligne"/>
<g:Label ui:field="nbVotes" styleName="{style.petit}"/>
<g:Label ui:field="nbVotes" styleName="{style.petitgauche}"/>
<g:Label ui:field="nbPoints" styleName="{style.petitgauche}"/>
<g:HTMLPanel ui:field="zoneFleur" styleName="{style.zoneFleur}"></g:HTMLPanel>
</g:HTMLPanel>
<g:HorizontalPanel>
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVotePresenteur.java
1,5 → 1,6
package org.tela_botanica.del.client.composants.votes.moyennevotes;
 
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.del.client.cache.CacheClient;
45,9 → 46,13
 
public void masquerNbVotes();
 
public void afficherNbPoints();
 
public void masquerNbPoints();
 
public void reinitialiserVotes();
 
public void rafraichir(int moyenneVote, int nbVotes);
public void rafraichir(int moyenneVote, int nbVotes, int nombrePoints);
 
public void ajouterAuParent(HasWidgets composite);
 
80,6 → 85,7
private int valeurVoteDefaut = -1;
private int valeurVoteUtilisateur = -1;
private int valeurVoteTotal = 0;
private int nombrePoints = 0;
private double valeurVoteTotalPrecise = 0.0;
 
// TODO: on devrait passer un conteneur qui permet d'accéder à ces services
121,6 → 127,7
enregistrerVote();
vue.afficherBoutonAnnuler();
vue.masquerNbVotes();
vue.masquerNbPoints();
}
});
 
131,6 → 138,7
vue.masquerBoutonAnnuler();
supprimerVote();
vue.afficherNbVotes();
vue.afficherNbPoints();
vue.reinitialiserVotes();
}
});
216,7 → 224,9
 
private void rafraichirVue() {
valeurVoteTotal = calculerMoyenneVotesArrondie();
valeurVoteTotalPrecise = calculerMoyenneVotes();
//valeurVoteTotalPrecise = calculerMoyenneVotes();
valeurVoteTotalPrecise = calculerMoyennePondereeVotes();
nombrePoints = calculerNombrePointsEchelleArbitraire();
VoteProtocole voteProtocole = image.getVotesProtocoles(
protocole.getId()).get(
CacheClient.getInstance().getUtilisateur().getId());
237,31 → 247,59
vue.setNoteGeneraleToolTip(valeurVoteTotalPrecise);
presenteurFleur.go(vue.getZoneFleur());
vue.rafraichir(voteUtilisateur,
image.getVotesProtocoles(protocole.getId()).size());
image.getVotesProtocoles(protocole.getId()).size(), nombrePoints);
}
public double calculerMoyenneVotes() {
double valeurVote = 0;
double 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++;
 
// Calcule une moyenne, où chaque note est pondérée par son nombre d'occurrences au carré.
// voir http://www.tela-botanica.org/wikini/DevInformatiques/wakka.php?wiki=AppliDelCalculVotes
public double calculerMoyennePondereeVotes() {
 
double score = 0;
double diviseur = 0;
int nbOccurrences;
HashMap<Integer,Integer> occurrencesParNote = new HashMap<Integer,Integer>();
 
// rangement par note => occurrences
for (String clef : image.getVotesProtocoles(protocole.getId()).keySet()) {
VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(clef);
nbOccurrences = 1;
if (occurrencesParNote.containsKey(imageCelValidationData.getVote())) {
nbOccurrences = occurrencesParNote.get(imageCelValidationData.getVote()) + 1;
}
occurrencesParNote.put(imageCelValidationData.getVote(), nbOccurrences);
}
 
if (nbVote > 0) {
valeurVote /= nbVote;
valeurVote *= 5;
// calcul pondéré
for (Integer clef : occurrencesParNote.keySet()) {
score += clef * occurrencesParNote.get(clef) * occurrencesParNote.get(clef);
diviseur += occurrencesParNote.get(clef) * occurrencesParNote.get(clef);
}
 
return valeurVote;
if (diviseur > 0) {
score /= diviseur;
}
 
return score;
}
 
// remplace chaque note par un nombre de points noté dans "echelle" afin de favoriser
// les note fortes (5 et 4), pour le défi photo notamment
public int calculerNombrePointsEchelleArbitraire() {
int points = 0;
int[] echelle = {-1,0,1,4,20};
 
for (String clef : image.getVotesProtocoles(protocole.getId()).keySet()) {
VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(clef);
points += echelle[imageCelValidationData.getVote() - 1];
}
 
// @TODO ramener les votes négatifs à 0 pour ne pas insulter les contributeurs ?
return points;
}
 
public int calculerMoyenneVotesArrondie() {
double valeurVote = calculerMoyenneVotes();
//double valeurVote = calculerMoyenneVotes();
double valeurVote = calculerMoyennePondereeVotes();
return (int) Math.round(valeurVote);
}
}
/trunk/src/org/tela_botanica/del/client/modeles/InformationsRecherche.java
43,6 → 43,8
private ModeTri triParDate = ModeTri.PAS_DE_TRI;
private ModeTri triParNbTag = ModeTri.PAS_DE_TRI;
private ModeTri triParNbPoints = ModeTri.PAS_DE_TRI;
 
public String getRechercheLibre() {
return rechercheLibre;
187,6 → 189,14
this.triParNbTag = triParTag;
}
public ModeTri getTriParNbPoints() {
return this.triParNbPoints;
}
 
public void setTriParNbPoints(ModeTri triParPoints) {
this.triParNbPoints = triParPoints;
}
public ModeTri getTriParNbTags() {
return this.triParNbTag;
}
206,7 → 216,7
chaine += estNonNull(famille) ? "&masque.famille=" + URL.encodeQueryString(famille) : "";
chaine += estNonNull(auteur) ? "&masque.auteur=" + URL.encodeQueryString(auteur) : "";
//TODO: réadapter les web services pour que ceux-ci prennent en compte un tri
//TODO: réadapter les web services pour que ceux-ci prennent en compte un tri
String urlCourante = Window.Location.getHref();
Config config = new Config();
String urlAppliImg = config.getUrl("pictoflora");
216,11 → 226,12
chaine += triParNbVotes != ModeTri.PAS_DE_TRI ? "&ordre=" + triParNbVotes : "";
chaine += triParNbTag != ModeTri.PAS_DE_TRI ? "&tri=tags" : "";
chaine += triParNbTag != ModeTri.PAS_DE_TRI ? "&ordre=" + triParNbTag : "";
chaine += triParNbPoints != ModeTri.PAS_DE_TRI ? "&tri=points" : "";
chaine += triParNbPoints != ModeTri.PAS_DE_TRI ? "&ordre=" + triParNbPoints : "";
chaine += estNonNull(idProtocoleSelectionne) ? "&protocole=" + idProtocoleSelectionne : "";
} else {
chaine += triParDate != ModeTri.PAS_DE_TRI ? "&tri=date_observation" : "";
}
 
return chaine;
}
 
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
70,14 → 70,17
rechercherTaxon = Rechercher le taxon
tri = Tri :
triParNbVotes = Votes
triParNbPoints = Points
triParDate = Date
triParNbTags = Tags
triParNbVotesAscendant = Tri par nombre de votes du maximum au minimum
triParNbVotesAscendant = Tri par moyenne des votes du minimum au maximum
triParNbVotesDescendant = Tri par moyenne des votes du maximum au minimum
triParNbPointsAscendant = Tri par nombre de points croissant
triParNbPointsDescendant = Tri par nombre de points décroissant
triParDateAscendant = Tri par date du plus ancien au plus récent
triParNbVotesDescendant = Tri par nombre de votes du minimum au maximum
triParDateDescendant = Tri par date du plus récent au plus ancien
triParNbTagsAscendant = Tri par nombre de tags ascendant
triParNbTagsDescendant = Tri par nombre de tags descendant
triParNbTagsAscendant = Tri par nombre de tags croissant
triParNbTagsDescendant = Tri par nombre de tags décroissant
introRechercheImages = Cette galerie vous permet de rechercher les illustrations des membres du réseau issues du Carnet en ligne... et de voter pour la qualité des images selon un protocole défini.
indicationActionClicImage = Cliquez sur l'image pour l'agrandir ou sur le bandeau contenant le nom pour accéder à la fiche de l'observation
voirMetadonnees = Voir la date, le lieu et l'auteur de l'image
141,12 → 144,13
 
#ecran votes protcoles
votes = Moyenne des votes
votesMoyennePrecise = Moyenne précise des votes :
votesMoyennePrecise = Moyenne pondérée des votes :
infoVotes = Voici la moyenne des votes en fonction du protocole choisi :
protocoleEsthetisme = Esthétisme
protocoleIdentificationAuto = Identification automatique
monVote = Mon vote
nbVotes = vote
nbPoints = pt
votez = Votez
 
#ecran detail de votes détermination
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java
808,6 → 808,15
String nbVotes();
 
/**
* Translated "pt".
*
* @return translated "pt"
*/
@DefaultStringValue("pt")
@Key("nbPoints")
String nbPoints();
 
/**
* Translated "Nom".
*
* @return translated "Nom"
1285,20 → 1294,20
String triParNbTags();
 
/**
* Translated "Tri par nombre de tags ascendant".
* Translated "Tri par nombre de tags croissant".
*
* @return translated "Tri par nombre de tags ascendant"
* @return translated "Tri par nombre de tags croissant"
*/
@DefaultStringValue("Tri par nombre de tags ascendant")
@DefaultStringValue("Tri par nombre de tags croissant")
@Key("triParNbTagsAscendant")
String triParNbTagsAscendant();
 
/**
* Translated "Tri par nombre de tags descendant".
* Translated "Tri par nombre de tags décroissant".
*
* @return translated "Tri par nombre de tags descendant"
* @return translated "Tri par nombre de tags décroissant"
*/
@DefaultStringValue("Tri par nombre de tags descendant")
@DefaultStringValue("Tri par nombre de tags décroissant")
@Key("triParNbTagsDescendant")
String triParNbTagsDescendant();
 
1312,24 → 1321,51
String triParNbVotes();
 
/**
* Translated "Tri par nombre de votes du maximum au minimum".
* Translated "Tri par moyenne des votes du minimum au maximum".
*
* @return translated "Tri par nombre de votes du maximum au minimum"
* @return translated "Tri par moyenne des votes du minimum au maximum"
*/
@DefaultStringValue("Tri par nombre de votes du maximum au minimum")
@DefaultStringValue("Tri par moyenne des votes du minimum au maximum")
@Key("triParNbVotesAscendant")
String triParNbVotesAscendant();
 
/**
* Translated "Tri par nombre de votes du minimum au maximum".
* Translated "Tri par moyenne des votes du maximum au minimum".
*
* @return translated "Tri par nombre de votes du minimum au maximum"
* @return translated "Tri par moyenne des votes du maximum au minimum"
*/
@DefaultStringValue("Tri par nombre de votes du minimum au maximum")
@DefaultStringValue("Tri par moyenne des votes du maximum au minimum")
@Key("triParNbVotesDescendant")
String triParNbVotesDescendant();
 
/**
* Translated "Points".
*
* @return translated "Points"
*/
@DefaultStringValue("Points")
@Key("triParNbPoints")
String triParNbPoints();
 
/**
* Translated "Tri par nombre de points croissant".
*
* @return translated "Tri par nombre de points croissant"
*/
@DefaultStringValue("Tri par nombre de points croissant")
@Key("triParNbPointsAscendant")
String triParNbPointsAscendant();
 
/**
* Translated "Tri par nombre de points décroissant".
*
* @return translated "Tri par nombre de points décroissant"
*/
@DefaultStringValue("Tri par nombre de points décroissant")
@Key("triParNbPointsDescendant")
String triParNbPointsDescendant();
 
/**
* Translated "Vote".
*
* @return translated "Vote"
1447,11 → 1483,11
String votes();
 
/**
* Translated "Moyenne précise des votes : ".
* Translated "Moyenne pondérée des votes : ".
*
* @return translated "Moyenne précise des votes : "
* @return translated "Moyenne pondérée des votes : "
*/
@DefaultStringValue("Moyenne précise des votes : ")
@DefaultStringValue("Moyenne pondérée des votes : ")
@Key("votesMoyennePrecise")
String votesMoyennePrecise();
 
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/resultats/ResultatPictofloraVue.ui.xml
19,6 → 19,11
<g:Button title="{constants.triParNbVotesAscendant}" ui:field="triParNbVotesAscendant" styleName="{style.boutonTriAsc} gauche" />
<g:Button title="{constants.triParNbVotesDescendant}" ui:field="triParNbVotesDescendant" styleName="{style.boutonTriDesc} gauche" />
</g:HTMLPanel>
<g:HTMLPanel ui:field="triParPoints" styleName="gauche">
<g:Label text="{constants.triParNbPoints}" styleName="gauche {style.votes}" ui:field="labelPoints"/>
<g:Button title="{constants.triParNbPointsAscendant}" ui:field="triParPointsAscendant" styleName="{style.boutonTriAsc} gauche" />
<g:Button title="{constants.triParNbPointsDescendant}" ui:field="triParPointsDescendant" styleName="{style.boutonTriDesc} gauche" />
</g:HTMLPanel>
<g:HTMLPanel ui:field="triParDate" styleName="gauche">
<g:Label text="{constants.triParDate}" styleName="gauche {style.date}" ui:field="labelDate"/>
<g:Button title="{constants.triParDateAscendant}" ui:field="triParDateAscendant" styleName="{style.boutonTriAsc} gauche" />
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/resultats/ResultatPictofloraPresenteur.java
58,6 → 58,10
 
public HasClickHandlers getTriParNbVotesDescendant();
 
public HasClickHandlers getTriParPointsAscendant();
 
public HasClickHandlers getTriParPointsDescendant();
 
public HasClickHandlers getTriParDateAscendant();
 
public HasClickHandlers getTriParDateDescendant();
83,8 → 87,6
public void afficherVoteDescendant();
 
public HasClickHandlers getLabelDate();
public HasClickHandlers getLabelTag();
 
public void masquerDateAscendant();
 
93,6 → 95,8
public void afficherDateAscendant();
 
public void afficherDateDescendant();
public HasClickHandlers getLabelTag();
 
public void masquerTagAscendant();
 
102,6 → 106,16
 
public void afficherTagAscendant();
 
public HasClickHandlers getLabelPoints();
 
public void afficherPointsAscendant();
 
public void afficherPointsDescendant();
 
public void masquerPointsAscendant();
 
public void masquerPointsDescendant();
 
}
 
private Vue vue;
108,6 → 122,7
private ImageService imageService;
private final ProtocoleService protocoleService;
private ModeTri triCourantVote = ModeTri.TRI_ASCENDANT;
private ModeTri triCourantPoints = ModeTri.TRI_ASCENDANT;
private ModeTri triCourantDate = ModeTri.TRI_DESCENDANT;
private ModeTri triCourantTag = ModeTri.TRI_DESCENDANT;
 
128,6 → 143,8
vue.masquerDateAscendant();
vue.masquerTagAscendant();
vue.masquerTagDescendant();
vue.masquerPointsAscendant();
vue.masquerPointsDescendant();
initialiserAPartirInfosCache();
}
160,6 → 177,17
vue.getTriParNbVotesAscendant().addClickHandler(surClicTriVote);
vue.getTriParNbVotesDescendant().addClickHandler(surClicTriVote);
 
ClickHandler surClicTriPoints = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
surClicTriPoints();
}
};
 
vue.getLabelPoints().addClickHandler(surClicTriPoints);
vue.getTriParPointsAscendant().addClickHandler(surClicTriPoints);
vue.getTriParPointsDescendant().addClickHandler(surClicTriPoints);
 
ClickHandler surClicTriDate = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
200,6 → 228,7
informationsRechercheImages.setTriParNbTags(triCourantTag);
informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbPoints(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
208,6 → 237,8
vue.masquerDateAscendant();
vue.masquerVoteDescendant();
vue.masquerVoteAscendant();
vue.masquerPointsAscendant();
vue.masquerPointsDescendant();
if (triCourantTag == ModeTri.TRI_ASCENDANT) {
triCourantTag = ModeTri.TRI_DESCENDANT;
vue.masquerTagAscendant();
227,6 → 258,7
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole + "");
informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbTags(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbPoints(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
235,6 → 267,8
vue.masquerDateAscendant();
vue.masquerTagAscendant();
vue.masquerTagDescendant();
vue.masquerPointsAscendant();
vue.masquerPointsDescendant();
if (triCourantVote == ModeTri.TRI_ASCENDANT) {
triCourantVote = ModeTri.TRI_DESCENDANT;
vue.masquerVoteAscendant();
246,6 → 280,36
}
}
 
public void surClicTriPoints() {
mettreAJourAffichageTriPoints();
InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
int IdProtocole = CacheClient.getInstance().getProtocoleCourant().getId();
informationsRechercheImages.setTriParNbPoints(triCourantPoints);
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole + "");
informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbTags(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
private void mettreAJourAffichageTriPoints() {
vue.masquerDateDescendant();
vue.masquerDateAscendant();
vue.masquerTagAscendant();
vue.masquerTagDescendant();
vue.masquerVoteAscendant();
vue.masquerVoteDescendant();
if (triCourantPoints == ModeTri.TRI_ASCENDANT) {
triCourantPoints = ModeTri.TRI_DESCENDANT;
vue.masquerPointsAscendant();
vue.afficherPointsDescendant();
} else {
triCourantPoints = ModeTri.TRI_ASCENDANT;
vue.masquerPointsDescendant();
vue.afficherPointsAscendant();
}
}
 
public void surClicTriDate() {
mettreAJourAffichageTriDate();
InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
252,6 → 316,7
informationsRechercheImages.setTriParDate(triCourantDate);
informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbTags(ModeTri.PAS_DE_TRI);
informationsRechercheImages.setTriParNbPoints(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
260,6 → 325,8
vue.masquerTagDescendant();
vue.masquerVoteDescendant();
vue.masquerVoteAscendant();
vue.masquerPointsAscendant();
vue.masquerPointsDescendant();
if (triCourantDate == ModeTri.TRI_ASCENDANT) {
triCourantDate = ModeTri.TRI_DESCENDANT;
vue.masquerDateAscendant();
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/resultats/ResultatPictofloraVue.java
3,23 → 3,15
import java.util.ArrayList;
import java.util.List;
 
import org.tela_botanica.del.client.modeles.Protocole;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.dom.client.OptionElement;
import com.google.gwt.dom.client.SelectElement;
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;
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.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
 
45,13 → 37,13
HTMLPanel imageTable;
 
@UiField
Button triParNbVotesAscendant, triParNbVotesDescendant, triParDateAscendant, triParDateDescendant, triParNbTagsAscendant, triParNbTagsDescendant;
Button triParNbVotesAscendant, triParNbVotesDescendant, triParDateAscendant, triParDateDescendant, triParNbTagsAscendant, triParNbTagsDescendant, triParPointsAscendant, triParPointsDescendant;
 
@UiField
Label aucunResultat;
@UiField
Label labelVote, labelDate, labelTag;
Label labelVote, labelDate, labelTag, labelPoints;
// Constructeur
148,6 → 140,14
public Button getTriParDateDescendant() {
return triParDateDescendant;
}
 
public Button getTriParPointsAscendant() {
return triParPointsAscendant;
}
 
public Button getTriParPointsDescendant() {
return triParPointsDescendant;
}
 
@Override
174,8 → 174,33
public void afficherVoteDescendant() {
triParNbVotesDescendant.setVisible(true);
}
 
@Override
public Label getLabelPoints() {
return labelPoints;
}
@Override
public void afficherPointsAscendant() {
triParPointsAscendant.setVisible(true);
}
@Override
public void afficherPointsDescendant() {
triParPointsDescendant.setVisible(true);
}
@Override
public void masquerPointsAscendant() {
triParPointsAscendant.setVisible(false);
}
@Override
public void masquerPointsDescendant() {
triParPointsDescendant.setVisible(false);
}
@Override
public Label getLabelDate() {
return labelDate;
}