Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
41 aurelien 1
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
2
 
159 benjamin 3
import org.tela_botanica.del.client.cache.CacheClient;
658 benjamin 4
import org.tela_botanica.del.client.modeles.InterventionForum;
159 benjamin 5
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
303 aurelien 6
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
7
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
159 benjamin 8
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
9
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
663 benjamin 10
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur;
11
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue;
41 aurelien 12
 
13
import com.google.gwt.user.client.ui.HasWidgets;
303 aurelien 14
import com.google.gwt.user.client.ui.IsWidget;
41 aurelien 15
 
159 benjamin 16
public class ForumPresenteur {
658 benjamin 17
 
303 aurelien 18
	public interface Vue extends IsWidget {
658 benjamin 19
 
663 benjamin 20
		public abstract HasWidgets getPanneauInterventions();
303 aurelien 21
	}
84 benjamin 22
 
303 aurelien 23
	private Vue vue;
84 benjamin 24
 
303 aurelien 25
	public ForumPresenteur(Vue vue) {
26
		this.vue = vue;
27
	}
658 benjamin 28
 
41 aurelien 29
	public void go(HasWidgets composite) {
84 benjamin 30
 
159 benjamin 31
		chargerDeterminations();
303 aurelien 32
		composite.add(vue.asWidget());
159 benjamin 33
 
34
		gererEvenements();
41 aurelien 35
	}
84 benjamin 36
 
159 benjamin 37
	private void chargerDeterminations() {
183 gduche 38
 
663 benjamin 39
		for (InterventionForum interventionForum : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
40
			new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions());
171 aurelien 41
		}
41 aurelien 42
	}
159 benjamin 43
 
44
	private void gererEvenements() {
45
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
46
 
47
			@Override
48
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
663 benjamin 49
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
159 benjamin 50
			}
51
		});
658 benjamin 52
 
303 aurelien 53
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
658 benjamin 54
 
303 aurelien 55
			@Override
56
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
663 benjamin 57
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
303 aurelien 58
			}
59
		});
94 aurelien 60
	}
658 benjamin 61
 
41 aurelien 62
}