Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 656 → Rev 658

/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
4,7 → 4,6
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Observation;
12,7 → 11,6
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.modeles.VoteProtocole;
 
import com.google.gwt.http.client.Response;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
62,7 → 60,7
public static PropositionDetermination creerPropositionDeterminationAPartirObservationJSON(JSONObject observationJson) {
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setContributeur(observationJson.get("prenom_utilisateur").isString().stringValue()+
propositionDetermination.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+
" "+observationJson.get("nom_utilisateur").isString().stringValue());
java.util.Date datePropDeter = parserDateObservation(observationJson.get("date_observation").isString().stringValue());
propositionDetermination.setDate(datePropDeter);
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java
11,8 → 11,8
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.InterventionForum;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteDetermination;
31,7 → 31,7
 
List<Observation> observations = new ArrayList<Observation>();
 
List<PropositionDetermination> observationValidationDatas = new ArrayList<PropositionDetermination>();
List<InterventionForum> observationValidationDatas = new ArrayList<InterventionForum>();
 
List<String> propositionsTaxonDatas = new ArrayList<String>();
 
109,7 → 109,7
 
PropositionDetermination observationValidationData = new PropositionDetermination();
observationValidationData.setEspece("Iris lutescens subsp. lutescens");
observationValidationData.setContributeur("contributeur test");
observationValidationData.setAuteur("contributeur test");
observationValidationData.setId("1");
 
observationValidationData.ajouterVoteDetermination(voteDetermination);
117,7 → 117,7
observationValidationDatas.add(observationValidationData);
 
PropositionDetermination observationValidationData2 = new PropositionDetermination();
observationValidationData2.setContributeur("contributeur test 2");
observationValidationData2.setAuteur("contributeur test 2");
observationValidationData2.setEspece("Lavatera arborea L.");
observationValidationData2.setId("2");
observationValidationData2.ajouterVoteDetermination(voteDetermination);
126,7 → 126,7
 
PropositionDetermination observationValidationData3 = new PropositionDetermination();
observationValidationData3.setEspece("Acer monsp. L.");
observationValidationData3.setContributeur("Léo Ferré");
observationValidationData3.setAuteur("Léo Ferré");
Commentaire commentaire = new Commentaire("Greg", new Date(), "Avec le temps...");
Commentaire commentaireBis = new Commentaire("Benj", new Date(), "Pas d'accord avec Greg!");
commentaire.getListeCommentaires().add(commentaireBis);
138,7 → 138,7
 
PropositionDetermination observationValidationData4 = new PropositionDetermination();
observationValidationData4.setEspece("Acer aceras aus.");
observationValidationData4.setContributeur("Pierre Desproges");
observationValidationData4.setAuteur("Pierre Desproges");
Commentaire commentaire2 = new Commentaire("Greg", new Date(), "Public chéri mon amour...");
observationValidationData4.ajouterCommentaire(commentaire2);
observationValidationData4.setId("4");
148,7 → 148,7
 
PropositionDetermination observationValidationData5 = new PropositionDetermination();
observationValidationData5.setEspece("Acer monsp subsp. monsp.");
observationValidationData5.setContributeur("Louis Aragon");
observationValidationData5.setAuteur("Louis Aragon");
Commentaire commentaire3 = new Commentaire("Greg", new Date(), "Tout est affaire de décor...");
observationValidationData5.ajouterCommentaire(commentaire3);
observationValidationData5.setId("5");
171,7 → 171,7
observation.setLocalite("localite " + i);
observation.setNomRetenu(auteurObs.get(auteur));
observation.setMotsClefs(motsClefs);
observation.setImageCelValidationDatas(observationValidationDatas);
observation.setInterventionsForum(observationValidationDatas);
 
Image image = new Image();
image.setIdImage("id image " + i);
202,7 → 202,7
voteProtocole.setContributeur("aurelien");
voteProtocole.setDate(new Date());
 
//image.getVoteProtocoles().add(voteProtocole);
// image.getVoteProtocoles().add(voteProtocole);
 
VoteProtocole voteProtocole2 = new VoteProtocole();
voteProtocole2.setProtocole(protocol2);
210,7 → 210,7
voteProtocole2.setContributeur("jpm");
voteProtocole2.setDate(new Date());
 
//image.getVoteProtocoles().add(voteProtocole2);
// image.getVoteProtocoles().add(voteProtocole2);
 
observations.add(observation);
}
220,16 → 220,19
}
 
