/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties |
---|
138,6 → 138,8 |
confirmationDepublicationObs = Avez-vous contacté l'auteur de l'observation ? Êtes-vous vraiment certain de vouloir dépublier le travail de cette personne ? |
indicationValiderProposition = Accepter cette proposition |
indicationPropositionValidee = Proposition acceptée |
determinationProposeePar = Détermination proposée par |
determinationOriginalePar = Détermination originale par |
#ecran comparaison |
dateObservation = Date de la prise de vue |
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java |
---|
1598,4 → 1598,22 |
@DefaultStringValue("Proposition acceptée") |
@Key("indicationPropositionValidee") |
String indicationPropositionValidee(); |
/** |
* Translated "Détermination proposée par". |
* |
* @return translated "Détermination proposée par" |
*/ |
@DefaultStringValue("Détermination proposée par") |
@Key("determinationProposeePar") |
String determinationProposeePar(); |
/** |
* Translated "Détermination originale par". |
* |
* @return translated "Détermination originale par" |
*/ |
@DefaultStringValue("Détermination originale par") |
@Key("determinationOriginalePar") |
String determinationOriginalePar(); |
} |
/trunk/src/org/tela_botanica/del/client/utils/StringUtils.java |
---|
1,5 → 1,7 |
package org.tela_botanica.del.client.utils; |
import com.google.gwt.i18n.client.NumberFormat; |
public class StringUtils { |
public static boolean checkStringNotNull(String s){ |
30,4 → 32,18 |
$wnd.console.log(s); |
} |
}-*/; |
public static String formaterNombre(double valeur, int decimales) { |
StringBuilder patternNb = new StringBuilder( |
(decimales <= 0) ? "" : "."); |
for (int i = 0; i < decimales; i++) { |
patternNb.append('0'); |
} |
if(valeur == 0) { |
patternNb.insert(0, 0); |
} |
return NumberFormat.getFormat(patternNb.toString()).format(valeur); |
} |
} |
/trunk/src/org/tela_botanica/del/client/utils/ComparateurPropositionDetermination.java |
---|
38,5 → 38,4 |
//si 1 est prop et 2 est comm OU si 1 est comm et 2 est prop ou les 2 sont comm |
return entierRetour; |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationVue.java |
---|
17,7 → 17,7 |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
HTMLPanel tableauPropositions, tableauPropositionInitiale, zonePropositions, tableauPropositionRetenue, lignePropositionRetenue; |
HTMLPanel tableauPropositions, zonePropositions; |
public HTMLPanel getTableauPropositions() { |
return tableauPropositions; |
25,7 → 25,6 |
public ObservationDeterminationVue() { |
initWidget(binder.createAndBindUi(this)); |
toggleTableauPropositionRetenue(); |
} |
@Override |
53,35 → 52,8 |
public void viderTableau() { |
tableauPropositions.clear(); |
} |
@Override |
public HasWidgets getTableauPropositionInitiale() { |
return tableauPropositionInitiale; |
} |
public void masquerPropositions() { |
this.zonePropositions.setVisible(false); |
} |
@Override |
public void viderTableauPropositionInitiale() { |
tableauPropositionInitiale.clear(); |
} |
@Override |
public void viderTableauPropositionRetenue() { |
tableauPropositionRetenue.clear(); |
} |
@Override |
public HasWidgets getTableauPropositionRetenue() { |
return tableauPropositionRetenue; |
} |
@Override |
public void toggleTableauPropositionRetenue() { |
lignePropositionRetenue.setVisible(!lignePropositionRetenue.isVisible()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/LignePropositionPresenteur.java |
---|
37,6 → 37,8 |
public void enleverLienVotes(); |
public void ajouterLienVotes(); |
public void setPropositionRetenue(boolean propositionRetenue); |
} |
private Vue vue; |
60,6 → 62,7 |
this.nbVotes = propositionDetermination.getVotesDeterminations().size(); |
vue.setNbCommentaires(nbCommentaires); |
vue.setNbVotes(nbVotes); |
vue.setPropositionRetenue(propositionDetermination.estPropositionRetenue()); |
} |
public void gererEvenements() { |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/LignePropositionVue.java |
---|
72,4 → 72,14 |
nbVotesHtml.setVisible(true); |
conteneurPanneauVotes.addStyleName("nombreVotes"); |
} |
@Override |
public void setPropositionRetenue(boolean propositionRetenue) { |
if(propositionRetenue) { |
addStyleName("propositionRetenuePetit"); |
} else { |
removeStyleName("propositionRetenuePetit"); |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/observationdetermination.css |
---|
26,8 → 26,7 |
margin-top:15px; |
} |
.determination>div { |
margin-top:2px; |
margin-bottom:30px; |
padding-top: 3px; |
} |
.ligneProposition { |
clear:both; |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationVue.ui.xml |
---|
8,18 → 8,6 |
<ui:style src="observationdetermination.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel styleName="{style.determinationOriginale}"> |
<g:Label styleName="petit {style.headerTableau} {style.gauche}">Score</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.gauche} {style.determInitiale}">Détermination initiale</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.milieu}">Voter</g:Label> |
<g:HTMLPanel styleName="{style.determination} {style.determinationOriginale}" ui:field="tableauPropositionInitiale" /> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.determinationOriginale} nettoyage {style.lignePropositionRetenue}" ui:field="lignePropositionRetenue"> |
<g:Label styleName="petit {style.headerTableau} {style.gauche}">Score</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.gauche} {style.determInitiale}">Détermination retenue</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.milieu}">Voter</g:Label> |
<g:HTMLPanel styleName="{style.determination} {style.determinationOriginale}" ui:field="tableauPropositionRetenue" /> |
</g:HTMLPanel> |
<g:HTML><br class="nettoyage"></br></g:HTML> |
<g:HTMLPanel styleName="{style.determinationOriginale}" ui:field="zonePropositions"> |
<g:Label styleName="petit {style.headerTableau} {style.gauche}">Score</g:Label> |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationPresenteur.java |
---|
4,9 → 4,6 |
import java.util.List; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
import org.tela_botanica.del.client.composants.rss.RssPresenteur; |
import org.tela_botanica.del.client.composants.rss.RssVue; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
16,7 → 13,6 |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationVue; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
24,17 → 20,9 |
public class ObservationDeterminationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void viderTableau(); |
public void viderTableauPropositionInitiale(); |
public HasWidgets getTableauPropositions(); |
public HasWidgets getTableauPropositionInitiale(); |
public void viderTableauPropositionRetenue(); |
public HasWidgets getTableauPropositionRetenue(); |
void setNbVotes(int index, int nbVotes); |
void setNbCommentaires(int index, int nbCommentaires); |
42,8 → 30,6 |
int getIndexLigneProposition(LignePropositionVue lignePropositionVue); |
public void masquerPropositions(); |
public void toggleTableauPropositionRetenue(); |
} |
private Vue vue; |
private List<PropositionDetermination> propositions; |
53,34 → 39,8 |
this.propositions = propositions; |
this.vue = vue; |
} |
public void chargerPropositionRetenue(PropositionDetermination proposition) { |
vue.viderTableauPropositionRetenue(); |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositionRetenue()); |
vue.toggleTableauPropositionRetenue(); |
} |
public void chargerPropositionOriginale(PropositionDetermination proposition) { |
vue.viderTableauPropositionInitiale(); |
// TODO: afficher nombre de votes total et mettre à jour en cas de |
// vote |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositionInitiale()); |
} |
public void classerPropositions(List<PropositionDetermination> propositions) { |
public void classerPropositions(List<PropositionDetermination> propositions) { |
Collections.sort(propositions, new ComparateurPropositionDetermination()); |
} |
88,30 → 48,20 |
vue.viderTableau(); |
int nbPropositions = 0; |
classerPropositions(propositions); |
for (PropositionDetermination proposition : propositions) { |
if (proposition.estPropositionInitiale()) { |
chargerPropositionOriginale(proposition); |
} else if (proposition.estPropositionRetenue()) { |
chargerPropositionRetenue(proposition); |
} else { |
nbPropositions++; |
// TODO: afficher nombre de votes total et mettre à jour en |
// cas de |
// vote |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositions()); |
} |
for (PropositionDetermination proposition : propositions) { |
nbPropositions++; |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositions()); |
} |
if (nbPropositions > 0) { |
} else { |
if (nbPropositions <= 0) { |
vue.masquerPropositions(); |
} |
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
public void onVoteDetermination(VoteDetermination event) { |
133,7 → 83,7 |
public void surVoteDetermination(VoteDetermination voteDetermination) { |
int indexProposition = propositions.indexOf(voteDetermination.getPropositionDetermination()); |
if (indexProposition != -1) { |
vue.setNbVotes(indexProposition, voteDetermination.getPropositionDetermination().getVotesDeterminations().size()); |
chargerPropositions(); |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/CalculVoteDeterminationService.java |
---|
11,6 → 11,7 |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
public class CalculVoteDeterminationService { |
public static List<MoyenneVote> calculerVoteDeterminationPlusPopulaire(List<PropositionDetermination> propositions) { |
54,26 → 55,13 |
for (String cle : cles) { |
String idAuteur = cle; |
boolean voteEstPositif = votes.get(cle).getVote() == 1 ? true : false; |
if (estUnAuteurIdentifie(idAuteur)) { |
// un votant identifiant compte comme deux votants supplémentaires |
// il a donc un vote 3 fois supérieur |
if (voteEstPositif) { |
//scoreVote += 3; |
scoreVote += 1; |
} /*else { |
scoreVote -= 3; |
}*/ |
} else { |
if (voteEstPositif) { |
scoreVote += 1; |
} /*else { |
scoreVote -= 1; |
}*/ |
} |
boolean voteEstPositif = votes.get(cle).getVote() == 1; |
// un votant identifiant compte comme deux votants supplémentaires |
// il a donc un vote 3 fois supérieur |
int valeurVote = estUnAuteurIdentifie(idAuteur) ? 3 : 1; |
scoreVote += voteEstPositif ? valeurVote : -valeurVote; |
} |
scoreVote = (scoreVote / nbVotants) * 100; |
} |
return new MoyenneVote((new Double(scoreVote)).intValue(), propositionDetermination); |
/trunk/src/org/tela_botanica/del/client/composants/forum/ForumPresenteur.java |
---|
9,6 → 9,7 |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire; |
18,11 → 19,12 |
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.GestionnaireEvenementSuppressionCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.GestionnaireEvenementSuppressionDetermination; |
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.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.utils.ComparateurPropositionDetermination; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
110,5 → 112,14 |
chargerDeterminations(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
public void onVoteDetermination(VoteDetermination event) { |
// ceci permet d'avoir un classement à jour des déterminations à chaque vote |
// à voir si ça ne fait pas trop ramer les petites machines |
chargerDeterminations(); |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/interventions/ForumInterventionVue.java |
---|
89,6 → 89,13 |
proposition.setStyleName("enfant"); |
} |
if(determination.estPropositionInitiale()) { |
labelDeterminationProposee.setText(I18n.getVocabulary().determinationOriginalePar()); |
labelDeterminationProposee.addStyleName("indicationPropositionInitiale"); |
} else { |
labelDeterminationProposee.setText(I18n.getVocabulary().determinationProposeePar()); |
} |
if(determination.estPropositionRetenue()) { |
proposition.setTitle(I18n.getVocabulary().indicationPropositionValidee()); |
proposition.setStyleName("propositionRetenue"); |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationVue.java |
---|
6,19 → 6,15 |
import java.util.Map; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.utils.StringUtils; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
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.Composite; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
85,10 → 81,10 |
int votesAnonymesPour = 0; |
int votesAnonymesContre = 0; |
MoyenneVote moyenne = CalculVoteDeterminationService.calculerMoyenneVoteDetermination(propositionDetermination, listeVotes.size()); |
scorePour.setText(moyenne.getScore()+"%"); |
scoreContre.setText((100 - moyenne.getScore())+"%"); |
float votesPour = 0; |
float totalVotes = listeVotes.size(); |
for (Iterator<String> iterator = listeVotes.keySet().iterator(); iterator.hasNext();) { |
VoteDetermination voteDetermination = listeVotes.get(iterator.next()); |
if (voteDetermination.getVote() == 1) { |
98,6 → 94,7 |
} else { |
votesAnonymesPour++; |
} |
votesPour++; |
} else { |
//Votes contre |
if (voteDetermination.getAuteur() != null) { |
108,6 → 105,10 |
} |
} |
float moyennePour = (votesPour/totalVotes*100); |
scorePour.setText(StringUtils.formaterNombre(moyennePour, 2)+"%"); |
scoreContre.setText(StringUtils.formaterNombre(100 - moyennePour, 2)+"%"); |
if (votesAnonymesPour > 0) { |
LigneVotePresenteur presenteurVote= new LigneVotePresenteur(new LigneVoteVue(), votesAnonymesPour); |
presenteurVote.go(detailVotePour); |
/trunk/src/org/tela_botanica/del/client/composants/votes/barrerepartition/barreRepartition.css |
---|
86,7 → 86,7 |
.score { |
font-size:13px; |
color:#DDD; |
color:#333; |
font-weight:bold; |
margin-right:10px; |
width:28px; |
/trunk/src/org/tela_botanica/del/client/composants/votes/barrerepartition/BarreRepartitionVotePresenteur.java |
---|
53,8 → 53,10 |
} |
public void afficherVotes(MoyenneVote moyenneVote) { |
this.moyenneVote = moyenneVote; |
int score = moyenneVote.getScore(); |
String intitule = moyenneVote.getIntituleAssocie(); |
PropositionDetermination proposition = moyenneVote.getPropositionAssociee(); |
boolean estPropositionInitiale = false; |
/trunk/src/org/tela_botanica/del/client/composants/votes/barrerepartition/BarreRepartitionVoteVue.java |
---|
43,9 → 43,7 |
public void afficherVotes(int pourcentage, String nomTaxon, String auteur, boolean estPropositionInitiale) { |
this.nomTaxon.setText(nomTaxon); |
this.nomTaxon.setTitle(nomTaxon + " - " + auteur); |
if (pourcentage > 0) { |
score.setText(String.valueOf(pourcentage)); |
} |
score.setText(String.valueOf(pourcentage)); |
if (estPropositionInitiale) { |
this.nomTaxon.addStyleName("propositionInitiale"); |
} |