Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 921 → Rev 922

/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>