/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/formulaireCommentaire.css |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.ui.xml |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentairePresenteur.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
14,52 → 14,38 |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.detail.DetailImageObservationPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.VerticalPanel; |
public class DeterminationPresenteur extends Presenteur { |
public abstract interface Vue extends IsWidget { |
public VerticalPanel getForum(); |
public VerticalPanel getDetailImageObservation(); |
public VerticalPanel getFormulaireRechercheEflore(); |
public VerticalPanel getVote(); |
public VerticalPanel getBarreRepartition(); |
public Button getBoutonAjoutProposition(); |
} |
private Vue vue; |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur; |
public DeterminationPresenteur(Vue vue) { |
this.vue = vue; |
public DeterminationPresenteur() { |
super(new DeterminationVue()); |
} |
public void go(HasWidgets composite) { |
DeterminationVue determinationVue = (DeterminationVue)getVue(); |
new DetailImageObservationPresenteur().go(vue.getDetailImageObservation()); |
new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVote()); |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore()); |
new DetailImageObservationPresenteur().go(determinationVue.getDetailImageObservation()); |
new EnsembleVotesPresenteur().go(determinationVue.getVote()); |
new ForumPresenteur().go(determinationVue.getForum()); |
new FormulaireRechercheEflorePresenteur().go(determinationVue.getFormulaireRechercheEflore()); |
barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue()); |
barreRepartitionVotePresenteur.go(vue.getBarreRepartition()); |
barreRepartitionVotePresenteur.go(determinationVue.getBarreRepartition()); |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
composite.add(vue.asWidget()); |
composite.add(determinationVue); |
gererEvenements(); |
} |
80,11 → 66,11 |
} |
}); |
vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() { |
((DeterminationVue)getVue()).getBoutonAjoutProposition().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue())); |
ouvrirFenetreModale(new FormulairePropositionPresenteur()); |
} |
}); |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java |
---|
8,7 → 8,7 |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class DeterminationVue extends Composite implements DeterminationPresenteur.Vue { |
public class DeterminationVue extends Composite { |
@UiField |
VerticalPanel forum, detailImageObservation, formulaireRechercheEflore, vote, barreRepartition; |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/LigneForumPresenteur.java |
---|
New file |
0,0 → 1,38 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue; |
import com.google.gwt.user.client.ui.FlexTable; |
public class LigneForumPresenteur { |
private LigneForumVue ligneforumVue; |
private BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue()); |
private PropositionDetermination determination; |
public LigneForumPresenteur(PropositionDetermination propositionDetermination) { |
this.determination = propositionDetermination; |
} |
public void go(FlexTable tableParente) { |
ligneforumVue = new LigneForumVue(tableParente); |
barreRepartitionVotePresenteur.gererEvenements(); |
chargerDetermination(); |
} |
private void chargerDetermination() { |
calculerEtAfficherVoteDetermination(); |
ligneforumVue.chargerDetermination(determination,barreRepartitionVotePresenteur.getBarreRepartitionVoteVue()); |
} |
private void calculerEtAfficherVoteDetermination() { |
MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(determination); |
barreRepartitionVotePresenteur.afficherVotes(votes); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
3,42 → 3,23 |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
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; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ForumPresenteur { |
public interface Vue extends IsWidget { |
public abstract void initialiserEntetesTableau(); |
public abstract void ajouterLigne(PropositionDetermination determination, |
IsWidget barreRepartition); |
public abstract HasWidgets getTable(); |
} |
private Vue vue; |
private ForumVue forumVue = new ForumVue(); |
private List<PropositionDetermination> determinations; |
public ForumPresenteur(Vue vue) { |
this.vue = vue; |
} |
public void go(HasWidgets composite) { |
chargerDeterminations(); |
composite.add(vue.asWidget()); |
composite.add(forumVue); |
gererEvenements(); |
} |
45,10 → 26,11 |
private void chargerDeterminations() { |
determinations = CacheClient.getInstance().getObservationCourante().getPropositionsDetermination(); |
vue.initialiserEntetesTableau(); |
forumVue.initialiserEntetesTableau(); |
for (PropositionDetermination determination : determinations) { |
ajouterPropositionDetermination(determination); |
LigneForumPresenteur ligne = new LigneForumPresenteur(determination); |
ligne.go(forumVue.getTable()); |
} |
} |
57,27 → 39,9 |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
ajouterPropositionDetermination(event.getPropositionDetermination()); |
LigneForumPresenteur ligne = new LigneForumPresenteur(event.getPropositionDetermination()); |
ligne.go(forumVue.getTable()); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() { |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
//TODO gérer l'ajout de commentaire |
} |
}); |
} |
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) { |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue()); |
calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination); |
vue.ajouterLigne(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue()); |
} |
private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) { |
MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination); |
barreRepartitionVotePresenteur.afficherVotes(votes); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/LigneForumVue.java |
---|
New file |
0,0 → 1,62 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
import java.util.Date; |
import java.util.List; |
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.i18n.client.DateTimeFormat.PredefinedFormat; |
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.IsWidget; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
public class LigneForumVue extends Composite { |
FlexTable tableParente; |
HTMLPanel barreRepartition; |
public LigneForumVue(FlexTable flexTable) { |
tableParente = flexTable; |
} |
public void chargerDetermination(PropositionDetermination determination, IsWidget barreRepartition) { |
Tree arbreCommentaires = new Tree(); |
TreeItem racineArbreCommentaires = new TreeItem(); |
arbreCommentaires.addItem(racineArbreCommentaires); |
creerListeCommentaireRecursive(racineArbreCommentaires, determination.getCommentaires()); |
int ligne = tableParente.getRowCount() + 1; |
tableParente.setWidget(ligne, 1, barreRepartition); |
tableParente.setHTML(ligne, 2, determination.getContributeur()); |
tableParente.setHTML(ligne, 3, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate())); |
tableParente.setWidget(ligne, 4, arbreCommentaires); |
} |
private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
String commentaireHTML = commentaire.getCommentaire() +" "+ commentaire.getAuteur() + "-"+formaterDatePourForum(commentaire.getDate()); |
parentTreeItem.setHTML(commentaireHTML); |
if (commentaire.getListeCommentaires().size() != 0) { |
TreeItem childTreeItem = new TreeItem(); |
parentTreeItem.addItem(childTreeItem); |
creerListeCommentaireRecursive(childTreeItem, commentaire.getListeCommentaires()); |
} |
} |
parentTreeItem.setState(true); |
} |
private String formaterDatePourForum(Date date) { |
return DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(date); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java |
---|
6,7 → 6,6 |
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 org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur.Vue; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
15,12 → 14,11 |
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.IsWidget; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
import com.google.gwt.user.client.ui.Widget; |
public class ForumVue extends Composite implements Vue { |
public class ForumVue extends Composite { |
private static ForumUIiBinder uiBinder = GWT.create(ForumUIiBinder.class); |
34,10 → 32,6 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
/* (non-Javadoc) |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#initialiserEntetesTableau() |
*/ |
@Override |
public void initialiserEntetesTableau() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().nom()); |
47,48 → 41,7 |
htmlTableau.setHTML(1, 5, I18n.getVocabulary().commentaire()); |
} |
/* (non-Javadoc) |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#ajouterLigne(org.tela_botanica.del.client.modeles.PropositionDetermination, com.google.gwt.user.client.ui.IsWidget) |
*/ |
@Override |
public void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition) { |
Tree arbreCommentaires = new Tree(); |
TreeItem racineArbreCommentaires = new TreeItem(); |
arbreCommentaires.addItem(racineArbreCommentaires); |
creerListeCommentaireRecursive(racineArbreCommentaires, determination.getListeCommentaires()); |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setWidget(ligne, 1, barreRepartition); |
htmlTableau.setHTML(ligne, 2, determination.getContributeur()); |
htmlTableau.setHTML(ligne, 3, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate())); |
htmlTableau.setWidget(ligne, 4, arbreCommentaires); |
} |
/* (non-Javadoc) |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#getTable() |
*/ |
@Override |
public FlexTable getTable() { |
return htmlTableau; |
} |
private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
String commentaireHTML = commentaire.getCommentaire() +" "+ commentaire.getAuteur() + "-"+formaterDatePourForum(commentaire.getDate()); |
parentTreeItem.setHTML(commentaireHTML); |
if (commentaire.getListeCommentaires().size() != 0) { |
TreeItem childTreeItem = new TreeItem(); |
parentTreeItem.addItem(childTreeItem); |
creerListeCommentaireRecursive(childTreeItem, commentaire.getListeCommentaires()); |
} |
} |
parentTreeItem.setState(true); |
} |
private String formaterDatePourForum(Date date) { |
return DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(date); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionPresenteur.java |
---|
14,32 → 14,19 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulairePropositionPresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public abstract HasText getNomPrenom(); |
public abstract HasWidgets getPropositionTaxon(); |
public abstract HasText getCommentaires(); |
public abstract HasClickHandlers getBoutonValidationProposition(); |
public abstract void afficherStyleErreur(String styleErreur); |
public abstract void supprimerStyleErreur(String styleErreur); |
} |
private Vue vue; |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
private String urlServiceCompletionNom = "http://www.tela-botanica.org/eflore/cel2/jrest/NameSearch/"; |
public FormulairePropositionPresenteur(Vue vue) { |
this.vue = vue; |
public FormulairePropositionPresenteur() { |
super(new FormulairePropositionVue()); |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(urlServiceCompletionNom) { |
@Override |
51,13 → 38,13 |
public void go(HasWidgets composite) { |
autoCompletionNomTaxonsPresenteur.go(vue.getPropositionTaxon()); |
composite.add(vue.asWidget()); |
autoCompletionNomTaxonsPresenteur.go(((FormulairePropositionVue)getVue()).getPropositionTaxon()); |
composite.add((FormulairePropositionVue)getVue()); |
gererEvenements(); |
} |
protected void gererEvenements() { |
vue.getBoutonValidationProposition().addClickHandler(new ClickHandler() { |
((FormulairePropositionVue)getVue()).getBoutonValidationProposition().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
77,17 → 64,7 |
private boolean validerSaisieProposition() { |
ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) { |
@Override |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreur(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreur(styleErreur); |
} |
}; |
ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(((FormulairePropositionVue)getVue()).getNomPrenom()); |
boolean taxonSaisi = validateurTaxon.valider(); |
return taxonSaisi; |
98,9 → 75,9 |
PropositionDetermination propositionAjoutee = new PropositionDetermination(); |
propositionAjoutee.setId(CacheClient.getInstance().getImageCourante().getIdImage()); |
String auteur = vue.getNomPrenom().getText(); |
if (vue.getCommentaires().getText() != "") { |
String contenuCommentaire = vue.getCommentaires().getText(); |
String auteur = ((FormulairePropositionVue)getVue()).getNomPrenom().getText(); |
if (((FormulairePropositionVue)getVue()).getCommentaires().getText() != "") { |
String contenuCommentaire = ((FormulairePropositionVue)getVue()).getCommentaires().getText(); |
Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire); |
propositionAjoutee.ajouterCommentaire(comm); |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulaireproposition/FormulairePropositionVue.java |
---|
1,5 → 1,8 |
package org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition; |
import java.util.Iterator; |
import java.util.List; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
6,11 → 9,12 |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.LayoutPanel; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.TextArea; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class FormulairePropositionVue extends Composite implements FormulairePropositionPresenteur.Vue { |
public class FormulairePropositionVue extends Composite { |
@UiField(provided = true) |
public TextBox nomPrenom = new TextBox(); |
33,35 → 37,19 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public TextBox getNomPrenom() { |
return nomPrenom; |
} |
@Override |
public LayoutPanel getPropositionTaxon() { |
return propositionTaxon; |
} |
@Override |
public TextArea getCommentaires() { |
return commentaires; |
} |
@Override |
public Button getBoutonValidationProposition() { |
return boutonValidationProposition; |
} |
@Override |
public void afficherStyleErreur(String styleErreur) { |
nomPrenom.addStyleName(styleErreur); |
propositionTaxon.addStyleName(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
nomPrenom.removeStyleName(styleErreur); |
propositionTaxon.removeStyleName(styleErreur); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVotePresenteur.java |
---|
23,12 → 23,12 |
public class BarreRepartitionVotePresenteur { |
public interface Vue extends IsWidget { |
public void afficherVotes(int pourcentage, String NomTaxon); |
public IsWidget getBarreRepartitionHtmlBrut(); |
public HasClickHandlers getBoutonOui(); |
public HasClickHandlers getBoutonNon(); |
public void setVoteOuiEffectue(); |
public void setVoteNonEffectue(); |
public abstract void afficherVotes(int pourcentage, String NomTaxon); |
public abstract IsWidget getBarreRepartitionHtmlBrut(); |
public abstract HasClickHandlers getBoutonOui(); |
public abstract HasClickHandlers getBoutonNon(); |
public abstract void setVoteOuiEffectue(); |
public abstract void setVoteNonEffectue(); |
} |
private Vue vue; |