Subversion Repositories eFlore/Applications.coel

Rev

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