Subversion Repositories eFlore/Applications.del

Rev

Rev 893 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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