Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 935 Rev 1045
Line 1... Line 1...
1
package org.tela_botanica.client.modeles.projet;
1
package org.tela_botanica.client.modeles.projet;
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;
2
 
6
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
7
import org.tela_botanica.client.modeles.aDonneeListe;
Line -... Line 8...
-
 
8
import org.tela_botanica.client.modeles.structure.Structure;
-
 
9
 
3
import org.tela_botanica.client.modeles.aDonneeListe;
10
import com.extjs.gxt.ui.client.Registry;
-
 
11
import com.google.gwt.i18n.client.Dictionary;
4
 
12
import com.google.gwt.json.client.JSONArray;
Line 5... Line 13...
5
import com.google.gwt.json.client.JSONArray;
13
import com.google.gwt.json.client.JSONNumber;
6
import com.google.gwt.json.client.JSONObject;
14
import com.google.gwt.json.client.JSONObject;
7
 
15
 
8
/**
16
/**
9
 * 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
10
 * La clé est l'id de l'entite.
18
 * La clé est l'id de l'entite.
11
 * 
19
 * 
12
 * @author Grégoire DUCHÉ
20
 * @author Grégoire DUCHÉ
Line 13... Line 21...
13
 * 
21
 * 
14
 */
-
 
-
 
22
 */
-
 
23
public class ProjetListe extends aDonneeListe<Projet> implements ListePaginable {
-
 
24
	
-
 
25
	private static final long serialVersionUID = -9030260944108896455L;
15
public class ProjetListe extends aDonneeListe<Projet> {
26
	private int currentPage = 0;
16
	
27
	private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
17
	private static final long serialVersionUID = -9030260944108896455L;
28
	private int nbElementsTotal;
18
 
29
	private Rafraichissable vueARafraichir;
19
	/**
30
	/**
Line 46... Line 57...
46
				Projet projet = new Projet(projetCourant);
57
				Projet projet = new Projet(projetCourant);
47
				this.put(projet.getId(), projet);				
58
				this.put(projet.getId(), projet);				
48
			}
59
			}
49
		}
60
		}
50
	}
61
	}
-
 
62
	
-
 
63
	public ProjetListe(JSONArray projetListe, JSONNumber nbElements, Rafraichissable vueARafraichir) {
-
 
64
		super(projetListe.size());
-
 
65
		this.nbElementsTotal = Integer.valueOf(nbElements.toString());
-
 
66
		
-
 
67
		final int taillemax = projetListe.size();
-
 
68
		for (int i = 0; i < taillemax; i++) {
-
 
69
			JSONObject projet = projetListe.get(i).isObject() ;
-
 
70
			
-
 
71
			if (projet != null)	{
-
 
72
				Projet projetCourant = new Projet(projet);
-
 
73
				this.put(projetCourant.getId(), projetCourant);				
-
 
74
			}
-
 
75
		}
-
 
76
		
-
 
77
		this.vueARafraichir = vueARafraichir;
-
 
78
	}
-
 
79
	
-
 
80
	@Override
-
 
81
	public void changerNumeroPage(int pageCourante) {
-
 
82
		currentPage = pageCourante;
-
 
83
		selectionnerStructure();
-
 
84
	}
-
 
85
 
-
 
86
	@Override
-
 
87
	public void changerTaillePage(int nouvelleTaillePage) {
-
 
88
		nbElementsPage = nouvelleTaillePage;
-
 
89
		selectionnerStructure();
-
 
90
	}
-
 
91
	
-
 
92
	@Override
-
 
93
	public void recharger() {
-
 
94
		selectionnerStructure();
-
 
95
	}
-
 
96
	
-
 
97
	public void setPageCourante(int pageCourante) {
-
 
98
		this.currentPage = pageCourante;
-
 
99
	}
-
 
100
 
-
 
101
	public void setTaillePage(int taillePage) {
-
 
102
		this.nbElementsPage = taillePage;
-
 
103
	}
-
 
104
	
-
 
105
	public int[] getPageTable() {
-
 
106
		int[] page = new int[4];
-
 
107
 
-
 
108
		// nombre de pages au total
-
 
109
		page[0] = calculerNbPages();
-
 
110
 
-
 
111
		// Page En Cours
-
 
112
		page[1] = currentPage;
-
 
113
 
-
 
114
		// nbElementsParPage
-
 
115
		page[2] = nbElementsPage;
-
 
116
 
-
 
117
		// et le dernier le nombre total d'éléments
-
 
118
		page[3] = nbElementsTotal;
-
 
119
 
-
 
120
		return page;
-
 
121
	}
-
 
122
	
-
 
123
	/**
-
 
124
	 * 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
-
 
126
	 * 
-
 
127
	 * @return le nombre de pages
-
 
128
	 */
-
 
129
	public int calculerNbPages() {
-
 
130
		// A cause de la betise de java pour les conversion implicite on fait
-
 
131
		// quelques conversions manuellement
-
 
132
		// pour eviter qu'il arrondisse mal la division
-
 
133
		// nombre de pages = (nombre d'element / taille de la page) arrondie à
-
 
134
		// l'entier superieur
-
 
135
 
-
 
136
		double nPage = (1.0 * nbElementsTotal) / (1.0 * nbElementsPage);
-
 
137
		double nPageRound = Math.ceil(nPage);
-
 
138
		Double nPageInt = new Double(nPageRound);
-
 
139
 
-
 
140
		// on convertit en entier
-
 
141
		return nPageInt.intValue();
-
 
142
	}
-
 
143
	
-
 
144
	public void selectionnerStructure()	{
-
 
145
		Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
-
 
146
		mediateur.selectionnerProjet(vueARafraichir, null, null, currentPage, nbElementsPage);
-
 
147
	}
-
 
148
	
-
 
149
	public void filtrerParNom(String nom)	{
-
 
150
		Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
-
 
151
		mediateur.selectionnerProjet(vueARafraichir, null, nom, 0, nbElementsPage);
-
 
152
		
-
 
153
	}
51
}
154
}
52
155