Subversion Repositories eFlore/Applications.coel

Rev

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

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