Subversion Repositories eFlore/Applications.coel

Rev

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

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