Subversion Repositories eFlore/Applications.del

Rev

Rev 391 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 391 Rev 392
Line 7... Line 7...
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;
9
import org.tela_botanica.del.client.i18n.I18n;
10
import org.tela_botanica.del.client.modeles.Observation;
10
import org.tela_botanica.del.client.modeles.Observation;
11
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
11
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
12
import org.tela_botanica.del.client.utils.MockDatasource;
12
import org.tela_botanica.del.client.services.rest.ObservationService;
-
 
13
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
Line 13... Line 14...
13
 
14
 
14
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.IsWidget;
16
import com.google.gwt.user.client.ui.IsWidget;
Line 16... Line 17...
16
import com.google.gwt.user.client.ui.RootPanel;
17
import com.google.gwt.user.client.ui.RootPanel;
-
 
18
 
-
 
19
public class RechercheObservationsPresenteur extends Presenteur {
Line 17... Line 20...
17
 
20
	
18
public class RechercheObservationsPresenteur extends Presenteur {
21
	private ObservationService serviceObs;
19
 
22
 
20
	public abstract interface Vue extends IsWidget {
23
	public abstract interface Vue extends IsWidget {
21
		public HasWidgets getZoneRecherche();
24
		public HasWidgets getZoneRecherche();
-
 
25
		public HasWidgets getZoneObservations();
-
 
26
		public HasWidgets getZonePaginationHaut();
-
 
27
		public HasWidgets getZonePaginationBas();
22
		public HasWidgets getZoneObservations();
28
		public void startChargement();
Line 23... Line 29...
23
		public HasWidgets getZonePaginationHaut();
29
		public void stopChargement();
24
		public HasWidgets getZonePaginationBas();
30
		public void nettoyer();
Line -... Line 31...
-
 
31
	}
-
 
32
 
-
 
33
	private Vue vue;
-
 
34
	private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur;
-
 
35
	
-
 
36
	/**
25
	}
37
	 * Ceci sert à éviter que les deux présenteurs paginations fassent deux requêtes par changement de page
26
 
38
	 * En attendant d'en discuter avec les autres
-
 
39
	 */
27
	private Vue vue;
40
	private boolean requeteEnCours = false;
Line 28... Line 41...
28
	private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur;
41
	
29
	
42
	public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
30
	public RechercheObservationsPresenteur(Vue vue) {
43
		this.vue = vue;
31
		this.vue = vue;
44
		this.serviceObs = serviceObs;
32
	}
45
	}
33
 
46
 
Line 34... Line 47...
34
	public void go(HasWidgets composite) {
47
	public void go(HasWidgets composite) {
-
 
48
		if (composite == null) {
-
 
49
			composite = RootPanel.get();
-
 
50
		}
35
		if (composite == null) {
51
		composite.add(vue.asWidget());
36
			composite = RootPanel.get();
52
		ajouterMoteurRechercheAvancee();
-
 
53
 
-
 
54
		ObservationsCallback callback = new ObservationsCallback() {
-
 
55
			@Override
-
 
56
			public void surObservationsRecues(
37
		}
57
					ObservationServiceResultat observationsRecues) {		
Line 38... Line 58...
38
		composite.add(vue.asWidget());
58
					creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
39
		ajouterMoteurRechercheAvancee();
59
					afficherObservations(observationsRecues);
40
 
60
			}
Line 57... Line 77...
57
 
77
 
58
	protected void gererEvenements() {
78
	protected void gererEvenements() {
Line 59... Line 79...
59
	}
79
	}
-
 
80
 
-
 
81
	public void chargerEtAfficherObservations(int debut, int fin) {
-
 
82
		vue.startChargement();
-
 
83
		vue.nettoyer();
-
 
84
		ObservationsCallback callback = new ObservationsCallback() {
60
 
85
			
61
	public void chargerEtAfficherObservations(int debut, int fin) {
86
			@Override
-
 
87
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {		
-
 
88
					afficherObservations(observationsRecues);
-
 
89
					requeteEnCours = false;
-
 
90
			}
-
 
91
		};
62
		ObservationServiceResultat observationServiceResultat = MockDatasource.getInstance().getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin);
92
		requeteEnCours = true;
Line 63... Line 93...
63
		afficherObservations(observationServiceResultat);
93
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
64
	}
94
	}
65
 
95
 
66
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
96
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
67
		vue.getZoneObservations().clear();
97
		vue.nettoyer();
68
		for (Observation observation : observationServiceResultat.getObservations()) {
98
		for (Observation observation : observationServiceResultat.getObservations()) {
-
 
99
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
69
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
100
			presenteur.go(vue.getZoneObservations());
Line 70... Line 101...
70
			presenteur.go(vue.getZoneObservations());
101
		}
71
		}
102
		vue.stopChargement();
Line 97... Line 128...
97
		
128
		
Line 98... Line 129...
98
		this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
129
		this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
99
 
130
 
-
 
131
			@Override
100
			@Override
132
			public void changerPage(int debut, int fin) {
101
			public void changerPage(int debut, int fin) {
133
				if(!requeteEnCours) {
-
 
134
					chargerEtAfficherObservations(debut, fin);
102
				chargerEtAfficherObservations(debut, fin);
135
					CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
Line 103... Line 136...
103
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
136
				}
104
			}
137
			}
105
 
138