/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); |
120,6 → 125,15 |
} |
}); |
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 |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
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/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,7 → 10,6 |
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; |
22,13 → 22,19 |
public void creerArbreCommentaire(PossesseurDeCommentaires possesseurDeCommentaires) { |
TreeItem racineArbreCommentaires = new TreeItem(); |
addItem(racineArbreCommentaires); |
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()); |
HTML commentaireWidget = new HTML(commentaireHTML); |
parentTreeItem.setWidget(commentaireWidget); |
/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,9 → 13,7 |
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; |
23,13 → 21,15 |
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; |
44,13 → 44,16 |
} |
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); |
} |
} |
} |
private void gererEvenements() { |
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() { |
65,7 → 68,7 |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
//TODO gérer l'ajout de commentaire |
ajouterCommentaire(event.getCommentaire()); |
} |
}); |
} |
73,12 → 76,15 |
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 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 { |
34,14 → 25,15 |
@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() { |
58,11 → 50,19 |
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,11 → 45,16 |
@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)); |
} |
51,4 → 61,36 |
}); |
} |
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/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()); |
} |
} |