2,10 → 2,12 |
|
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; |
|
16,18 → 18,29 |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
public class FormulaireCommentairePresenteur extends Presenteur{ |
|
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 |
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) { |
35,32 → 48,49 |
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); |
observation.getInterventionsForum().add(commentaire); |
|
|
if (observation != null) { |
observation.getInterventionsForum().add(commentaire); |
} else if (possesseurDeCommentaires != null) { |
possesseurDeCommentaires.getListeCommentaires().add(commentaire); |
} |
|
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire)); |
} |
}); |
} |
|
|
private boolean validerNomPrenom() { |
|
ValidateurChampTexteNonNul validateurTaxon = new ValidateurChampTexteNonNul(vue.getNomPrenom()) { |
68,7 → 98,7 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreur(styleErreur); |
} |
|
|
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreur(styleErreur); |
76,7 → 106,7 |
}; |
return validateurTaxon.valider(); |
} |
|
|
private boolean validerCommentaire() { |
|
ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) { |
84,7 → 114,7 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreur(styleErreur); |
} |
|
|
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreur(styleErreur); |