Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
658 benjamin 1
package org.tela_botanica.del.client.modeles;
2
 
663 benjamin 3
import java.util.ArrayList;
658 benjamin 4
import java.util.Date;
918 aurelien 5
import java.util.Iterator;
663 benjamin 6
import java.util.List;
881 aurelien 7
public class InterventionForum {
690 gduche 8
 
9
	private Contributeur contributeur;
658 benjamin 10
	private Date date;
890 gduche 11
	private String id, idParent;
881 aurelien 12
	private InterventionForum parent;
13
	private Observation observation;
663 benjamin 14
	public List<Commentaire> listeCommentaires = new ArrayList<Commentaire>();
978 gduche 15
	boolean estAffichee;
16
 
881 aurelien 17
	public void setId(String id) {
18
		this.id = id;
19
	}
20
 
21
	public String getId() {
22
		return id;
23
	}
24
 
890 gduche 25
	public String getIdParent() {
26
		return idParent;
27
	}
28
 
978 gduche 29
	public void afficher() {
30
		this.estAffichee = true;
31
	}
32
 
33
	public boolean estAffichee() {
34
		return this.estAffichee;
35
	}
36
 
890 gduche 37
	public void setIdParent(String idParent) {
38
		this.idParent = idParent;
39
	}
40
 
881 aurelien 41
	public void setParent(InterventionForum parent) {
42
		this.parent = parent;
43
	}
44
 
893 gduche 45
	public boolean estFils() {
46
		return (this.parent != null);
47
	}
48
 
881 aurelien 49
	public InterventionForum getParent() {
50
		return parent;
51
	}
52
 
53
	public void setObservation(Observation observation) {
54
		this.observation = observation;
55
	}
56
 
57
	public Observation getObservation() {
58
		return observation;
59
	}
60
 
658 benjamin 61
	public String getAuteur() {
690 gduche 62
		return contributeur.getNomComplet();
658 benjamin 63
	}
683 gduche 64
 
690 gduche 65
	public void setContributeur(Contributeur contributeur) {
66
		this.contributeur = contributeur;
658 benjamin 67
	}
690 gduche 68
 
69
	public Contributeur getContributeur() {
70
		return contributeur;
683 gduche 71
	}
72
 
658 benjamin 73
	public Date getDate() {
74
		return date;
75
	}
683 gduche 76
 
658 benjamin 77
	public void setDate(Date date) {
78
		this.date = date;
79
	}
683 gduche 80
 
663 benjamin 81
	public List<Commentaire> getListeCommentaires() {
82
		return listeCommentaires;
83
	}
658 benjamin 84
 
663 benjamin 85
	public void setListeCommentaires(List<Commentaire> listeCommentaires) {
86
		this.listeCommentaires = listeCommentaires;
87
	}
88
 
89
	public void ajouterCommentaire(Commentaire commentaire) {
90
		listeCommentaires.add(commentaire);
91
	}
887 aurelien 92
 
979 aurelien 93
	public boolean aDesCommentaires() {
94
		return (listeCommentaires.size() != 0);
95
	}
96
 
1001 aurelien 97
	public void supprimerIntervention(InterventionForum intervention) {
98
		if(listeCommentaires.contains(intervention)) {
99
			listeCommentaires.remove(intervention);
100
		} else {
101
			for (Iterator<Commentaire> iterator = listeCommentaires.iterator(); iterator.hasNext();) {
102
				iterator.next().supprimerIntervention(intervention);
103
			}
104
		}
105
	}
106
 
887 aurelien 107
	public PropositionDetermination getPropositionParenteOuNulle() {
108
		InterventionForum parent = getParent();
109
		PropositionDetermination proposition = null;
110
		while(parent != null && !(parent instanceof PropositionDetermination)) {
111
			parent = parent.getParent();
112
		}
113
		if(parent != null) {
114
			proposition = (PropositionDetermination)parent;
115
		}
116
		return proposition;
117
	}
918 aurelien 118
 
119
	public int getTotalCommentaires() {
120
		int nbCommentaires = 0;
1003 benjamin 121
		for (Commentaire commentaire : listeCommentaires) {
122
			chargerNbCommentairesRecursivement(nbCommentaires, commentaire);
918 aurelien 123
		}
124
		return nbCommentaires;
125
	}
1003 benjamin 126
 
127
	private void chargerNbCommentairesRecursivement(int nbCommentaires, Commentaire commentaire) {
128
		nbCommentaires ++;
129
		for (Commentaire commentaireFils: commentaire.getListeCommentaires()) {
130
			chargerNbCommentairesRecursivement(nbCommentaires, commentaireFils);
131
		}
132
	}
658 benjamin 133
}