Subversion Repositories eFlore/Applications.coel

Rev

Rev 363 | Rev 616 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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