Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1040 Rev 1053
1
package org.tela_botanica.client.modeles.personne;
1
package org.tela_botanica.client.modeles.personne;
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
 
8
 
9
import com.extjs.gxt.ui.client.Registry;
9
import com.extjs.gxt.ui.client.Registry;
10
import com.google.gwt.i18n.client.Dictionary;
10
import com.google.gwt.i18n.client.Dictionary;
11
import com.google.gwt.json.client.JSONArray;
11
import com.google.gwt.json.client.JSONArray;
12
import com.google.gwt.json.client.JSONNumber;
12
import com.google.gwt.json.client.JSONNumber;
13
import com.google.gwt.json.client.JSONObject;
13
import com.google.gwt.json.client.JSONObject;
14
 
14
 
15
/**
15
/**
16
 * Table de hachage composée d'informations sur les Valeurs des listes, renvoyé
16
 * Table de hachage composée d'informations sur les Valeurs des listes, renvoyé
17
 * par un objet de type DAO La clé est le nom de l'entite + le nom de l'entite
17
 * par un objet de type DAO La clé est le nom de l'entite + le nom de l'entite
18
 * parente
18
 * parente
19
 * 
19
 * 
20
 * @author david delon
20
 * @author david delon
21
 * 
21
 * 
22
 */
22
 */
23
public class PersonneListe extends aDonneeListe<Personne> implements
23
public class PersonneListe extends aDonneeListe<Personne> implements
24
		ListePaginable {
24
		ListePaginable {
25
 
25
 
26
	private static final long serialVersionUID = 2930530504922300155L;
26
	private static final long serialVersionUID = 2930530504922300155L;
27
	private int currentPage = 0;
27
	private int currentPage = 0;
28
	private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary
28
	private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary
29
			.getDictionary("configuration")).get("nbElementsPage"));
29
			.getDictionary("configuration")).get("nbElementsPage"));
30
	private int nbElementsTotal;
30
	private int nbElementsTotal;
31
	private Rafraichissable vueARafraichir;
31
	private Rafraichissable vueARafraichir;
32
 
32
 
33
	/**
33
	/**
34
	 * Constructeur sans paramètres
34
	 * Constructeur sans paramètres
35
	 */
35
	 */
36
	public PersonneListe() {
36
	public PersonneListe() {
37
		super();
37
		super();
38
	}
38
	}
39
 
39
 
40
	/**
40
	/**
41
	 * Constructeur avec paramètre
41
	 * Constructeur avec paramètre
42
	 * 
42
	 * 
43
	 * @param taille
43
	 * @param taille
44
	 *            la taille de la table de hachage
44
	 *            la taille de la table de hachage
45
	 */
45
	 */
46
	public PersonneListe(int taille) {
46
	public PersonneListe(int taille) {
47
		super(taille);
47
		super(taille);
48
	}
48
	}
49
 
49
 
50
	/**
50
	/**
51
	 * Constructeur pour une liste de personne
51
	 * Constructeur pour une liste de personne
52
	 * 
52
	 * 
53
	 * @param dates
53
	 * @param dates
54
	 */
54
	 */
55
	public PersonneListe(JSONArray personneListe) {
55
	public PersonneListe(JSONArray personneListe) {
56
		super(personneListe.size());
56
		super(personneListe.size());
57
 
57
 
58
		final int taillemax = personneListe.size();
58
		final int taillemax = personneListe.size();
59
		for (int i = 0; i < taillemax; i++) {
59
		for (int i = 0; i < taillemax; i++) {
60
			JSONObject personneCourante = personneListe.get(i).isObject();
60
			JSONObject personneCourante = personneListe.get(i).isObject();
61
 
61
 
62
			if (personneCourante != null) {
62
			if (personneCourante != null) {
63
				Personne personne = new Personne(personneCourante);
63
				Personne personne = new Personne(personneCourante);
64
				this.put(personne.getId(), personne);
64
				this.put(personne.getId(), personne);
65
			}
65
			}
66
		}
66
		}
67
	}
67
	}
68
 
68
 
69
	public PersonneListe(JSONArray personneListe, JSONNumber nbElements,
69
	public PersonneListe(JSONArray personneListe, JSONNumber nbElements,
70
			Rafraichissable vueARafraichir) {
70
			Rafraichissable vueARafraichir) {
71
		super(personneListe.size());
71
		super(personneListe.size());
72
 
72
 
73
		this.nbElementsTotal = Integer.valueOf(nbElements.toString());
73
		this.nbElementsTotal = Integer.valueOf(nbElements.toString());
74
		final int taillemax = personneListe.size();
74
		final int taillemax = personneListe.size();
75
		for (int i = 0; i < taillemax; i++) {
75
		for (int i = 0; i < taillemax; i++) {
76
			JSONObject personneCourante = personneListe.get(i).isObject();
76
			JSONObject personneCourante = personneListe.get(i).isObject();
77
 
77
 
78
			if (personneCourante != null) {
78
			if (personneCourante != null) {
79
				Personne personne = new Personne(personneCourante);
79
				Personne personne = new Personne(personneCourante);
80
				this.put(personne.getId(), personne);
80
				this.put(personne.getId(), personne);
81
			}
81
			}
82
		}
82
		}
83
 
83
 
84
		this.vueARafraichir = vueARafraichir;
84
		this.vueARafraichir = vueARafraichir;
85
	}
85
	}
