Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 656 → Rev 658

/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/observations/ObservationPresenteur.java
56,7 → 56,7
public void chargerObservation() {
new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel());
new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonneesPanel());
observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionsDetermination());
observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
 
gererEvenements();
108,6 → 108,6
}
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
observationDeterminationPresenteur.setPropositions(observation.getPropositionsDetermination());
observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ArbreCommentaireVue.java
1,5 → 1,6
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
9,27 → 10,32
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
 
public class ArbreCommentaireVue extends Tree implements ArbreCommentairePresenteur.Vue {
 
public ArbreCommentaireVue() {
super();
}
 
public void creerArbreCommentaire(PossesseurDeCommentaires possesseurDeCommentaires) {
TreeItem racineArbreCommentaires = new TreeItem();
addItem(racineArbreCommentaires);
creerListeCommentaireRecursive(racineArbreCommentaires, possesseurDeCommentaires.getListeCommentaires());
 
if (possesseurDeCommentaires instanceof Commentaire) {
List<Commentaire> commentaires = new ArrayList<Commentaire>();
commentaires.add((Commentaire) possesseurDeCommentaires);
creerListeCommentaireRecursive(racineArbreCommentaires, commentaires);
} else {
creerListeCommentaireRecursive(racineArbreCommentaires, possesseurDeCommentaires.getListeCommentaires());
}
}
 
private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) {
 
for (Commentaire commentaire : commentaires) {
HorizontalPanel p = new HorizontalPanel();
String commentaireHTML = commentaire.getCommentaire() +" "+ commentaire.getAuteur() + "-"+formaterDatePourForum(commentaire.getDate());
String commentaireHTML = commentaire.getCommentaire() + " " + commentaire.getAuteur() + "-" + formaterDatePourForum(commentaire.getDate());
HTML commentaireWidget = new HTML(commentaireHTML);
parentTreeItem.setWidget(commentaireWidget);
if (commentaire.getListeCommentaires().size() != 0) {
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java
1,10 → 1,10
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur;
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.InterventionForum;
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;
13,28 → 13,28
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 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, IsWidget arbreCommentaires);
 
public abstract void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires);
 
public void ajouterLigne(Commentaire commentaire, IsWidget arbreCommentaires);
 
public abstract HasWidgets getTable();
}
 
private Vue vue;
private List<PropositionDetermination> determinations;
 
public ForumPresenteur(Vue vue) {
this.vue = vue;
}
 
public void go(HasWidgets composite) {
 
chargerDeterminations();
44,11 → 44,14
}
 
private void chargerDeterminations() {
determinations = CacheClient.getInstance().getObservationCourante().getPropositionsDetermination();
vue.initialiserEntetesTableau();
 
for (PropositionDetermination determination : determinations) {
ajouterPropositionDetermination(determination);
for (InterventionForum proposition : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
if (proposition instanceof PropositionDetermination) {
ajouterPropositionDetermination((PropositionDetermination) proposition);
} else if (proposition instanceof Commentaire) {
ajouterCommentaire((Commentaire) proposition);
}
}
}
 
60,26 → 63,29
ajouterPropositionDetermination(event.getPropositionDetermination());
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
//TODO gérer l'ajout de commentaire
ajouterCommentaire(event.getCommentaire());
}
});
}
 
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());
calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
vue.ajouterLigne(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
}
private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {
 
private void ajouterCommentaire(Commentaire proposition) {
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition);
vue.ajouterLigne(proposition, arbreCommentairePresenteur.getArbreCommentaireVue());
}
 
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/ForumVue.java
1,8 → 1,5
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
import java.util.Date;
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;
9,19 → 6,13
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur.Vue;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
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.HorizontalPanel;
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 {
33,15 → 24,16
 
@UiField
FlexTable htmlTableau;
 
public ForumVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
/* (non-Javadoc)
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#initialiserEntetesTableau()
/*
* (non-Javadoc)
*
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue#
* initialiserEntetesTableau()
*/
@Override
public void initialiserEntetesTableau() {
52,17 → 44,25
htmlTableau.setHTML(1, 4, I18n.getVocabulary().date());
htmlTableau.setHTML(1, 5, I18n.getVocabulary().commentaire());
}
 
@Override
public void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires) {
 
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);
htmlTableau.setHTML(ligne, 2, determination.getAuteur());
htmlTableau.setHTML(ligne, 4, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate()));
htmlTableau.setWidget(ligne, 5, arbreCommentaires);
}
 
