Subversion Repositories eFlore/Applications.del

Rev

Rev 1075 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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