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
 
876 gduche 13
import com.google.gwt.user.client.Window;
41 aurelien 14
import com.google.gwt.user.client.ui.HasWidgets;
303 aurelien 15
import com.google.gwt.user.client.ui.IsWidget;
41 aurelien 16
 
159 benjamin 17
public class ForumPresenteur {
658 benjamin 18
 
303 aurelien 19
	public interface Vue extends IsWidget {
658 benjamin 20
 
663 benjamin 21
		public abstract HasWidgets getPanneauInterventions();
303 aurelien 22
	}
84 benjamin 23
 
303 aurelien 24
	private Vue vue;
84 benjamin 25
 
303 aurelien 26
	public ForumPresenteur(Vue vue) {
27
		this.vue = vue;
28
	}
658 benjamin 29
 
41 aurelien 30
	public void go(HasWidgets composite) {
84 benjamin 31
 
159 benjamin 32
		chargerDeterminations();
303 aurelien 33
		composite.add(vue.asWidget());
159 benjamin 34
 
35
		gererEvenements();
41 aurelien 36
	}
84 benjamin 37
 
159 benjamin 38
	private void chargerDeterminations() {
183 gduche 39
 
663 benjamin 40
		for (InterventionForum interventionForum : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
41
			new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions());
171 aurelien 42
		}
41 aurelien 43
	}
159 benjamin 44
 
45
	private void gererEvenements() {
46
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
47
 
48
			@Override
49
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
663 benjamin 50
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
159 benjamin 51
			}
52
		});
658 benjamin 53
 
303 aurelien 54
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
658 benjamin 55
 
303 aurelien 56
			@Override
57
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
663 benjamin 58
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
303 aurelien 59
			}
60
		});
94 aurelien 61
	}
658 benjamin 62
 
41 aurelien 63
}