86
 
86
 
87
	public int[] getPageTable() {
87
	public int[] getPageTable() {
88
		int[] page = new int[4];
88
		int[] page = new int[4];
89
 
89
 
90
		// nombre de pages au total
90
		// nombre de pages au total
91
		page[0] = calculerNbPages();
91
		page[0] = calculerNbPages();
92
 
92
 
93
		// Page En Cours
93
		// Page En Cours
94
		page[1] = currentPage;
94
		page[1] = currentPage;
95
 
95
 
96
		// nbElementsParPage
96
		// nbElementsParPage
97
		page[2] = nbElementsPage;
97
		page[2] = nbElementsPage;
98
 
98
 
99
		// et le dernier le nombre total d'éléments
99
		// et le dernier le nombre total d'éléments
100
		page[3] = nbElementsTotal;
100
		page[3] = nbElementsTotal;
101
 
101
 
102
		return page;
102
		return page;
103
	}
103
	}
104
 
104
 
105
	/**
105
	/**
106
	 * Calcule le nombre de pages nécessaires pour afficher un nombre d'élements
106
	 * Calcule le nombre de pages nécessaires pour afficher un nombre d'élements
107
	 * donnés en fonction de la taille de page en cours
107
	 * donnés en fonction de la taille de page en cours
108
	 * 
108
	 * 
109
	 * @return le nombre de pages
109
	 * @return le nombre de pages
110
	 */
110
	 */
111
	public int calculerNbPages() {
111
	public int calculerNbPages() {
112
		// A cause de la betise de java pour les conversion implicite on fait
112
		// A cause de la betise de java pour les conversion implicite on fait
113
		// quelques conversions manuellement
113
		// quelques conversions manuellement
114
		// pour eviter qu'il arrondisse mal la division
114
		// pour eviter qu'il arrondisse mal la division
115
		// nombre de pages = (nombre d'element / taille de la page) arrondie à
115
		// nombre de pages = (nombre d'element / taille de la page) arrondie à
116
		// l'entier superieur
116
		// l'entier superieur
117
 
117
 
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
		// on convertit en entier
122
		// on convertit en entier
123
		return nPageInt.intValue();
123
		return nPageInt.intValue();
124
	}
124
	}
125
 
-
 
126
	@Override
125
 
127
	public void changerNumeroPage(int pageCourante) {
126
	public void changerNumeroPage(int pageCourante) {
128
		currentPage = pageCourante;
127
		currentPage = pageCourante;
129
		selectionnerPersonne();
128
		selectionnerPersonne();
130
	}
129
	}
131
 
-
 
132
	@Override
130
 
133
	public void changerTaillePage(int nouvelleTaillePage) {
131
	public void changerTaillePage(int nouvelleTaillePage) {
134
		nbElementsPage = nouvelleTaillePage;
132
		nbElementsPage = nouvelleTaillePage;
135
		selectionnerPersonne();
133
		selectionnerPersonne();
136
	}
134
	}
137
 
-
 
138
	@Override
135
 
139
	public void recharger() {
136
	public void recharger() {
140
		selectionnerPersonne();
137
		selectionnerPersonne();
141
	}
138
	}
142
 
139
 
143
	public void setPageCourante(int pageCourante) {
140
	public void setPageCourante(int pageCourante) {
144
		this.currentPage = pageCourante;
141
		this.currentPage = pageCourante;
145
	}
142
	}
146
 
143
 
147
	public void setTaillePage(int taillePage) {
144
	public void setTaillePage(int taillePage) {
148
		this.nbElementsPage = taillePage;
145
		this.nbElementsPage = taillePage;
149
	}
146
	}
150
 
147
 
151
	public void selectionnerPersonne() {
148
	public void selectionnerPersonne() {
152
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
149
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
153
		mediateur.selectionnerPersonne(vueARafraichir, null, null, currentPage,
150
		mediateur.selectionnerPersonne(vueARafraichir, null, null, currentPage,
154
				nbElementsPage);
151
				nbElementsPage);
155
	}
152
	}
156
 
-
 
157
	@Override
153
 
158
	public void filtrerParNom(String nom) {
154
	public void filtrerParNom(String nom) {
159
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
155
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
160
		Personne personne = new Personne();
156
		Personne personne = new Personne();
161
		personne.setNom(nom);
157
		personne.setNom("%" + nom + "%");
162
		mediateur.selectionnerPersonne(vueARafraichir, personne, null, currentPage,
158
		mediateur.selectionnerPersonne(vueARafraichir, personne, null, currentPage,
163
				nbElementsPage);
159
				nbElementsPage);
164
	}
160
	}
165
 
161
 
166
}
162
}