Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
480 benjamin 1
package org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations;
166 gduche 2
 
3
import java.util.List;
4
 
332 gduche 5
import org.tela_botanica.del.client.cache.CacheClient;
447 gduche 6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
480 benjamin 8
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
9
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
166 gduche 10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
332 gduche 11
import org.tela_botanica.del.client.modeles.Image;
552 benjamin 12
import org.tela_botanica.del.client.modeles.ModeRecherche;
166 gduche 13
import org.tela_botanica.del.client.modeles.Observation;
602 aurelien 14
import org.tela_botanica.del.client.modeles.PropositionDetermination;
332 gduche 15
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
1075 gduche 16
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
17
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
602 aurelien 18
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
19
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
606 aurelien 20
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
613 gduche 21
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
22
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
1075 gduche 23
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
24
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
602 aurelien 25
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
26
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
1113 gduche 27
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
1075 gduche 28
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
959 benjamin 29
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
480 benjamin 30
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationPresenteur;
31
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observationdeterminations.ObservationDeterminationVue;
166 gduche 32
 
200 gduche 33
import com.google.gwt.event.dom.client.ClickEvent;
34
import com.google.gwt.event.dom.client.ClickHandler;
309 aurelien 35
import com.google.gwt.event.dom.client.HasClickHandlers;
166 gduche 36
import com.google.gwt.user.client.ui.HasWidgets;
309 aurelien 37
import com.google.gwt.user.client.ui.IsWidget;
166 gduche 38
 
39
public class ObservationPresenteur extends Presenteur {
436 benjamin 40
 
602 aurelien 41
	public interface Vue extends IsWidget {
42
		public HasClickHandlers getBoutonAjoutProposition();
959 benjamin 43
 
436 benjamin 44
		public HasWidgets getDeterminationsPanel();
959 benjamin 45
 
46
		public HasWidgets getImagesPanel();
47
 
447 gduche 48
		public HasWidgets getMetadonneesPanel();
1026 gduche 49
 
50
		public HasClickHandlers getNomEspece();
959 benjamin 51
 
1026 gduche 52
		public void setNomEspece(String nomEspece);
1075 gduche 53
 
54
		public HasClickHandlers getBoutonAjoutCommentaire();
55
		public HasClickHandlers getBoutonPlusDeDetails();
309 aurelien 56
	}
436 benjamin 57
 
309 aurelien 58
	private Vue vue;
166 gduche 59
 
60
	private Observation observation;
1006 benjamin 61
 
62
	private Image imagePrincipale;
959 benjamin 63
 
602 aurelien 64
	private ObservationDeterminationPresenteur observationDeterminationPresenteur;
959 benjamin 65
 
616 aurelien 66
	private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
166 gduche 67
 
1006 benjamin 68
	public ObservationPresenteur(Vue vue, Observation observation, Image imagePrincipale) {
166 gduche 69
		this.observation = observation;
314 gduche 70
		this.vue = vue;
1006 benjamin 71
		this.imagePrincipale=imagePrincipale;
166 gduche 72
		chargerObservation();
73
	}
74
 
75
	public void chargerObservation() {
1113 gduche 76
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation, imagePrincipale, ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS).go(vue.getImagesPanel());
1078 gduche 77
		new MetadonneesPresenteur(new MetadonneesVue(), observation, ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonneesPanel());
658 benjamin 78
		observationDeterminationPresenteur = new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionDeterminations());
602 aurelien 79
		observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
1026 gduche 80
		vue.setNomEspece(observation.getNomRetenu());
436 benjamin 81
		gererEvenements();
166 gduche 82
	}
83
 
84
	public void go(HasWidgets composite) {
309 aurelien 85
		composite.add(vue.asWidget());
166 gduche 86
	}
87
 
220 gduche 88
	protected void gererEvenements() {
959 benjamin 89
 
602 aurelien 90
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
91
			@Override
92
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
618 aurelien 93
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
616 aurelien 94
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
602 aurelien 95
					ajouterPropositionDetermination(event.getPropositionDetermination());
96
				}
97
			}
98
		});
959 benjamin 99
 
602 aurelien 100
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
101
			@Override
332 gduche 102
			public void onClick(ClickEvent event) {
103
				List<Image> images = observation.getImages();
104
				if (images.size() > 0) {
105
					CacheClient.getInstance().setImageCourante(images.get(0));
106
				} else {
107
					CacheClient.getInstance().setImageCourante(null);
108
				}
602 aurelien 109
				CacheClient.getInstance().setObservationCourante(observation);
616 aurelien 110
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
959 benjamin 111
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
332 gduche 112
			}
113
		});
1026 gduche 114
 
1075 gduche 115
		ClickHandler versDetails = new ClickHandler() {
1026 gduche 116
			@Override
117
			public void onClick(ClickEvent event) {
118
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
119
			}
1075 gduche 120
		};
121
		vue.getNomEspece().addClickHandler(versDetails);
122
		vue.getBoutonPlusDeDetails().addClickHandler(versDetails);
123
 
124
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
125
			@Override
126
			public void onClick(ClickEvent event) {
127
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(observation, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
128
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
129
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
130
			}
1026 gduche 131
		});
1075 gduche 132
 
133
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
134
 
135
			@Override
136
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
137
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
138
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
139
				}
140
			}
141
		});
166 gduche 142
	}
959 benjamin 143
 
602 aurelien 144
	private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
658 benjamin 145
		observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
602 aurelien 146
	}
166 gduche 147
}