Subversion Repositories eFlore/Applications.del

Rev

Rev 658 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 658 Rev 850
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations;
1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
8
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
8
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
9
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
9
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
11
import org.tela_botanica.del.client.modeles.Image;
11
import org.tela_botanica.del.client.modeles.Image;
12
import org.tela_botanica.del.client.modeles.ModeRecherche;
12
import org.tela_botanica.del.client.modeles.ModeRecherche;
13
import org.tela_botanica.del.client.modeles.Observation;
13
import org.tela_botanica.del.client.modeles.Observation;
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
18
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
18
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
19
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
19
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
20
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
20
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
21
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
21
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
22
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
22
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
23
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationPresenteur;
23
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationPresenteur;
24
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationVue;
24
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationVue;
25
 
25
 
26
import com.google.gwt.event.dom.client.ClickEvent;
26
import com.google.gwt.event.dom.client.ClickEvent;
27
import com.google.gwt.event.dom.client.ClickHandler;
27
import com.google.gwt.event.dom.client.ClickHandler;
28
import com.google.gwt.event.dom.client.HasClickHandlers;
28
import com.google.gwt.event.dom.client.HasClickHandlers;
29
import com.google.gwt.user.client.ui.HasWidgets;
29
import com.google.gwt.user.client.ui.HasWidgets;
30
import com.google.gwt.user.client.ui.IsWidget;
30
import com.google.gwt.user.client.ui.IsWidget;
31
 
31
 
32
public class ObservationPresenteur extends Presenteur {
32
public class ObservationPresenteur extends Presenteur {
33
 
33
 
34
	public interface Vue extends IsWidget {
34
	public interface Vue extends IsWidget {
35
		public HasClickHandlers getBoutonAjoutProposition();
35
		public HasClickHandlers getBoutonAjoutProposition();
36
		public HasWidgets getDeterminationsPanel();
36
		public HasWidgets getDeterminationsPanel();
37
		public HasWidgets getImagesPanel();		
37
		public HasWidgets getImagesPanel();		
38
		public HasWidgets getMetadonneesPanel();
38
		public HasWidgets getMetadonneesPanel();
39
		public HasClickHandlers getLienDeterminer();
39
		public HasClickHandlers getLienDeterminer();
40
	}
40
	}
41
 
41
 
42
	private Vue vue;
42
	private Vue vue;
43
 
43
 
44
	private Observation observation;
44
	private Observation observation;
45
	
45
	
46
	private ObservationDeterminationPresenteur observationDeterminationPresenteur;
46
	private ObservationDeterminationPresenteur observationDeterminationPresenteur;
47
	
47
	
48
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
48
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
49
 
49
 
50
	public ObservationPresenteur(Vue vue, Observation observation) {
50
	public ObservationPresenteur(Vue vue, Observation observation) {
51
		this.observation = observation;
51
		this.observation = observation;
52
		this.vue = vue;
52
		this.vue = vue;
53
		chargerObservation();
53
		chargerObservation();
54
	}
54
	}
55
 
55
 
56
	public void chargerObservation() {
56
	public void chargerObservation() {
57
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel());
57
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel());
58
		new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonneesPanel());
58
		new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonneesPanel());
59
		observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
59
		observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
60
		observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
60
		observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
61
 
61
 
62
		gererEvenements();
62
		gererEvenements();
63
	}
63
	}
64
 
64
 
65
	public void go(HasWidgets composite) {
65
	public void go(HasWidgets composite) {
66
		composite.add(vue.asWidget());
66
		composite.add(vue.asWidget());
67
	}
67
	}
68
 
68
 
69
	protected void gererEvenements() {
69
	protected void gererEvenements() {
70
		
70
		
71
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
71
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
72
			@Override
72
			@Override
73
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
73
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
74
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
74
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
75
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
75
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
76
					ajouterPropositionDetermination(event.getPropositionDetermination());
76
					ajouterPropositionDetermination(event.getPropositionDetermination());
77
				}
77
				}
78
			}
78
			}
79
		});
79
		});
80
		
80
		
81
		vue.getLienDeterminer().addClickHandler(new ClickHandler() {
81
		vue.getLienDeterminer().addClickHandler(new ClickHandler() {
82
			@Override
82
			@Override
83
			public void onClick(ClickEvent event) {
83
			public void onClick(ClickEvent event) {
84
				List<Image> images = observation.getImages();
-
 
85
				if (images.size() > 0) {
-
 
86
					CacheClient.getInstance().setImageCourante(images.get(0));
-
 
87
				} else {
-
 
88
					CacheClient.getInstance().setImageCourante(null);
-
 
89
				}
-
 
90
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
84
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
91
			}
85
			}
92
		});
86
		});
93
 
87
 
94
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
88
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
95
			@Override
89
			@Override
96
			public void onClick(ClickEvent event) {
90
			public void onClick(ClickEvent event) {
97
				List<Image> images = observation.getImages();
91
				List<Image> images = observation.getImages();
98
				if (images.size() > 0) {
92
				if (images.size() > 0) {
99
					CacheClient.getInstance().setImageCourante(images.get(0));
93
					CacheClient.getInstance().setImageCourante(images.get(0));
100
				} else {
94
				} else {
101
					CacheClient.getInstance().setImageCourante(null);
95
					CacheClient.getInstance().setImageCourante(null);
102
				}
96
				}
103
				CacheClient.getInstance().setObservationCourante(observation);
97
				CacheClient.getInstance().setObservationCourante(observation);
104
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
98
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
105
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
99
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
106
			}
100
			}
107
		});
101
		});
108
	}
102
	}
109
	
103
	
110
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
104
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
111
		observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
105
		observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
112
	}
106
	}
113
}
107
}