Subversion Repositories eFlore/Applications.coel

Rev

Rev 1513 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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