Subversion Repositories eFlore/Applications.coel

Rev

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

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