Subversion Repositories eFlore/Applications.coel

Rev

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

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