Subversion Repositories eFlore/Applications.del

Rev

Rev 1003 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
41 aurelien 1
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
2
 
893 gduche 3
import java.util.List;
1001 aurelien 4
 
159 benjamin 5
import org.tela_botanica.del.client.cache.CacheClient;
1003 benjamin 6
import org.tela_botanica.del.client.modeles.Commentaire;
658 benjamin 7
import org.tela_botanica.del.client.modeles.InterventionForum;
159 benjamin 8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
303 aurelien 9
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
159 benjamin 11
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
12
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
1001 aurelien 13
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire;
14
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.GestionnaireEvenementSuppressionCommentaire;
15
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination;
16
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.GestionnaireEvenementSuppressionDetermination;
17
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
18
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
663 benjamin 19
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur;
20
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue;
41 aurelien 21
 
22
import com.google.gwt.user.client.ui.HasWidgets;
303 aurelien 23
import com.google.gwt.user.client.ui.IsWidget;
41 aurelien 24
 
159 benjamin 25
public class ForumPresenteur {
658 benjamin 26
 
303 aurelien 27
	public interface Vue extends IsWidget {
658 benjamin 28
 
663 benjamin 29
		public abstract HasWidgets getPanneauInterventions();
1003 benjamin 30
 
1001 aurelien 31
		public abstract void vider();
303 aurelien 32
	}
84 benjamin 33
 
303 aurelien 34
	private Vue vue;
84 benjamin 35
 
303 aurelien 36
	public ForumPresenteur(Vue vue) {
37
		this.vue = vue;
38
	}
658 benjamin 39
 
41 aurelien 40
	public void go(HasWidgets composite) {
84 benjamin 41
 
159 benjamin 42
		chargerDeterminations();
303 aurelien 43
		composite.add(vue.asWidget());
159 benjamin 44
 
45
		gererEvenements();
41 aurelien 46
	}
84 benjamin 47
 
159 benjamin 48
	private void chargerDeterminations() {
1003 benjamin 49
 
1001 aurelien 50
		vue.vider();
1003 benjamin 51
		List<InterventionForum> interventions = CacheClient.getInstance().getObservationCourante().getInterventionsForum();
52
 
53
		for (InterventionForum interventionCourante : interventions) {
54
			ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
1008 aurelien 55
			presenteur.go(vue.getPanneauInterventions());
1003 benjamin 56
			ajouterCommentairesRecursivement(interventionCourante, presenteur);
893 gduche 57
		}
58
	}
978 gduche 59
 
1003 benjamin 60
	private void ajouterCommentairesRecursivement(InterventionForum interventionCourante, ForumInterventionPresenteur presenteur) {
61
		List<Commentaire> fils = interventionCourante.getListeCommentaires();
62
		for (InterventionForum interventionFils : fils) {
63
			ForumInterventionPresenteur presenteurFils = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFils, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
64
			ajouterCommentairesRecursivement(interventionFils, presenteurFils);
65
			presenteur.ajouterEnfant(presenteurFils);
171 aurelien 66
		}
41 aurelien 67
	}
1003 benjamin 68
 
159 benjamin 69
	private void gererEvenements() {
70
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
71
 
72
			@Override
73
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
1003 benjamin 74
				chargerDeterminations();
159 benjamin 75
			}
76
		});
658 benjamin 77
 
303 aurelien 78
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
658 benjamin 79
 
303 aurelien 80
			@Override
81
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
1003 benjamin 82
				chargerDeterminations();
303 aurelien 83
			}
84
		});
1003 benjamin 85
 
86
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionDetermination.TYPE, new GestionnaireEvenementSuppressionDetermination() {
87
 
1001 aurelien 88
			@Override
1003 benjamin 89
			public void onSuppressionDetermination(EvenementSuppressionDetermination event) {
1001 aurelien 90
				chargerDeterminations();
91
			}
92
		});
1003 benjamin 93
 
1001 aurelien 94
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionCommentaire.TYPE, new GestionnaireEvenementSuppressionCommentaire() {
95
 
96
			@Override
1003 benjamin 97
			public void onSuppressionCommentaire(EvenementSuppressionCommentaire event) {
1001 aurelien 98
				chargerDeterminations();
99
			}
100
		});
94 aurelien 101
	}
41 aurelien 102
}