private void ajouterVotesAleatoires() {
for (PropositionDetermination validation : observationValidationDatas) {
int nbVotesAjoutes = (int) Math.round(Math.random() * 20);
for (InterventionForum validation : observationValidationDatas) {
 
for (int i = 0; i < nbVotesAjoutes; i++) {
VoteDetermination vd = new VoteDetermination();
vd.setVote((int) Math.round(Math.random()));
vd.setDate(new Date());
vd.setContributeur("test");
if (validation instanceof PropositionDetermination) {
int nbVotesAjoutes = (int) Math.round(Math.random() * 20);
 
validation.ajouterVoteDetermination(vd);
for (int i = 0; i < nbVotesAjoutes; i++) {
VoteDetermination vd = new VoteDetermination();
vd.setVote((int) Math.round(Math.random()));
vd.setDate(new Date());
vd.setContributeur("test");
 
((PropositionDetermination) validation).ajouterVoteDetermination(vd);
}
}
}
}
275,7 → 278,7
for (Image image : images) {
if (image.getIdImage().equals(idImage)) {
return null;
//return image.getVoteProtocoles();
// return image.getVoteProtocoles();
}
 
}
304,7 → 307,6
//
// }
 
 
int rand = (int) (Math.random() * 5);
for (int i = 0; i < rand; i++) {
VoteProtocole voteProtocole = new VoteProtocole();
322,7 → 324,7
voteProtocolesLocal.add(voteProtocole);
voteProtocolesLocal.add(voteProtocole2);
}
return voteProtocolesLocal;
return voteProtocolesLocal;
}
 
/*
403,7 → 405,7
@Override
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback) {
// TODO Auto-generated method stub
 
}
 
}
/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/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;
}
}
/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/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/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/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/composants/formulaires/formulaireproposition/FormulairePropositionPresenteur.java
118,7 → 118,7
Commentaire comm = new Commentaire(auteur, new Date(), contenuCommentaire);
propositionAjoutee.ajouterCommentaire(comm);
}
propositionAjoutee.setContributeur(auteur);
propositionAjoutee.setAuteur(auteur);
propositionAjoutee.setDate(new Date());
 
propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur());
/trunk/src/org/tela_botanica/del/client/modeles/Observation.java
4,6 → 4,8
import java.util.ArrayList;
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
 
public class Observation implements Serializable {
 
private static final long serialVersionUID = 840032625524143547L;
10,7 → 12,10
private String id, auteur, nomRetenu, famille, localite, idLocalite, dateTransmission, numNomenclatural, nomCommun, lieuDit, milieu, commentaire, dateReleve;
 
private List<String> motsClefs = new ArrayList<String>();
private List<PropositionDetermination> propositionsDetermination = new ArrayList<PropositionDetermination>();
 
// les propositions sont une liste ordonnée qui contient soit des
// proposition de determinations, soit des commentaires
private List<InterventionForum> propositions = new ArrayList<InterventionForum>();
private List<Image> images = new ArrayList<Image>();
 
public String getAuteur() {
32,35 → 37,35
public String getNomCommun() {
return nomCommun;
}
 
public void setNomCommun(String nomCommun) {
this.nomCommun = nomCommun;
}
 
public String getLieuDit() {
return this.lieuDit;
}
 
public void setLieuDit(String lieuDit) {
this.lieuDit = lieuDit;
}
 
public String getMilieu() {
return milieu;
}
 
public void setMilieu(String milieu) {
this.milieu = milieu;
}
 
public String getCommentaire() {
return commentaire;
}
 
public void setCommentaire(String commentaire) {
this.commentaire = commentaire;
}
 
public String getFamille() {
return famille;
}
76,17 → 81,17
public void setIdLocalite(String idlocalite) {
this.idLocalite = idlocalite;
}
 
public String getLocalite() {
return localite;
}
 
public String getLocaliteAvecIdFormatee() {
String localiteFormatee = this.localite;
if(idLocalite != null && idLocalite.length() >= 2) {
localiteFormatee += " ("+idLocalite.substring(0, 2)+")";
if (idLocalite != null && idLocalite.length() >= 2) {
localiteFormatee += " (" + idLocalite.substring(0, 2) + ")";
}
 
return localiteFormatee;
}
 
97,7 → 102,7
public String getDateTransmission() {
return dateTransmission;
}
 
public void setDateTransmission(String date) {
this.dateTransmission = date;
}
105,11 → 110,11
public String getDateReleve() {
return dateReleve;
}
 
public void setDateReleve(String dateReleve) {
this.dateReleve = dateReleve;
}
 
public String getNumNomenclatural() {
return numNomenclatural;
}
118,12 → 123,12
this.numNomenclatural = numNomenclatural;
}
 
public List<PropositionDetermination> getPropositionsDetermination() {
return propositionsDetermination;
public List<InterventionForum> getInterventionsForum() {
return propositions;
}
 
public void setImageCelValidationDatas(List<PropositionDetermination> propositionsDetermination) {
this.propositionsDetermination = propositionsDetermination;
public void setInterventionsForum(List<InterventionForum> propositions) {
this.propositions = propositions;
}
 
public List<String> getMotsClefs() {
133,7 → 138,7
public void setMotsClefs(List<String> motsClefs) {
this.motsClefs = motsClefs;
}
 
public void ajouterMotsClef(String motsClefs) {
if (this.motsClefs == null) {
this.motsClefs = new ArrayList<String>();
142,16 → 147,18
}
 
public void ajouterPropositionDetermination(PropositionDetermination observationValidation) {
propositionsDetermination.add(observationValidation);
propositions.add(observationValidation);
}
 
public ArrayList<String> getPropositionsTaxonsData() {
 
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>();
for (PropositionDetermination observationValidation : propositionsDetermination) {
String espece = observationValidation.getEspece();
if (espece != "" && !propositionsTaxonDatas.contains(espece)) {
propositionsTaxonDatas.add(observationValidation.getEspece());
for (InterventionForum proposition : propositions) {
if (proposition instanceof PropositionDetermination) {
String espece = ((PropositionDetermination) proposition).getEspece();
if (espece != "" && !propositionsTaxonDatas.contains(espece)) {
propositionsTaxonDatas.add(espece);
}
}
}
 
158,6 → 165,16
return propositionsTaxonDatas;
}
 
public List<PropositionDetermination> getPropositionDeterminations() {
List<PropositionDetermination> determinations = new ArrayList<PropositionDetermination>();
for (InterventionForum proposition : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
if (proposition instanceof PropositionDetermination) {
determinations.add((PropositionDetermination) proposition);
}
}
return determinations;
}
 
public List<Image> getImages() {
return images;
}
/trunk/src/org/tela_botanica/del/client/modeles/PossesseurDeCommentaires.java
1,20 → 1,12
package org.tela_botanica.del.client.modeles;
 
import java.util.ArrayList;
import java.util.List;
 
public abstract class PossesseurDeCommentaires {
public List<Commentaire> listeCommentaires = new ArrayList<Commentaire>();
public List<Commentaire> getListeCommentaires() {
return listeCommentaires;
}
public interface PossesseurDeCommentaires {
 
public void setListeCommentaires(ArrayList<Commentaire> listeCommentaires) {
this.listeCommentaires = listeCommentaires;
}
public List<Commentaire> getListeCommentaires();
 
public void ajouterCommentaire(Commentaire commentaire) {
this.listeCommentaires.add(commentaire);
}
public void setListeCommentaires(List<Commentaire> listeCommentaires);
 
public void ajouterCommentaire(Commentaire commentaire);
}
/trunk/src/org/tela_botanica/del/client/modeles/InterventionForum.java
New file
0,0 → 1,22
package org.tela_botanica.del.client.modeles;
 
import java.util.Date;
 
public class InterventionForum {
private String auteur;
private Date date;
public String getAuteur() {
return auteur;
}
public void setAuteur(String auteur) {
this.auteur = auteur;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
 
}
/trunk/src/org/tela_botanica/del/client/modeles/Commentaire.java
1,41 → 1,39
package org.tela_botanica.del.client.modeles;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
public class Commentaire extends PossesseurDeCommentaires {
public class Commentaire extends InterventionForum implements PossesseurDeCommentaires {
 
private String auteur;
private Date date;
private String commentaire;
public List<Commentaire> listeCommentaires = new ArrayList<Commentaire>();
 
public Commentaire(String auteur, Date date, String commentaire) {
super();
this.auteur = auteur;
this.date = date;
setAuteur(auteur);
setDate(date);
this.commentaire = commentaire;
}
 
public String getAuteur() {
return auteur;
public String getCommentaire() {
return commentaire;
}
 
public void setAuteur(String auteur) {
this.auteur = auteur;
public void setCommentaire(String commentaire) {
this.commentaire = commentaire;
}
 
public Date getDate() {
return date;
public List<Commentaire> getListeCommentaires() {
return listeCommentaires;
}
 
public void setDate(Date date) {
this.date = date;
@Override
public void setListeCommentaires(List<Commentaire> listeCommentaires) {
this.listeCommentaires = listeCommentaires;
}
 
public String getCommentaire() {
return commentaire;
@Override
public void ajouterCommentaire(Commentaire commentaire) {
listeCommentaires.add(commentaire);
}
 
public void setCommentaire(String commentaire) {
this.commentaire = commentaire;
}
}
/trunk/src/org/tela_botanica/del/client/modeles/PropositionDetermination.java
2,30 → 2,21
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class PropositionDetermination extends PossesseurDeCommentaires implements Serializable {
public class PropositionDetermination extends InterventionForum implements PossesseurDeCommentaires, Serializable {
 
private static final long serialVersionUID = 840032625524143547L;
private String id, espece, contributeur;
private String id, espece;
private Map<String, VoteDetermination> votesDeterminations = new HashMap<String, VoteDetermination>();
private Date date;
public List<Commentaire> listeCommentaires = new ArrayList<Commentaire>();
 
public void ajouterVoteDetermination(VoteDetermination vd) {
votesDeterminations.put(vd.getContributeur(), vd);
}
 
public String getContributeur() {
return contributeur;
}
 
public void setContributeur(String contributeur) {
this.contributeur = contributeur;
}
 
public String getId() {
return id;
}
34,14 → 25,6
this.id = id;
}
 
public Date getDate() {
return date;
}
 
public void setDate(Date date) {
this.date = date;
}
 
public String getEspece() {
return espece;
}
57,4 → 40,18
public void setVotesDeterminations(Map<String, VoteDetermination> votesDeterminations) {
this.votesDeterminations = votesDeterminations;
}
 
public List<Commentaire> getListeCommentaires() {
return listeCommentaires;
}
 
@Override
public void setListeCommentaires(List<Commentaire> listeCommentaires) {
this.listeCommentaires = listeCommentaires;
}
 
@Override
public void ajouterCommentaire(Commentaire commentaire) {
listeCommentaires.add(commentaire);
}
}
/trunk/src/org/tela_botanica/del/test/services/CalculVoteDeterminationServiceTest.java
6,8 → 6,6
import java.util.Date;
import java.util.List;
 
import junit.framework.TestCase;
 
import org.junit.Test;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
26,7 → 24,7
 
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setEspece("Iris lutescens subsp. lutescens");
propositionDetermination.setContributeur("contributeur test");
propositionDetermination.setAuteur("contributeur test");
propositionDetermination.setId("1");
propositionDetermination.ajouterVoteDetermination(voteDetermination);
 
67,7 → 65,7
 
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setEspece("Iris lutescens subsp. lutescens");
propositionDetermination.setContributeur("contributeur test");
propositionDetermination.setAuteur("contributeur test");
propositionDetermination.setId("1");
propositionDetermination.ajouterVoteDetermination(voteDetermination1);
propositionDetermination.ajouterVoteDetermination(voteDetermination2);
76,7 → 74,7
PropositionDetermination propositionDetermination2 = new PropositionDetermination();
propositionDetermination2.setEspece("Iris urticans");
propositionDetermination2.setContributeur("contributeur test2");
propositionDetermination2.setAuteur("contributeur test2");
propositionDetermination2.setId("2");
propositionDetermination2.ajouterVoteDetermination(voteDetermination1);
propositionDetermination2.ajouterVoteDetermination(voteDetermination2);
/trunk/src/org/tela_botanica/del/test/composants/votes/BarreRepartitionVotePresenteurTest.java
41,7 → 41,7
 
PropositionDetermination propositionDetermination = new PropositionDetermination();
propositionDetermination.setEspece("Iris lutescens subsp. lutescens");
propositionDetermination.setContributeur("contributeur test");
propositionDetermination.setAuteur("contributeur test");
propositionDetermination.setId("1");
propositionDetermination.ajouterVoteDetermination(voteDetermination);
/trunk/src/org/tela_botanica/del/test/modeles/PropositionDeterminationTest.java
26,7 → 26,7
@Before
public void setUp() {
propositionDetermination = new PropositionDetermination();
propositionDetermination.setContributeur("Aurélien");
propositionDetermination.setAuteur("Aurélien");
propositionDetermination.setId("5");
dateInitiale = new Date();
propositionDetermination.setDate(dateInitiale);
69,13 → 69,13
 
@Test
public void testGetContributeur() {
assertEquals("Aurélien", propositionDetermination.getContributeur());
assertEquals("Aurélien", propositionDetermination.getAuteur());
}
 
@Test
public void testSetContributeur() {
propositionDetermination.setContributeur("Grégoire");
assertEquals("Grégoire", propositionDetermination.getContributeur());
propositionDetermination.setAuteur("Grégoire");
assertEquals("Grégoire", propositionDetermination.getAuteur());
}
 
@Test