public void ajouterLigne(Commentaire commentaire, IsWidget arbreCommentaires) {
 
int ligne = htmlTableau.getRowCount() + 1;
htmlTableau.setHTML(ligne, 2, commentaire.getAuteur());
htmlTableau.setHTML(ligne, 4, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(commentaire.getDate()));
htmlTableau.setWidget(ligne, 5, arbreCommentaires);
}
 
@Override
public FlexTable getTable() {
return htmlTableau;
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentairePresenteur.java
2,8 → 2,10
 
import java.util.Date;
 
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
 
14,25 → 16,28
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class FormulaireCommentairePresenteur {
public class FormulaireCommentairePresenteur extends Presenteur{
private PossesseurDeCommentaires objetACommenter;
private Observation observation;
public interface Vue extends IsWidget {
public abstract HasText getNomPrenom();
public abstract HasText getCommentaire();
public abstract HasClickHandlers getBoutonValidationCommentaire();
public void afficherStyleErreur(String styleErreur);
public void supprimerStyleErreur(String styleErreur);
}
private Vue vue;
 
public FormulaireCommentairePresenteur(PossesseurDeCommentaires objetACommenter, Vue vue) {
this.objetACommenter = objetACommenter;
public FormulaireCommentairePresenteur(Observation observation, Vue vue) {
this.observation = observation;
this.vue = vue;
}
 
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
gererEvenements();
}
 
protected void gererEvenements() {
40,15 → 45,52
@Override
public void onClick(ClickEvent event) {
if (!validerNomPrenom()||!validerCommentaire()) {
return;
}
String texteCommentaire = vue.getCommentaire().getText();
String nomPrenom = vue.getNomPrenom().getText();
Commentaire commentaire = new Commentaire(nomPrenom, new Date(), texteCommentaire);
objetACommenter.ajouterCommentaire(commentaire);
observation.getInterventionsForum().add(commentaire);
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire));
}
});
}
private boolean validerNomPrenom() {
 
ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) {
@Override
public void afficherStyleErreur(String styleErreur) {
vue.afficherStyleErreur(styleErreur);
}
@Override
public void supprimerStyleErreur(String styleErreur) {
vue.supprimerStyleErreur(styleErreur);
}
};
return validateurTaxon.valider();
}
private boolean validerCommentaire() {
 
ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) {
@Override
public void afficherStyleErreur(String styleErreur) {
vue.afficherStyleErreur(styleErreur);
}
@Override
public void supprimerStyleErreur(String styleErreur) {
vue.supprimerStyleErreur(styleErreur);
}
};
return validateurCommentaire.valider();
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.java
43,4 → 43,16
public Button getBoutonValidationCommentaire() {
return boutonValidationCommentaire;
}
@Override
public void afficherStyleErreur(String styleErreur) {
nomPrenom.addStyleName(styleErreur);
commentaire.addStyleName(styleErreur);
}
 
@Override
public void supprimerStyleErreur(String styleErreur) {
nomPrenom.removeStyleName(styleErreur);
commentaire.removeStyleName(styleErreur);
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java
21,6 → 21,8
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteDetermination;
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.navigation.evenement.voteDetermination.EvenementVoteDetermination;
28,6 → 30,8
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
import org.tela_botanica.del.client.services.rest.ProtocoleService;
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire.FormulaireCommentairePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire.FormulaireCommentaireVue;
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;
49,6 → 53,7
public Panel getFormulaireRechercheEflore();
public Panel getVoteProtocole();
public Button getBoutonAjoutProposition();
public Button getBoutonAjoutCommentaire();
public HasWidgets getMetadonnees();
//public void ajouterLigneVoteProtocole(IsWidget vue);
//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
97,7 → 102,7
private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
 
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionsDetermination());
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations());
if (votesOrdonnes.size() > 0) {
String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
vue.afficherNomTaxonProbable(nomTaxon);
119,6 → 124,15
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
}
});
vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new FormulaireCommentaireVue());
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
@Override
128,5 → 142,15
}
}
});
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
fenetreOverlaySimplePresenteur.fermerFenetreModale();
}
}
});
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java
5,14 → 5,10
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.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
 
public class DeterminationVue extends Composite implements DeterminationPresenteur.Vue {
24,7 → 20,7
Label nomTaxonProbable;
@UiField
Button boutonAjoutProposition;
Button boutonAjoutProposition, boutonAjoutCommentaire;
@UiField
Panel metadonnees;
73,4 → 69,8
this.voteProtocole.add(nouvelleLigne);
return nouvelleLigne;
}
 
public Button getBoutonAjoutCommentaire() {
return boutonAjoutCommentaire;
}
}