Subversion Repositories eFlore/Applications.del

Rev

Rev 1003 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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