Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
479 benjamin 1
package org.tela_botanica.del.client.vues.rechercheobservations.moteur;
161 gduche 2
 
330 gduche 3
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
1183 gduche 5
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
6
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
161 gduche 7
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
1010 aurelien 8
import org.tela_botanica.del.client.config.Config;
453 aurelien 9
import org.tela_botanica.del.client.modeles.ModeRecherche;
392 aurelien 10
import org.tela_botanica.del.client.services.rest.ObservationService;
445 benjamin 11
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
12
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsPresenteur;
13
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsVue;
161 gduche 14
 
1010 aurelien 15
import com.google.gwt.event.dom.client.ClickEvent;
16
import com.google.gwt.event.dom.client.ClickHandler;
17
import com.google.gwt.event.dom.client.HasClickHandlers;
18
import com.google.gwt.user.client.Window;
161 gduche 19
import com.google.gwt.user.client.ui.HasWidgets;
309 aurelien 20
import com.google.gwt.user.client.ui.IsWidget;
1183 gduche 21
import com.google.gwt.user.client.ui.Panel;
161 gduche 22
 
479 benjamin 23
public class MoteurRechercheObservationsPresenteur extends Presenteur {
436 benjamin 24
 
479 benjamin 25
	public interface Vue extends IsWidget {
330 gduche 26
		public HasWidgets getZoneRecherche();
436 benjamin 27
 
445 benjamin 28
		public HasWidgets getZoneResultats();
455 benjamin 29
 
1010 aurelien 30
		HasClickHandlers getLienAjoutObservation();
1101 gduche 31
 
32
		public String getValeurRadioStatut();
1109 gduche 33
 
34
		public HasClickHandlers getRadioADeterminer();
35
 
36
		public HasClickHandlers getRadioEnDiscussion();
37
 
38
		public HasClickHandlers getRadioAConfirmer();
39
 
40
		public void decocherRadioTout();
1183 gduche 41
 
42
		public Panel getZonePartageUrl();
1010 aurelien 43
 
309 aurelien 44
	}
335 benjamin 45
 
309 aurelien 46
	private Vue vue;
436 benjamin 47
 
479 benjamin 48
	public MoteurRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
309 aurelien 49
		this.vue = vue;
161 gduche 50
	}
51
 
52
	public void go(HasWidgets composite) {
436 benjamin 53
 
309 aurelien 54
		composite.add(vue.asWidget());
330 gduche 55
		ajouterMoteurRechercheAvancee();
1183 gduche 56
		PartageUrlPresenteur presenteurPartageUrl = new PartageUrlPresenteur(new PartageUrlVue());
57
		presenteurPartageUrl.go(vue.getZonePartageUrl());
455 benjamin 58
		gererEvenements();
1183 gduche 59
 
161 gduche 60
	}
335 benjamin 61
 
330 gduche 62
	protected void ajouterMoteurRechercheAvancee() {
406 gduche 63
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
453 aurelien 64
		}, ModeRecherche.MODE_OBSERVATION) {
335 benjamin 65
 
330 gduche 66
			@Override
335 benjamin 67
			public void lancerRecherche() {
445 benjamin 68
				chercherObservations();
161 gduche 69
			}
330 gduche 70
		};
71
		presenteur.go(vue.getZoneRecherche());
161 gduche 72
	}
73
 
445 benjamin 74
	public void chercherObservations() {
75
		vue.getZoneResultats().clear();
1101 gduche 76
		new ResultatsRechercheObservationsPresenteur(new ObservationServiceConcret(), new ResultatsRechercheObservationsVue(), vue.getValeurRadioStatut()).go(vue.getZoneResultats());
166 gduche 77
	}
161 gduche 78
 
445 benjamin 79
	protected void gererEvenements() {
1010 aurelien 80
		vue.getLienAjoutObservation().addClickHandler(new ClickHandler() {
81
			@Override
82
			public void onClick(ClickEvent event) {
83
				Config config = new Config();
84
				Window.open(config.getUrl("applisaisie"), "Saisie d'une nouvelle observation", null);
85
			}
86
		});
1109 gduche 87
 
88
		vue.getRadioAConfirmer().addClickHandler(new ClickHandler() {
89
 
90
			@Override
91
			public void onClick(ClickEvent event) {
92
				vue.decocherRadioTout();
93
			}
94
		});
95
 
96
		vue.getRadioADeterminer().addClickHandler(new ClickHandler() {
97
 
98
			@Override
99
			public void onClick(ClickEvent event) {
100
				vue.decocherRadioTout();
101
			}
102
		});
103
 
104
		vue.getRadioEnDiscussion().addClickHandler(new ClickHandler() {
105
 
106
			@Override
107
			public void onClick(ClickEvent event) {
108
				vue.decocherRadioTout();
109
			}
110
		});
359 benjamin 111
	}
335 benjamin 112
 
161 gduche 113
}