Subversion Repositories eFlore/Applications.del

Rev

Rev 1002 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1002 Rev 1003
Line 1... Line 1...
1
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
1
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
Line 2... Line -...
2
 
-
 
3
import java.util.ArrayList;
2
 
Line 4... Line 3...
4
import java.util.List;
3
import java.util.List;
-
 
4
 
5
 
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.cache.CacheClient;
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;
Line 25... Line 25...
25
public class ForumPresenteur {
25
public class ForumPresenteur {
Line 26... Line 26...
26
 
26
 
Line 27... Line 27...
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
 
Line 31... Line 31...
31
		public abstract void vider();
31
		public abstract void vider();
Line 44... Line 44...
44
 
44
 
45
		gererEvenements();
45
		gererEvenements();
Line 46... Line 46...
46
	}
46
	}
47
 
47
 
48
	private void chargerDeterminations() {
48
	private void chargerDeterminations() {
49
		
49
 
50
		vue.vider();
50
		vue.vider();
51
		List<InterventionForum> interventions = new ArrayList<InterventionForum>(CacheClient.getInstance().getObservationCourante().getInterventionsForum());		
-
 
52
		
-
 
53
		int i = 0;
-
 
54
		while (interventions.size() > 0 && i < 10) {
51
		List<InterventionForum> interventions = CacheClient.getInstance().getObservationCourante().getInterventionsForum();
55
			i++;
52
 
56
			InterventionForum interventionCourante = interventions.get(0);
-
 
57
				ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
-
 
58
				List<InterventionForum> fils = trouverFils(interventions, interventionCourante);
-
 
59
				if (fils.size() > 0) {
-
 
60
					for (InterventionForum interventionFille : fils) {
-
 
61
						ForumInterventionPresenteur presenteurFille = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFille, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
-
 
62
						presenteur.addEnfant(presenteurFille);		
-
 
63
						interventions.remove(interventions.indexOf(interventionFille));
-
 
64
					}
-
 
65
				}
-
 
66
				
53
		for (InterventionForum interventionCourante : interventions) {
67
				presenteur.go(vue.getPanneauInterventions());
54
			ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
68
				interventions.remove(interventions.indexOf(interventionCourante));
55
			ajouterCommentairesRecursivement(interventionCourante, presenteur);
Line 69... Line 56...
69
		}
56
		}
70
	}
57
	}
71
 
58
 
72
	private List<InterventionForum> trouverFils(List<InterventionForum> interventions, InterventionForum parent) {
59
	private void ajouterCommentairesRecursivement(InterventionForum interventionCourante, ForumInterventionPresenteur presenteur) {
73
		List<InterventionForum> fils = new ArrayList<InterventionForum>();
60
		List<Commentaire> fils = interventionCourante.getListeCommentaires();
74
		for (InterventionForum interventionCourante : interventions) {
61
		for (InterventionForum interventionFils : fils) {
75
			InterventionForum parentCourant = interventionCourante.getParent();
-
 
76
			if (parentCourant != null && interventionCourante.getIdParent().equals(parent.getId())) {
62
			ForumInterventionPresenteur presenteurFils = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFils, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
-
 
63
			ajouterCommentairesRecursivement(interventionFils, presenteurFils);
77
				fils.add(interventionCourante);
64
			presenteur.ajouterEnfant(presenteurFils);
78
			}
65
		}
79
		}
66
 
80
		return fils;
67
		presenteur.go(vue.getPanneauInterventions());
81
	}
68
	}
Line 82... Line 69...
82
	
69
 
83
	private void gererEvenements() {
70
	private void gererEvenements() {
84
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
71
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
85
 
72
 
86
			@Override
73
			@Override
Line 87... Line 74...
87
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
74
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
Line 88... Line 75...
88
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination(), new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()).go(vue.getPanneauInterventions());
75
				chargerDeterminations();
89
			}
76
			}
90
		});
77
		});
91
 
78
 
92
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
79
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
93
 
80
 
94
			@Override
81
			@Override
95
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
82
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
96
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire(), new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()).go(vue.getPanneauInterventions());
83
				chargerDeterminations();
97
			}
-
 
98
		});
84
			}
99
		
85
		});
100
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionDetermination.TYPE, new GestionnaireEvenementSuppressionDetermination() {	
86
 
101
			
87
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionDetermination.TYPE, new GestionnaireEvenementSuppressionDetermination() {
102
			@Override
88
 
103
			public void onSuppressionDetermination(
89
			@Override
Line 104... Line 90...
104
					EvenementSuppressionDetermination event) {
90
			public void onSuppressionDetermination(EvenementSuppressionDetermination event) {
105
				chargerDeterminations();
-
 
106
			}
91
				chargerDeterminations();
107
		});
92
			}
108
		
93
		});
109
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionCommentaire.TYPE, new GestionnaireEvenementSuppressionCommentaire() {
94
 
110
 
95
		BusEvenementiel.getInstance().addHandler(EvenementSuppressionCommentaire.TYPE, new GestionnaireEvenementSuppressionCommentaire() {
111
			@Override
96