Subversion Repositories eFlore/Applications.del

Rev

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

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