/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentairePresenteur.java |
---|
New file |
0,0 → 1,69 |
package org.tela_botanica.del.client.composants.commentaires; |
import java.util.HashMap; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class DetailCommentairePresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination); |
void stopChargement(); |
void startChargement(); |
} |
private Vue vue; |
private PropositionDetermination propositionDetermination; |
public DetailCommentairePresenteur(Vue vue, PropositionDetermination propositionDetermination) { |
this.vue = vue; |
this.propositionDetermination = propositionDetermination; |
} |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
public void afficherCommentaires() { |
vue.startChargement(); |
VoteDeterminationServiceConcret voteService = new VoteDeterminationServiceConcret(); |
voteService.consulterVotesPourPropositionDetermination(propositionDetermination, new VoteDeterminationCallback() { |
@Override |
public void surRetour(String messageRetour) { |
HashMap<String, VoteDetermination> votesComplets = UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination); |
if (votesComplets != null) { |
propositionDetermination.setVotesDeterminations(UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination)); |
vue.afficherCommentairesProposition(propositionDetermination); |
vue.stopChargement(); |
} else { |
vue.stopChargement(); |
} |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.stopChargement(); |
} |
}); |
} |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.java |
---|
New file |
0,0 → 1,88 |
package org.tela_botanica.del.client.composants.commentaires; |
import java.util.List; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
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.FlexTable; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
public class DetailCommentaireVue extends Composite implements DetailCommentairePresenteur.Vue { |
private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class); |
interface DetailListeVotesDeterminationVueUIiBinder extends UiBinder<Widget, DetailCommentaireVue> { |
}; |
@UiField |
HTMLPanel titre; |
@UiField |
Panel panneauChargement; |
@UiField |
FlexTable htmlTableau; |
public DetailCommentaireVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) { |
htmlTableau.clear(); |
creerEntetes(); |
if (propositionDetermination.getCommentaire() != null && propositionDetermination.getCommentaire() != "") { |
htmlTableau.setHTML(2, 1, propositionDetermination.getAuteur()); |
htmlTableau.setHTML(2, 2, propositionDetermination.getCommentaire()); |
htmlTableau.setHTML(2, 3, propositionDetermination.getDate() + ""); |
} |
creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires()); |
} |
private void creerListeCommentaireRecursive(List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
chargerCommentaire(commentaire); |
if (commentaire.getListeCommentaires().size() > 0) { |
creerListeCommentaireRecursive(commentaire.getListeCommentaires()); |
} |
} |
} |
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, commentaire.getDate() + ""); |
} |
private void creerEntetes() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().commentaire()); |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().date()); |
} |
@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); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/detailCommentaireVue.css |
---|
New file |
0,0 → 1,20 |
.conteneurTableauVotes { |
z-index: 1500; |
padding: 30px; |
padding-right: 21px; |
padding-top: 20px; |
background: white; |
width: 370px; |
margin: 0 auto; |
margin-top: 5%; |
padding-bottom:50px; |
} |
.table { |
border:solid 1px #DDD; |
width: 100%; |
} |
.chargement { |
padding-left: 165px; |
} |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.ui.xml |
---|
New file |
0,0 → 1,15 |
<!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="detailCommentaireVue.css" /> |
<g:HTMLPanel styleName="{style.conteneurTableauVotes}"> |
<g:HTMLPanel ui:field='titre' styleName="titre" /> |
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" /> |
<g:HTMLPanel ui:field="panneauChargement" styleName="{style.chargement}"> |
<g:Image url="./img/wait.gif"></g:Image> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |