Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1166 Rev 1329
1
package org.tela_botanica.client.modeles.commentaire;
1
package org.tela_botanica.client.modeles.commentaire;
2
 
2
 
3
import org.tela_botanica.client.Mediateur;
3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.RegistreId;
5
import org.tela_botanica.client.interfaces.ListePaginable;
5
import org.tela_botanica.client.interfaces.ListePaginable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.modeles.aDonneeListe;
7
import org.tela_botanica.client.modeles.aDonneeListe;
-
 
8
import org.tela_botanica.client.util.UtilString;
8
 
9
 
9
import com.extjs.gxt.ui.client.Registry;
10
import com.extjs.gxt.ui.client.Registry;
10
import com.google.gwt.i18n.client.Dictionary;
11
import com.google.gwt.i18n.client.Dictionary;
11
import com.google.gwt.json.client.JSONArray;
12
import com.google.gwt.json.client.JSONArray;
12
import com.google.gwt.json.client.JSONNumber;
13
import com.google.gwt.json.client.JSONNumber;
13
import com.google.gwt.json.client.JSONObject;
14
import com.google.gwt.json.client.JSONObject;
14
 
15
 
15
/**
16
/**
16
 * Classe contenant les informations sur les Commentaires renvoyées par un objet de type DAO.
17
 * Classe contenant les informations sur les Commentaires renvoyées par un objet de type DAO.
17
 * 
18
 * 
18
 * @author Jean-Pascal MILCENT
19
 * @author Jean-Pascal MILCENT
19
 * 
20
 * 
20
 */
21
 */
21
public class CommentaireListe extends aDonneeListe<Commentaire> implements ListePaginable {
22
public class CommentaireListe extends aDonneeListe<Commentaire> implements ListePaginable {
22
 
23
 
23
	private static final long serialVersionUID = 2600314321196345072L;
24
	private static final long serialVersionUID = 2600314321196345072L;
24
	private int currentPage = 0;
25
	private int currentPage = 0;
25
	private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
26
	private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
26
	private int nbElementsTotal;
27
	private int nbElementsTotal;
27
	private Rafraichissable vueARafraichir;
28
	private Rafraichissable vueARafraichir;
28
	
29
	
29
	public CommentaireListe() {
30
	public CommentaireListe() {
30
		super();
31
		super();
31
	}
32
	}
32
	
33
	
33
	public CommentaireListe(int taille) {
34
	public CommentaireListe(int taille) {
34
		super(taille);
35
		super(taille);
35
	}
36
	}
36
	
37
	
37
	/**
38
	/**
38
	 * Constructeur pour une liste de commentaires
39
	 * Constructeur pour une liste de commentaires
39
	 * @param dates
40
	 * @param dates
40
	 */
41
	 */
41
	public CommentaireListe(JSONArray ListeDeCommentaires) {
42
	public CommentaireListe(JSONArray ListeDeCommentaires) {
42
		super(ListeDeCommentaires.size());
43
		super(ListeDeCommentaires.size());
43
		initialiserCommentaireListe(ListeDeCommentaires);
44
		initialiserCommentaireListe(ListeDeCommentaires);
44
	}
45
	}
45
	
46
	
46
	public CommentaireListe(JSONArray ListeDeCommentaires, JSONNumber nbElements, Rafraichissable vueARafraichir) {
47
	public CommentaireListe(JSONArray ListeDeCommentaires, JSONNumber nbElements, Rafraichissable vueARafraichir) {
47
		super(ListeDeCommentaires.size());
48
		super(ListeDeCommentaires.size());
48
		this.nbElementsTotal = Integer.valueOf(nbElements.toString());
49
		this.nbElementsTotal = Integer.valueOf(nbElements.toString());
49
		this.vueARafraichir = vueARafraichir;
50
		this.vueARafraichir = vueARafraichir;
50
		initialiserCommentaireListe(ListeDeCommentaires);
51
		initialiserCommentaireListe(ListeDeCommentaires);
51
	}
52
	}
52
	
53
	
53
	private void initialiserCommentaireListe(JSONArray ListeDeCommentaires) {
54
	private void initialiserCommentaireListe(JSONArray ListeDeCommentaires) {
54
		boolean chargerCollectionACommentaire = true;
55
		boolean chargerCollectionACommentaire = true;
55
		final int taillemax = ListeDeCommentaires.size();
56
		final int taillemax = ListeDeCommentaires.size();
-
 
57
		
56
		for (int i = 0; i < taillemax; i++) {
58
		for (int i = 0; i < taillemax; i++) {
57
			JSONObject commentaireCourant = ListeDeCommentaires.get(i).isObject() ;
59
			JSONObject commentaireCourant = ListeDeCommentaires.get(i).isObject() ;
58
			if (commentaireCourant != null)	{
60
			if (commentaireCourant != null)	{
59
				Commentaire commentaire = new Commentaire(commentaireCourant, chargerCollectionACommentaire);
61
				Commentaire commentaire = new Commentaire(commentaireCourant, chargerCollectionACommentaire);
-
 
62
				
-
 
63
				if (!UtilString.isEmpty(commentaire.getCollectionACommentaire().getId())) {
-
 
64
					this.put(commentaire.getCollectionACommentaire().getId(), commentaire);
-
 
65
				}
-
 
66
				else {
60
				this.put(commentaire.getId(), commentaire);
67
					this.put(commentaire.getId(), commentaire);
-
 
68
				}
61
			}
69
			}
62
		}
70
		}
63
	}
71
	}
64
	
72
	
65
	public void changerNumeroPage(int pageCourante) {
73
	public void changerNumeroPage(int pageCourante) {
66
		currentPage = pageCourante;
74
		currentPage = pageCourante;
67
		selectionnerCommentaire();
75
		selectionnerCommentaire();
68
	}
76
	}
69
 
77
 
70
	public void changerTaillePage(int nouvelleTaillePage) {
78
	public void changerTaillePage(int nouvelleTaillePage) {
71
		nbElementsPage = nouvelleTaillePage;
79
		nbElementsPage = nouvelleTaillePage;
72
		selectionnerCommentaire();
80
		selectionnerCommentaire();
73
	}
81
	}
74
	
82
	
75
	public void recharger() {
83
	public void recharger() {
76
		selectionnerCommentaire();
84
		selectionnerCommentaire();
77
	}
85
	}
78
	
86
	
79
	public void setPageCourante(int pageCourante) {
87
	public void setPageCourante(int pageCourante) {
80
		this.currentPage = pageCourante;
88
		this.currentPage = pageCourante;
81
	}
89
	}
82
 
90
 
83
	public void setTaillePage(int taillePage) {
91
	public void setTaillePage(int taillePage) {
84
		this.nbElementsPage = taillePage;
92
		this.nbElementsPage = taillePage;
85
	}
93
	}
86
	
94
	
87
	public int[] getPageTable() {
95
	public int[] getPageTable() {
88
		int[] page = new int[4];
96
		int[] page = new int[4];
89
		// nombre de pages au total
97
		// nombre de pages au total
90
		page[0] = calculerNbPages();
98
		page[0] = calculerNbPages();
91
		// Page En Cours
99
		// Page En Cours
92
		page[1] = currentPage;
100
		page[1] = currentPage;
93
		// nbElementsParPage
101
		// nbElementsParPage
94
		page[2] = nbElementsPage;
102
		page[2] = nbElementsPage;
95
		// et le dernier le nombre total d'éléments
103
		// et le dernier le nombre total d'éléments
96
		page[3] = nbElementsTotal;
104
		page[3] = nbElementsTotal;
97
		return page;
105
		return page;
98
	}
106
	}
99
	
107
	
100
	/**
108
	/**
101
	 * Calcule le nombre de pages nécessaires pour afficher un nombre d'élements
109
	 * Calcule le nombre de pages nécessaires pour afficher un nombre d'élements
102
	 * donnés en fonction de la taille de page en cours
110
	 * donnés en fonction de la taille de page en cours
103
	 * 
111
	 * 
104
	 * @return le nombre de pages
112
	 * @return le nombre de pages
105
	 */
113
	 */
106
	public int calculerNbPages() {
114
	public int calculerNbPages() {
107
		// À cause de la bétise de java pour les conversion implicite, on fait quelques conversions manuellement
115
		// À cause de la bétise de java pour les conversion implicite, on fait quelques conversions manuellement
108
		// pour eviter qu'il arrondisse mal la division nombre de pages = (nombre d'element / taille de la page) 
116
		// pour eviter qu'il arrondisse mal la division nombre de pages = (nombre d'element / taille de la page) 
109
		// arrondie à l'entier supérieur.
117
		// arrondie à l'entier supérieur.
110
		double nPage = (1.0 * nbElementsTotal) / (1.0 * nbElementsPage);
118
		double nPage = (1.0 * nbElementsTotal) / (1.0 * nbElementsPage);
111
		double nPageRound = Math.ceil(nPage);
119
		double nPageRound = Math.ceil(nPage);
112
		Double nPageInt = new Double(nPageRound);
120
		Double nPageInt = new Double(nPageRound);
113
 
121
 
114
		// Convertion en entier
122
		// Convertion en entier
115
		return nPageInt.intValue();
123
		return nPageInt.intValue();
116
	}
124
	}
117
	
125
	
118
	public void selectionnerCommentaire()	{
126
	public void selectionnerCommentaire()	{
119
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
127
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
120
		mediateur.selectionnerCommentaire(vueARafraichir, null, null, currentPage, nbElementsPage);
128
		mediateur.selectionnerCommentaire(vueARafraichir, null, null, currentPage, nbElementsPage);
121
	}
129
	}
122
	
130
	
123
	public void filtrerParNom(String nom)	{
131
	public void filtrerParNom(String nom)	{
124
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
132
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
125
		mediateur.selectionnerCommentaireParTitre(vueARafraichir, "%" + nom + "%");
133
		mediateur.selectionnerCommentaireParTitre(vueARafraichir, "%" + nom + "%");
126
	}
134
	}
127
}
135
}