Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1832 → Rev 1833

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