Subversion Repositories eFlore/Applications.coel

Rev

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

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