Subversion Repositories eFlore/Applications.del

Rev

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

Rev 893 Rev 978
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.ArrayList;
3
import java.util.List;
4
import java.util.List;
4
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.modeles.InterventionForum;
6
import org.tela_botanica.del.client.modeles.InterventionForum;
6
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
7
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
7
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
8
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
8
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
9
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
9
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
11
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur;
12
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur;
12
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue;
13
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue;
13
 
14
 
14
import com.google.gwt.user.client.Window;
15
import com.google.gwt.user.client.Window;
15
import com.google.gwt.user.client.ui.HasWidgets;
16
import com.google.gwt.user.client.ui.HasWidgets;
16
import com.google.gwt.user.client.ui.IsWidget;
17
import com.google.gwt.user.client.ui.IsWidget;
17
 
18
 
18
public class ForumPresenteur {
19
public class ForumPresenteur {
19
 
20
 
20
	public interface Vue extends IsWidget {
21
	public interface Vue extends IsWidget {
21
 
22
 
22
		public abstract HasWidgets getPanneauInterventions();
23
		public abstract HasWidgets getPanneauInterventions();
23
	}
24
	}
24
 
25
 
25
	private Vue vue;
26
	private Vue vue;
26
 
27
 
27
	public ForumPresenteur(Vue vue) {
28
	public ForumPresenteur(Vue vue) {
28
		this.vue = vue;
29
		this.vue = vue;
29
	}
30
	}
30
 
31
 
31
	public void go(HasWidgets composite) {
32
	public void go(HasWidgets composite) {
32
 
33
 
33
		chargerDeterminations();
34
		chargerDeterminations();
34
		composite.add(vue.asWidget());
35
		composite.add(vue.asWidget());
35
 
36
 
36
		gererEvenements();
37
		gererEvenements();
37
	}
38
	}
38
 
39
 
39
	private void chargerDeterminations() {
40
	private void chargerDeterminations() {
40
		//for (InterventionForum interventionForum : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
-
 
41
		List<InterventionForum> interventions = CacheClient.getInstance().getObservationCourante().getInterventionsForum();
41
		List<InterventionForum> interventions = CacheClient.getInstance().getObservationCourante().getInterventionsForum();
-
 
42
		
-
 
43
		int i = 0;
42
		while (interventions.size() > 0) {
44
		while (interventions.size() > 0 && i < 10) {
-
 
45
			
-
 
46
			i++;
43
			interventions = afficherParent(interventions, interventions.get(0));
47
			InterventionForum interventionCourante = interventions.get(0);
-
 
48
				ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante);
-
 
49
				List<InterventionForum> fils = trouverFils(interventions, interventionCourante);
-
 
50
				if (fils.size() > 0) {
-
 
51
					for (InterventionForum interventionFille : fils) {
-
 
52
						ForumInterventionPresenteur presenteurFille = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFille);
-
 
53
						presenteur.addEnfant(presenteurFille);
-
 
54
						
-
 
55
						//interventions.get(interventions.indexOf(interventionFille)).afficher();
-
 
56
						interventions.remove(interventions.indexOf(interventionFille));
-
 
57
						//Window.alert(String.valueOf(interventions.indexOf(interventionFille)));
-
 
58
					}
-
 
59
				}
-
 
60
				
-
 
61
				presenteur.go(vue.getPanneauInterventions());
-
 
62
				interventions.remove(interventions.indexOf(interventionCourante));
44
		}
63
		}
-
 
64
		Window.alert("fin" + i);
45
	}
65
	}
46
	
66
 
47
	private List<InterventionForum> afficherParent(List<InterventionForum> interventions, InterventionForum interventionForum) {
67
	private List<InterventionForum> trouverFils(List<InterventionForum> interventions, InterventionForum parent) {
48
		InterventionForum interventionParent = interventionForum.getParent();
68
		List<InterventionForum> fils = new ArrayList<InterventionForum>();
49
		if (interventionParent != null) {
69
		for (InterventionForum interventionCourante : interventions) {
50
			interventions = afficherParent(interventions, interventionParent);
70
			InterventionForum parentCourant = interventionCourante.getParent();
51
			new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions());
71
			if (parentCourant != null && interventionCourante.getIdParent().equals(parent.getId())) {
52
			interventions.remove(interventionForum);
72
				fils.add(interventionCourante);
53
		} else {
73
			}
54
			new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions());
-
 
55
			interventions.remove(interventionForum);
-
 
56
		}
74
		}
57
		return interventions;
75
		return fils;
58
	}
76
	}
59
 
77
	
60
	private void gererEvenements() {
78
	private void gererEvenements() {
61
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
79
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
62
 
80
 
63
			@Override
81
			@Override
64
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
82
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
65
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
83
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
66
			}
84
			}
67
		});
85
		});
68
 
86
 
69
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
87
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
70
 
88
 
71
			@Override
89
			@Override
72
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
90
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
73
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
91
				new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
74
			}
92
			}
75
		});
93
		});
76
	}
94
	}
77
 
95
 
78
}
96
}