New file |
0,0 → 1,144 |
package org.tela_botanica.del.client.composants.votes.details; |
|
import java.util.Date; |
import java.util.Iterator; |
import java.util.List; |
import java.util.Map; |
|
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
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.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
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.Panel; |
import com.google.gwt.user.client.ui.Widget; |
|
public class DetailListeVotesDeterminationVue extends Composite implements DetailListeVotesDeterminationPresenteur.Vue { |
|
private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class); |
|
interface DetailListeVotesDeterminationVueUIiBinder extends UiBinder<Widget, DetailListeVotesDeterminationVue> { |
}; |
|
@UiField |
HTMLPanel titre, auteur, aucuneDonnees, detailVotePour, detailVoteContre; |
|
@UiField |
Label scorePour, scoreContre, date; |
|
@UiField |
Panel panneauChargement; |
|
public DetailListeVotesDeterminationVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
|
public String formaterDate(String dateNonFormatee) { |
try { |
DateTimeFormat parseur = DateTimeFormat.getFormat("yyyy-dd-MM HH:mm:ss"); |
Date date = parseur.parse(dateNonFormatee); |
|
DateTimeFormat formateur = DateTimeFormat.getFormat("dd/MM/yyyy"); |
return formateur.format(date); |
} catch (IllegalArgumentException e) { |
return ""; |
} |
} |
|
public String formaterDateQuiEstVraimentUneDateEtPasUnString(Date dateNonFormatee) { |
String retour = ""; |
try { |
DateTimeFormat formateur = DateTimeFormat.getFormat("dd/MM/yyyy"); |
retour = formateur.format(dateNonFormatee); |
} catch (IllegalArgumentException e) { |
} |
return retour; |
} |
|
@Override |
public void afficherVotes(PropositionDetermination propositionDetermination) { |
|
HTML htmlTitre = new HTML(propositionDetermination.getEspece()); |
titre.add(htmlTitre); |
|
HTML htmlAuteur = new HTML(I18n.getVocabulary().proposePar()+propositionDetermination.getAuteur()); |
auteur.add(htmlAuteur); |
|
Date datePropDet = propositionDetermination.getDate(); |
String date = formaterDateQuiEstVraimentUneDateEtPasUnString(datePropDet); |
this.date.setText(date); |
|
Map<String, VoteDetermination> listeVotes = propositionDetermination.getVotesDeterminations(); |
|
int votesAnonymesPour = 0; |
int votesAnonymesContre = 0; |
|
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) { |
//Votes pour |
if (voteDetermination.getAuteur() != null) { |
ajouterVote(voteDetermination, detailVotePour); |
} else { |
votesAnonymesPour++; |
} |
votesPour++; |
} else { |
//Votes contre |
if (voteDetermination.getAuteur() != null) { |
ajouterVote(voteDetermination, detailVoteContre); |
} else { |
votesAnonymesContre++; |
} |
} |
} |
|
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); |
} |
|
if (votesAnonymesContre > 0) { |
LigneVotePresenteur presenteurVote= new LigneVotePresenteur(new LigneVoteVue(), votesAnonymesContre); |
presenteurVote.go(detailVoteContre); |
} |
} |
|
public void ajouterVote(VoteDetermination vote, HasWidgets panel) { |
LigneVotePresenteur presenteurVote = new LigneVotePresenteur(new LigneVoteVue(), vote); |
presenteurVote.go(panel); |
} |
|
@Override |
public void startChargement() { |
panneauChargement.setHeight((this.getOffsetHeight()/2)+"px"); |
panneauChargement.setWidth((this.getOffsetWidth()/2)+"px"); |
panneauChargement.setVisible(true); |
} |
|
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
|
@Override |
public void afficherAucuneDonnees() { |
aucuneDonnees.setVisible(true); |
} |
} |