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(); |
} |
|
} |