Subversion Repositories eFlore/Applications.del

Rev

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

Rev 256 Rev 263
Line 14... Line 14...
14
import com.google.gwt.user.client.ui.HorizontalPanel;
14
import com.google.gwt.user.client.ui.HorizontalPanel;
15
import com.google.gwt.user.client.ui.ListBox;
15
import com.google.gwt.user.client.ui.ListBox;
Line 16... Line 16...
16
 
16
 
Line 17... Line -...
17
public abstract class PaginationPresenteur {
-
 
18
 
-
 
19
	// Singleton
-
 
20
	private static PaginationPresenteur presenteur;
17
public abstract class PaginationPresenteur {
21
 
18
 
22
	private final PaginationVue vue;
19
	private final PaginationVue vue;
23
	private int nbElementsTotal = 0;
20
	private int nbElementsTotal = 0;
-
 
21
	private int nbPage;
Line 24... Line 22...
24
	private int nbPage;
22
	private Vector<Button> liens;
25
	private Vector<Button> liens;
-
 
26
 
23
	private int pas = 10;
27
	public PaginationPresenteur(int nbElements) {
24
 
28
		presenteur = this;
25
	public PaginationPresenteur(int nbElements, int pas) {
29
		this.nbElementsTotal = nbElements;
26
		this.nbElementsTotal = nbElements;
-
 
27
		actualiserNbPage();
30
		actualiserNbPage();
28
		vue = new PaginationVue();
Line 31... Line 29...
31
		vue = new PaginationVue();
29
		//FIXME : doit être dans la page de rechercheImage
32
		setPas(CacheClient.getInstance().getPasPageRechercheImage());
30
		setPas(pas);
33
	}
31
	}
Line 43... Line 41...
43
			}
41
			}
44
		}
42
		}
45
	}
43
	}
Line 46... Line 44...
46
 
44
 
47
	private void actualiserNbPage() {
45
	private void actualiserNbPage() {
48
		Double a = Math.ceil((double) nbElementsTotal / (double) CacheClient.getInstance().getPasPageRechercheImage());
46
		Double a = Math.ceil((double) nbElementsTotal / (double) pas);
49
		this.nbPage = a.intValue();
47
		this.nbPage = a.intValue();
Line 50... Line 48...
50
	}
48
	}
51
 
-
 
52
	public void setPas(int pas) {
49
 
53
		CacheClient.getInstance().setPasPageRechercheImage(pas);
50
	public void setPas(int pas) {
54
		actualiserNbPage();
51
		actualiserNbPage();
-
 
52
		creerLiens();
-
 
53
		changerPage(pas * CacheClient.getInstance().getNumPageRechercheImage(), pas * (CacheClient.getInstance().getNumPageRechercheImage() + 1));
55
		creerLiens();
54
		
Line 56... Line 55...
56
		changerPage(CacheClient.getInstance().getPasPageRechercheImage() * CacheClient.getInstance().getNumPageRechercheImage(), CacheClient.getInstance().getPasPageRechercheImage() * (CacheClient.getInstance().getNumPageRechercheImage() + 1));
55
		actualiserPasCache(pas);
57
	}
56
	}
58
 
57
 
Line 71... Line 70...
71
		});
70
		});
Line 72... Line 71...
72
 
71
 
73
		liens.add(precedent);
72
		liens.add(precedent);
Line -... Line 73...
-
 
73
		vue.getZoneLiens().add(precedent);
-
 
74
 
-
 
75
		int pageDebut = CacheClient.getInstance().getNumPageRechercheImage() - 5;
-
 
76
		if (pageDebut < 1) {
-
 
77
			pageDebut = 1;
74
		vue.getZoneLiens().add(precedent);
78
		}
-
 
79
		
-
 
80
		int pageFin = pageDebut + 5;
-
 
81
		if (pageFin > nbPage) {
-
 
82
			pageFin = nbPage;
75
 
83
		}
76
		// TODO : gérer le nombre de pages excessives
84
		
77
		for (int i = 0; i < nbPage; i++) {
85
		for (int i = pageDebut; i < pageFin; i++) {
78
			Button bouton = new Button();
86
			Button bouton = new Button();
79
			bouton.setText(String.valueOf(i));
87
			bouton.setText(String.valueOf(i));
80
			liens.add(bouton);
88
			liens.add(bouton);
Line 107... Line 115...
107
				valeur = 1;
115
				valeur = 1;
108
			}
116
			}
Line 109... Line 117...
109
 
117
 
110
			nbElements.addItem(String.valueOf(valeur));
118
			nbElements.addItem(String.valueOf(valeur));
111
		}
119
		}
112
		nbElements.setSelectedIndex(CacheClient.getInstance().getPasPageRechercheImage() / 5);
120
		nbElements.setSelectedIndex(pas / 5);
Line 113... Line 121...
113
		nbElements.addChangeHandler(new ChangeHandler() {
121
		nbElements.addChangeHandler(new ChangeHandler() {
114
 
122
 
115
			@Override
123
			@Override
Line 138... Line 146...
138
 
146
 
139
				@Override
147
				@Override
140
				public void onClick(ClickEvent event) {
148
				public void onClick(ClickEvent event) {
141
					Button bouton = (Button) event.getSource();
149
					Button bouton = (Button) event.getSource();
142
					CacheClient.getInstance().setNumPageRechercheImage(Integer.parseInt(bouton.getText()));
150
					CacheClient.getInstance().setNumPageRechercheImage(Integer.parseInt(bouton.getText()));
143
					int debut = Integer.parseInt(bouton.getText()) * CacheClient.getInstance().getPasPageRechercheImage();
151
					int debut = Integer.parseInt(bouton.getText()) * pas;
144
					int fin = (debut + CacheClient.getInstance().getPasPageRechercheImage());
152
					int fin = (debut + pas);
145
					setBoutonActif();
153
					setBoutonActif();
Line 146... Line 154...
146
					changerPage(debut, fin);
154
					changerPage(debut, fin);
147
 
155
 
Line 152... Line 160...
152
	}
160
	}
Line 153... Line 161...
153
 
161
 
154
	public void pageSuivante() {
162
	public void pageSuivante() {
155
		if (CacheClient.getInstance().getNumPageRechercheImage() < nbPage - 1) {
163
		if (CacheClient.getInstance().getNumPageRechercheImage() < nbPage - 1) {
156
			CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() + 1);
164
			CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() + 1);
157
			int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage();
165
			int debut = CacheClient.getInstance().getNumPageRechercheImage() * pas;
158
			int fin = debut + CacheClient.getInstance().getPasPageRechercheImage();
166
			int fin = debut + pas;
159
			changerPage(debut, fin);
167
			changerPage(debut, fin);
160
		}
168
		}
161
		setBoutonActif();
169
		setBoutonActif();
Line 162... Line 170...
162
	}
170
	}
Line 163... Line 171...
163
 
171
 
164
	public void pagePrecedente() {
172
	public void pagePrecedente() {
165
 
173
 
166
		if (CacheClient.getInstance().getNumPageRechercheImage() > 0) {
174
		if (CacheClient.getInstance().getNumPageRechercheImage() > 0) {
167
			CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() - 1);
175
			CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() - 1);
168
			int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage();
176
			int debut = CacheClient.getInstance().getNumPageRechercheImage() * pas;
169
			int fin = debut + CacheClient.getInstance().getPasPageRechercheImage();
177
			int fin = debut + pas;
170
			changerPage(debut, fin);
178
			changerPage(debut, fin);
Line 171... Line 179...
171
		}
179
		}
-
 
180
		setBoutonActif();
Line 172... Line -...
172
		setBoutonActif();
-
 
173
	}
-
 
174
 
-
 
175
	public abstract void changerPage(int debut, int fin);
181
	}