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