/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionVue.ui.xml |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionPresenteur.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/forumIntervention.css |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.ui.xml |
---|
5,8 → 5,8 |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="forum.css" /> |
<g:HTMLPanel> |
<g:VerticalPanel> |
<g:Label text="{constants.lesPropositions}" styleName="titre"/> |
<g:HTMLPanel ui:field='panneauInterventions' styleName="{style.table}" /> |
</g:HTMLPanel> |
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" /> |
</g:VerticalPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java |
---|
1,14 → 1,18 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
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; |
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.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
16,8 → 20,13 |
public class ForumPresenteur { |
public interface Vue extends IsWidget { |
public abstract void initialiserEntetesTableau(); |
public abstract HasWidgets getPanneauInterventions(); |
public abstract void ajouterLigne(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires); |
public void ajouterLigne(Commentaire commentaire, IsWidget arbreCommentaires); |
public abstract HasWidgets getTable(); |
} |
private Vue vue; |
35,9 → 44,14 |
} |
private void chargerDeterminations() { |
vue.initialiserEntetesTableau(); |
for (InterventionForum interventionForum : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) { |
new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions()); |
for (InterventionForum proposition : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) { |
if (proposition instanceof PropositionDetermination) { |
ajouterPropositionDetermination((PropositionDetermination) proposition); |
} else if (proposition instanceof Commentaire) { |
ajouterCommentaire((Commentaire) proposition); |
} |
} |
} |
46,7 → 60,7 |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions()); |
ajouterPropositionDetermination(event.getPropositionDetermination()); |
} |
}); |
54,9 → 68,25 |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions()); |
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 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,12 → 1,18 |
package org.tela_botanica.del.client.vues.plateformedetermination.forum; |
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; |
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.Composite; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.FlexTable; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Widget; |
public class ForumVue extends Composite implements Vue { |
17,16 → 23,48 |
}; |
@UiField |
HTMLPanel panneauInterventions; |
FlexTable htmlTableau; |
public ForumVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public HTMLPanel getPanneauInterventions() { |
return panneauInterventions; |
/* |
* (non-Javadoc) |
* |
* @see org.tela_botanica.del.client.vues.plateformedetermination.forum.Vue# |
* initialiserEntetesTableau() |
*/ |
@Override |
public void initialiserEntetesTableau() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().nom()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().fiabilite()); |
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.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/FormulaireCommentaireVue.ui.xml |
---|
6,7 → 6,7 |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="formulaireCommentaire.css" /> |
<g:VerticalPanel styleName="{style.formulaireProposition}"> |
<g:Label text="{constants.ajouterCommentaire}" styleName="titre"/> |
<g:Label text="{constants.proposerSaDetermination}" styleName="titre"/> |
<g:Label text="{constants.infoProposerDetermination}" styleName="petit"/> |
<g:HTML><br /></g:HTML> |
<g:HorizontalPanel> |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentairePresenteur.java |
---|
2,12 → 2,10 |
import java.util.Date; |
import org.tela_botanica.del.client.cache.CacheClient; |
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.Observation; |
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
18,29 → 16,18 |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulaireCommentairePresenteur extends Presenteur { |
// le meme presenteur gere les commentaires pour les observations et pour |
// les possesseurs de commentaires, mais la logique est differente, d'ou la |
// necessité de separer les deux objets metiers |
public class FormulaireCommentairePresenteur extends Presenteur{ |
private Observation observation; |
private PossesseurDeCommentaires possesseurDeCommentaires; |
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); |
void afficherNomPrenomEtDesactiver(String nomPrenomFormate); |
} |
private Vue vue; |
public FormulaireCommentairePresenteur(Observation observation, Vue vue) { |
48,49 → 35,32 |
this.vue = vue; |
} |
public FormulaireCommentairePresenteur(PossesseurDeCommentaires possesseurDeCommentaires, Vue vue) { |
this.possesseurDeCommentaires = possesseurDeCommentaires; |
this.vue = vue; |
} |
public void go(HasWidgets composite) { |
remplirAvecInfosUtilisateur(); |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
private void remplirAvecInfosUtilisateur() { |
if (CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
vue.afficherNomPrenomEtDesactiver(CacheClient.getInstance().getUtilisateur().getNomPrenomFormate()); |
} |
} |
protected void gererEvenements() { |
vue.getBoutonValidationCommentaire().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if (!validerNomPrenom() || !validerCommentaire()) { |
if (!validerNomPrenom()||!validerCommentaire()) { |
return; |
} |
String texteCommentaire = vue.getCommentaire().getText(); |
String nomPrenom = vue.getNomPrenom().getText(); |
Commentaire commentaire = new Commentaire(nomPrenom, new Date(), texteCommentaire); |
if (observation != null) { |
observation.getInterventionsForum().add(commentaire); |
} else if (possesseurDeCommentaires != null) { |
possesseurDeCommentaires.getListeCommentaires().add(commentaire); |
} |
observation.getInterventionsForum().add(commentaire); |
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire)); |
} |
}); |
} |
private boolean validerNomPrenom() { |
ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) { |
98,7 → 68,7 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreur(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreur(styleErreur); |
106,7 → 76,7 |
}; |
return validateurTaxon.valider(); |
} |
private boolean validerCommentaire() { |
ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) { |
114,7 → 84,7 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreur(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreur(styleErreur); |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.java |
---|
55,10 → 55,4 |
nomPrenom.removeStyleName(styleErreur); |
commentaire.removeStyleName(styleErreur); |
} |
@Override |
public void afficherNomPrenomEtDesactiver(String nomPrenomFormate) { |
nomPrenom.setText(nomPrenomFormate); |
nomPrenom.setEnabled(false); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.ui.xml |
---|
24,7 → 24,7 |
</g:HTMLPanel> |
<g:HTMLPanel styleName="nettoyage {style.boutons}"> |
<g:Button text="{constants.proposerSaDetermination}" ui:field="boutonAjoutProposition" styleName="bouton" /> |
<g:Button text="{constants.ajouterCommentaire}" ui:field="boutonAjoutCommentaire" styleName="bouton" /> |
<g:Button text="Ajouter un commentaire" ui:field="boutonAjoutCommentaire" styleName="bouton" /> |
</g:HTMLPanel> |
<g:VerticalPanel ui:field="forum" /> |
</g:HTMLPanel> |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
13,6 → 13,9 |
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur; |
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur; |
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Protocole; |
88,6 → 91,7 |
private void ajouterLignesVotesProtocole() { |
List<Protocole> tousLesProtocoles = protocoleService.getProtocoles(); |
Image imageCourante = CacheClient.getInstance().getImageCourante(); |
for (Iterator<Protocole> iterator = tousLesProtocoles.iterator(); iterator.hasNext();) { |
Protocole protocole = iterator.next(); |