Subversion Repositories eFlore/Applications.coel

Rev

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

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