/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationVue.java |
---|
5,8 → 5,10 |
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 com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
17,6 → 19,8 |
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; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
28,14 → 32,14 |
}; |
@UiField |
HTMLPanel titre, auteur, aucuneDonnees; |
HTMLPanel titre, auteur, aucuneDonnees, detailVotePour, detailVoteContre; |
@UiField |
Label scorePour, scoreContre; |
@UiField |
Panel panneauChargement; |
@UiField |
FlexTable htmlTableau; |
public DetailListeVotesDeterminationVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
50,44 → 54,48 |
auteur.add(htmlAuteur); |
Map<String, VoteDetermination> listeVotes = propositionDetermination.getVotesDeterminations(); |
htmlTableau.clear(); |
creerEntetes(); |
int votesAnonymesPour = 0; |
int votesAnonymesContre = 0; |
MoyenneVote moyenne = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination); |
scorePour.setText(String.valueOf(moyenne.getScore()) + '%'); |
scoreContre.setText(String.valueOf(100 - moyenne.getScore()) + '%'); |
for (Iterator<String> iterator = listeVotes.keySet().iterator(); iterator.hasNext();) { |
VoteDetermination voteDetermination = listeVotes.get(iterator.next()); |
ajouterVote(voteDetermination); |
VoteDetermination voteDetermination = listeVotes.get(iterator.next()); |
if (voteDetermination.getVote() == 1) { |
//Votes pour |
if (voteDetermination.getAuteur() != null) { |
ajouterVote(voteDetermination, detailVotePour); |
} else { |
votesAnonymesPour++; |
} |
} else { |
//Votes contre |
if (voteDetermination.getAuteur() != null) { |
ajouterVote(voteDetermination, detailVoteContre); |
} else { |
votesAnonymesContre++; |
} |
} |
} |
} |
private void creerEntetes() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().valeurVote()); |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().date()); |
} |
@Override |
public void ajouterVote(VoteDetermination vote) { |
int index = htmlTableau.getRowCount() + 1; |
String valeurVote = (vote.getVote() == 1) ? I18n.getVocabulary().oui() : I18n.getVocabulary().non(); |
String contributeur; |
try { |
contributeur = Integer.parseInt(vote.getContributeur())+""; |
} catch (Exception e) { |
contributeur = I18n.getVocabulary().anonyme(); |
if (votesAnonymesPour > 0) { |
LigneVotePresenteur presenteurVote= new LigneVotePresenteur(new LigneVoteVue(), votesAnonymesPour); |
presenteurVote.go(detailVotePour); |
} |
if(vote.getAuteur() != null) { |
contributeur = vote.getAuteur().getNomComplet(); |
if (votesAnonymesContre > 0) { |
LigneVotePresenteur presenteurVote= new LigneVotePresenteur(new LigneVoteVue(), votesAnonymesContre); |
presenteurVote.go(detailVoteContre); |
} |
htmlTableau.setHTML(index, 1, contributeur); |
htmlTableau.setHTML(index, 2, valeurVote+""); |
htmlTableau.setHTML(index, 3, DateTimeFormat.getFormat("dd/MM/yyyy").format(vote.getDate())); |
} |
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"); |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/LigneVoteVue.ui.xml |
---|
New file |
0,0 → 1,12 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="ligneVote.css" /> |
<g:HTMLPanel styleName="nettoyage"> |
<g:Label ui:field="auteur" styleName="{style.auteur}"></g:Label> |
<g:Label ui:field="dateOuNb" styleName="{style.colonne2}"></g:Label> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/LigneVotePresenteur.java |
---|
New file |
0,0 → 1,56 |
package org.tela_botanica.del.client.composants.votes.details; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class LigneVotePresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public void setAuteur(String auteur); |
public void setColonneDateEtNb(String date); |
} |
private Vue vue; |
private VoteDetermination vote; |
public LigneVotePresenteur(Vue vue, VoteDetermination vote) { |
this.vue = vue; |
this.vote = vote; |
afficherProposition(); |
} |
//Pour les votes anonymes |
public LigneVotePresenteur(Vue vue, int nbVotes) { |
this.vue = vue; |
vue.setAuteur(I18n.getMessages().etVotesAnonymes(String.valueOf(nbVotes))); |
} |
public void afficherProposition() { |
vue.setAuteur(vote.getAuteur().getNomComplet()); |
vue.setColonneDateEtNb(DateTimeFormat.getFormat("dd/MM/yyyy").format(vote.getDate())); |
} |
/** |
* Declenchement du présenteur |
*/ |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
gererEvenements(); |
} |
protected void gererEvenements() { |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/LigneVoteVue.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.composants.votes.details; |
import com.google.gwt.core.client.GWT; |
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.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class LigneVoteVue extends Composite implements LigneVotePresenteur.Vue { |
interface LigneVoteVueUiBinder extends UiBinder<Widget, LigneVoteVue> {}; |
private static LigneVoteVueUiBinder uiBinder = GWT.create(LigneVoteVueUiBinder.class); |
//Composants |
@UiField |
Label auteur, dateOuNb; |
public LigneVoteVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public void setAuteur(String auteur) { |
this.auteur.setText(auteur); |
} |
@Override |
public void setColonneDateEtNb(String date) { |
this.dateOuNb.setText(date); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/detailListeVotesDeterminationVue.css |
---|
4,17 → 4,12 |
padding-right: 21px; |
padding-top: 20px; |
background: white; |
width: 370px; |
width: 600px; |
margin: 0 auto; |
margin-top: 5%; |
padding-bottom:50px; |
} |
.table { |
border:solid 1px #DDD; |
width: 100%; |
} |
.chargement { |
padding-left: 165px; |
} |
30,3 → 25,38 |
text-transform: none; |
margin-top: -10px; |
} |
.detailVotePour { |
width:250px; |
float:left; |
} |
.detailVoteContre { |
width:250px; |
float:left; |
} |
.titreVotes div { |
font-size:16px; |
color:#8EB533; |
margin-bottom:5px; |
margin-right:15px; |
float:left; |
font-weight:bold; |
} |
.titreVotesContre div { |
color:#C61717; |
} |
.detailVotes { |
clear:left; |
} |
.detailVotes div { |
float:left; |
font-size:12px; |
margin-bottom:1px; |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationVue.ui.xml |
---|
8,10 → 8,29 |
<g:HTMLPanel styleName="{style.conteneurTableauVotes}"> |
<g:HTMLPanel ui:field='titre' styleName="titre" /> |
<g:HTMLPanel ui:field='auteur' styleName="{style.auteur}" /> |
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" /> |
<g:HTMLPanel styleName="{style.detailVotePour}"> |
<g:HTMLPanel styleName="{style.titreVotes}"> |
<g:Label>Votes Pour</g:Label> |
<g:Label ui:field="scorePour">%</g:Label> |
</g:HTMLPanel> |
<g:HTMLPanel ui:field="detailVotePour" styleName="{style.detailVotes}"> |
</g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.detailVoteContre}"> |
<g:HorizontalPanel styleName="{style.titreVotes} {style.titreVotesContre}"> |
<g:Label>Votes Contre</g:Label> |
<g:Label ui:field="scoreContre">%</g:Label> |
</g:HorizontalPanel> |
<g:HTMLPanel ui:field="detailVoteContre" styleName="{style.detailVotes}"> |
</g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel ui:field="panneauChargement" styleName="{style.chargement}"> |
<g:Image url="./img/wait.gif"></g:Image> |
</g:HTMLPanel> |
<g:HTMLPanel ui:field="aucuneDonnees" visible="false"><g:Label text="{constants.aucunVoteEffectue}"></g:Label></g:HTMLPanel> |
<g:HTML> |
<br class="nettoyage" /> |
</g:HTML> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/ligneVote.css |
---|
New file |
0,0 → 1,8 |
.auteur { |
padding-right:10px; |
width:150px; |
} |
.colonne2:before { |
content:(' - '); |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationPresenteur.java |
---|
17,8 → 17,6 |
public interface Vue extends IsWidget { |
public void afficherVotes(PropositionDetermination propositionDetermination); |
void ajouterVote(VoteDetermination vote); |
void stopChargement(); |
void startChargement(); |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.ui.xml |
---|
8,7 → 8,7 |
<g:HTMLPanel styleName="{style.conteneurTableauVotes}"> |
<g:HTMLPanel ui:field='titre' styleName="titre" /> |
<g:HTMLPanel ui:field='auteur' styleName="{style.auteur}" /> |
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" /> |
<g:HTMLPanel ui:field="ligneCommentaire" styleName="{style.zoneCommentaires}"></g:HTMLPanel> |
<g:HTMLPanel ui:field="panneauChargement" styleName="{style.chargement}"> |
<g:Image url="./img/wait.gif"></g:Image> |
</g:HTMLPanel> |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/LigneCommentaireVue.java |
---|
New file |
0,0 → 1,38 |
package org.tela_botanica.del.client.composants.commentaires; |
import com.google.gwt.core.client.GWT; |
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.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class LigneCommentaireVue extends Composite implements LigneCommentairePresenteur.Vue { |
interface LigneCommentaireVueUiBinder extends UiBinder<Widget, LigneCommentaireVue> {}; |
private static LigneCommentaireVueUiBinder uiBinder = GWT.create(LigneCommentaireVueUiBinder.class); |
//Composants |
@UiField |
Label commentaire, auteur, date; |
public LigneCommentaireVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public void setCommentaire(String commentaire) { |
this.commentaire.setText(commentaire); |
} |
@Override |
public void setAuteur(String auteur) { |
this.auteur.setText(auteur); |
} |
@Override |
public void setDate(String date) { |
this.date.setText(date); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.java |
---|
7,12 → 7,10 |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
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.Button; |
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.Panel; |
36,12 → 34,9 |
HTMLPanel titre, auteur, aucuneDonnees; |
@UiField |
Panel panneauChargement; |
Panel panneauChargement, ligneCommentaire; |
@UiField |
FlexTable htmlTableau; |
@UiField |
Button boutonAjoutCommentaire; |
@Override |
65,15 → 60,9 |
HTML htmlAuteur = new HTML(I18n.getVocabulary().proposePar()+propositionDetermination.getAuteur()); |
auteur.add(htmlAuteur); |
htmlTableau.clear(); |
creerEntetes(); |
LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), propositionDetermination); |
presenteurCommentaire.go(ligneCommentaire); |
if (propositionDetermination.getCommentaire() != null && propositionDetermination.getCommentaire() != "") { |
htmlTableau.setHTML(2, 1, propositionDetermination.getAuteur()); |
htmlTableau.setHTML(2, 2, propositionDetermination.getCommentaire()); |
htmlTableau.setHTML(2, 3, DateTimeFormat.getFormat("dd/MM/yyyy").format(propositionDetermination.getDate())); |
} |
creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires()); |
} |
96,22 → 85,11 |
* @param commentaire |
*/ |
private void chargerCommentaire(Commentaire commentaire) { |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setHTML(ligne, 1, commentaire.getAuteur()); |
htmlTableau.setHTML(ligne, 2, commentaire.getCommentaire()); |
htmlTableau.setHTML(ligne, 3, DateTimeFormat.getFormat("dd/MM/yyyy").format(commentaire.getDate())); |
LigneCommentairePresenteur presenteurCommentaire = new LigneCommentairePresenteur(new LigneCommentaireVue(), commentaire); |
presenteurCommentaire.go(ligneCommentaire); |
} |
/** |
* Affiche les en-têtes du tableau de commentaires |
*/ |
private void creerEntetes() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().commentaire()); |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().date()); |
} |
/** |
* Affiche un icone de début de chargement |
*/ |
@Override |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/ligneCommentaire.css |
---|
New file |
0,0 → 1,25 |
.commentaire { |
font-size: 11px; |
background: #DDD; |
padding: 3px; |
margin-bottom:5px; |
} |
.auteur { |
padding-left:3px; |
float: left; |
font-size:11px; |
color:#AAA; |
font-style:italic; |
} |
.date { |
float: left; |
font-size:11px; |
color:#DDD; |
font-style:italic; |
} |
.date:before { |
content:", "; |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/LigneCommentaireVue.ui.xml |
---|
New file |
0,0 → 1,17 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="ligneCommentaire.css" /> |
<g:HTMLPanel> |
<g:HorizontalPanel ui:field="zoneAuteur"> |
<g:Label ui:field="auteur" styleName="{style.auteur}"/> |
<g:Label ui:field="date" styleName="{style.date}"/> |
</g:HorizontalPanel> |
<g:HTMLPanel> |
<g:Label ui:field="commentaire" styleName="commentaire {style.commentaire}"/> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/detailCommentaireVue.css |
---|
34,3 → 34,8 |
.boutonAjouterCommentaire { |
margin:30px 0; |
} |
.zoneCommentaires { |
max-height: 400px; |
overflow:auto; |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/LigneCommentairePresenteur.java |
---|
New file |
0,0 → 1,70 |
package org.tela_botanica.del.client.composants.commentaires; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class LigneCommentairePresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public void setCommentaire(String commentaire); |
public void setAuteur(String auteur); |
public void setDate(String date); |
} |
private Vue vue; |
private PropositionDetermination proposition; |
private Commentaire commentaire; |
public LigneCommentairePresenteur(Vue vue, PropositionDetermination proposition) { |
this.vue = vue; |
this.proposition = proposition; |
afficherCommentaire(); |
} |
public LigneCommentairePresenteur(Vue vue, Commentaire commentaire) { |
this.vue = vue; |
this.commentaire = commentaire; |
afficherCommentaire(); |
} |
public void afficherCommentaire() { |
if (proposition != null) { |
String commentaire = proposition.getCommentaire(); |
vue.setCommentaire(commentaire); |
String date = DateTimeFormat.getFormat("dd/MM/yyyy").format(proposition.getDate()); |
vue.setDate(date); |
String auteur = proposition.getAuteur(); |
vue.setAuteur(auteur); |
} else if (commentaire != null) { |
String commentaire = this.commentaire.getCommentaire(); |
vue.setCommentaire(commentaire); |
String date = DateTimeFormat.getFormat("dd/MM/yyyy").format(this.commentaire.getDate()); |
vue.setDate(date); |
String auteur = this.commentaire.getAuteur(); |
vue.setAuteur(auteur); |
} |
} |
/** |
* Declenchement du présenteur |
*/ |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
gererEvenements(); |
} |
protected void gererEvenements() { |
} |
} |