5,55 → 5,96 |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
|
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentairePresenteur extends Presenteur { |
|
/** |
* Interface de la vue correspondante |
* |
* @author LIENS |
* |
*/ |
public interface Vue extends IsWidget { |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination); |
|
void stopChargement(); |
public void afficherAucuneDonnees(); |
|
void startChargement(); |
public void stopChargement(); |
|
public void afficherAucuneDonnees(); |
public void startChargement(); |
} |
|
// La vue correspondante |
private Vue vue; |
|
// La proposition de determination |
private PropositionDetermination propositionDetermination; |
|
/** |
* Constructeur |
* |
* @param vue |
* @param propositionDetermination |
*/ |
public DetailCommentairePresenteur(Vue vue, PropositionDetermination propositionDetermination) { |
this.vue = vue; |
this.propositionDetermination = propositionDetermination; |
} |
|
/** |
* Declenchement du présenteur |
*/ |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
|
/** |
* Affichage des commentaires |
*/ |
public void afficherCommentaires() { |
|
// affichage de l'icone de chargement |
vue.startChargement(); |
CommentaireServiceConcret commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new CommentaireCallback() { |
|
// Appel du service |
CommentaireService commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() { |
|
@Override |
public void surRetour(String messageRetour) { |
List<Commentaire> commentaires = UtilitairesServiceResultat.parserCommentaires(JSONParser.parseStrict(messageRetour).isObject().get("resultats").isObject(), propositionDetermination.getObservation()); |
public void surRetour(List<Commentaire> commentaires) { |
|
propositionDetermination.setListeCommentaires(commentaires); |
int nbCommentaires = propositionDetermination.getTotalCommentaires(); |
if (nbCommentaires > 0) { |
|
// s'il existe des commentaires ils sont affichés |
if (propositionDetermination.getTotalCommentaires() > 0) { |
|
// affichage des commentaires associés à la proposition dans |
// la vue |
vue.afficherCommentairesProposition(propositionDetermination); |
|
// supression de l'icone de chargement |
vue.stopChargement(); |
} else { |
|
// affichage d'un message precisant qu'il n'y a pas de |
// commentaires |
vue.afficherAucuneDonnees(); |
|
// supression de l'icone de chargement |
vue.stopChargement(); |
} |
|
67,6 → 108,9 |
}); |
} |
|
/** |
* Gestion des evenements du presenteur |
*/ |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |