Subversion Repositories eFlore/Applications.del

Rev

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

Rev 406 Rev 436
Line 4... Line 4...
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
6
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
6
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
7
import org.tela_botanica.del.client.composants.pagination.PaginationVue;
7
import org.tela_botanica.del.client.composants.pagination.PaginationVue;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.i18n.I18n;
-
 
10
import org.tela_botanica.del.client.modeles.Observation;
9
import org.tela_botanica.del.client.modeles.Observation;
11
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
10
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
12
import org.tela_botanica.del.client.services.rest.ObservationService;
11
import org.tela_botanica.del.client.services.rest.ObservationService;
13
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
12
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
Line 14... Line 13...
14
 
13
 
15
import com.google.gwt.user.client.ui.HasWidgets;
14
import com.google.gwt.user.client.ui.HasWidgets;
16
import com.google.gwt.user.client.ui.IsWidget;
-
 
Line 17... Line 15...
17
import com.google.gwt.user.client.ui.RootPanel;
15
import com.google.gwt.user.client.ui.IsWidget;
18
 
16
 
19
public class RechercheObservationsPresenteur extends Presenteur {
17
public class RechercheObservationsPresenteur extends Presenteur {
Line 20... Line 18...
20
	
18
 
21
	private ObservationService serviceObs;
19
	private ObservationService serviceObs;
-
 
20
 
22
 
21
	public abstract interface Vue extends IsWidget {
-
 
22
		public HasWidgets getZoneRecherche();
23
	public abstract interface Vue extends IsWidget {
23
 
-
 
24
		public HasWidgets getZoneObservations();
24
		public HasWidgets getZoneRecherche();
25
 
-
 
26
		public HasWidgets getZonePaginationHaut();
25
		public HasWidgets getZoneObservations();
27
 
-
 
28
		public HasWidgets getZonePaginationBas();
26
		public HasWidgets getZonePaginationHaut();
29
 
-
 
30
		public void startChargement();
27
		public HasWidgets getZonePaginationBas();
31
 
28
		public void startChargement();
32
		public void stopChargement();
Line 29... Line 33...
29
		public void stopChargement();
33
 
30
		public void nettoyer();
-
 
31
	}
34
		public void nettoyer();
32
 
-
 
33
	private Vue vue;
-
 
34
	private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur;
-
 
35
	
-
 
36
	/**
-
 
37
	 * Ceci sert à éviter que les deux présenteurs paginations fassent deux requêtes par changement de page
-
 
38
	 * En attendant d'en discuter avec les autres
35
	}
-
 
36
 
39
	 */
37
	private Vue vue;
40
	private boolean requeteEnCours = false;
38
 
41
	
39
	public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
Line 42... Line 40...
42
	public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
40
 
43
		this.vue = vue;
-
 
44
		this.serviceObs = serviceObs;
-
 
45
	}
41
		this.vue = vue;
46
 
42
		this.serviceObs = serviceObs;
47
	public void go(HasWidgets composite) {
43
	}
Line 48... Line 44...
48
		if (composite == null) {
44
 
49
			composite = RootPanel.get();
45
	public void go(HasWidgets composite) {
50
		}
-
 
51
		composite.add(vue.asWidget());
46
 
52
		ajouterMoteurRechercheAvancee();
47
		composite.add(vue.asWidget());
53
 
48
		ajouterMoteurRechercheAvancee();
54
		ObservationsCallback callback = new ObservationsCallback() {
49
 
55
			@Override
50
		ObservationsCallback callback = new ObservationsCallback() {
56
			public void surObservationsRecues(
51
			@Override
57
					ObservationServiceResultat observationsRecues) {		
52
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
58
					creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
53
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
Line 59... Line 54...
59
					afficherObservations(observationsRecues);
54
				afficherObservations(observationsRecues);
60
			}
55
			}
61
		};
56
		};
Line 80... Line 75...
80
 
75
 
81
	public void chargerEtAfficherObservations(int debut, int fin) {
76
	public void chargerEtAfficherObservations(int debut, int fin) {
82
		vue.startChargement();
77
		vue.startChargement();
83
		vue.nettoyer();
78
		vue.nettoyer();
84
		ObservationsCallback callback = new ObservationsCallback() {
79
		ObservationsCallback callback = new ObservationsCallback() {
85
			
80
 
86
			@Override
81
			@Override
87
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {		
82
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
88
					afficherObservations(observationsRecues);
-
 
89
					requeteEnCours = false;
83
				afficherObservations(observationsRecues);
90
			}
84
			}
91
		};
-
 
92
		requeteEnCours = true;
85
		};
93
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
86
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
Line 94... Line 87...
94
	}
87
	}
95
 
88
 
Line 101... Line 94...
101
		}
94
		}
102
		vue.stopChargement();
95
		vue.stopChargement();
103
	}
96
	}
Line 104... Line 97...
104
 
97
 
105
	private void creerWidgetPagination(int nbObservations) {
98
	private void creerWidgetPagination(int nbObservations) {
Line 106... Line 99...
106
		this.paginationHautPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
99
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
107
 
100
 
108
			@Override
101
			@Override
109
			public void changerPage(int debut, int fin) {
102
			public void changerPage(int debut, int fin) {
Line 113... Line 106...
113
 
106
 
114
			@Override
107
			@Override
115
			public void actualiserPasCache(int pas) {
108
			public void actualiserPasCache(int pas) {
116
				CacheClient.getInstance().setPasPagination(pas);
109
				CacheClient.getInstance().setPasPagination(pas);
117
			}
110
			}
118
			
-
 
119
			@Override
-
 
120
			public void synchroniser() {
-
 
121
				paginationBasPresenteur.setPas(getPas());
-
 
122
				paginationBasPresenteur.setPageCourante(getPageCourante());
-
 
123
				paginationBasPresenteur.setNbPages(getNbPages());
-
 
124
				paginationBasPresenteur.actualiserLiens();
-
 
125
			}
111
 
126
		};
-
 
127
		paginationHautPresenteur.go(vue.getZonePaginationHaut());
112
		};
128
		
113
 
Line 129... Line 114...
129
		this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
114
		PaginationPresenteur paginationPresenteurBas = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
130
 
115
 
131
			@Override
-
 
132
			public void changerPage(int debut, int fin) {
116
			@Override
133
				if(!requeteEnCours) {
117
			public void changerPage(int debut, int fin) {
134
					chargerEtAfficherObservations(debut, fin);
-
 
135
					CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
118
				chargerEtAfficherObservations(debut, fin);
Line 136... Line 119...
136
				}
119
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
137
			}
120
			}
138
 
121
 
139
			@Override
122
			@Override
140
			public void actualiserPasCache(int pas) {
123
			public void actualiserPasCache(int pas) {
141
				CacheClient.getInstance().setPasPagination(pas);
-
 
142
			}
-
 
143
			
-
 
144
			@Override
-
 
145
			public void synchroniser() {
-
 
146
				paginationHautPresenteur.setPas(getPas());
-
 
147
				paginationHautPresenteur.setPageCourante(getPageCourante());
-
 
148
				paginationHautPresenteur.setNbPages(getNbPages());
124
				CacheClient.getInstance().setPasPagination(pas);
-
 
125
			}
149
				paginationHautPresenteur.actualiserLiens();
126
 
150
			}
127
		};
Line 151... Line 128...
151
		};
128
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());