Subversion Repositories eFlore/Applications.del

Rev

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

Rev 847 Rev 853
1
package org.tela_botanica.del.client.vues.plateformedetermination;
1
package org.tela_botanica.del.client.vues.plateformedetermination;
2
 
2
 
3
import java.util.Iterator;
3
import java.util.Iterator;
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.cache.CacheClient;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
8
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
8
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
9
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
9
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
10
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
10
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
11
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
11
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
12
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
12
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
13
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
13
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
14
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
14
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
15
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
15
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
16
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
16
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
17
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
17
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
18
import org.tela_botanica.del.client.modeles.ModeRecherche;
18
import org.tela_botanica.del.client.modeles.ModeRecherche;
19
import org.tela_botanica.del.client.modeles.MoyenneVote;
19
import org.tela_botanica.del.client.modeles.MoyenneVote;
20
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
20
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
21
import org.tela_botanica.del.client.modeles.Protocole;
21
import org.tela_botanica.del.client.modeles.Protocole;
22
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
22
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
23
import org.tela_botanica.del.client.modeles.VoteDetermination;
23
import org.tela_botanica.del.client.modeles.VoteDetermination;
24
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
24
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
25
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
25
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
26
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
26
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
27
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
27
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
28
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
28
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
29
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
29
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
30
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
30
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
31
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
31
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
32
import org.tela_botanica.del.client.services.rest.ObservationService;
32
import org.tela_botanica.del.client.services.rest.ObservationService;
33
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
33
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
34
import org.tela_botanica.del.client.services.rest.ProtocoleService;
34
import org.tela_botanica.del.client.services.rest.ProtocoleService;
35
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
35
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
36
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
36
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
37
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
37
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
38
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
38
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
39
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
39
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
40
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
40
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
41
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocolePresenteur;
41
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocolePresenteur;
42
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocoleVue;
42
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocoleVue;
43
 
43
 
44
import com.google.gwt.event.dom.client.ClickEvent;
44
import com.google.gwt.event.dom.client.ClickEvent;
45
import com.google.gwt.event.dom.client.ClickHandler;
45
import com.google.gwt.event.dom.client.ClickHandler;
46
import com.google.gwt.user.client.ui.Button;
46
import com.google.gwt.user.client.ui.Button;
47
import com.google.gwt.user.client.ui.HasWidgets;
47
import com.google.gwt.user.client.ui.HasWidgets;
48
import com.google.gwt.user.client.ui.IsWidget;
48
import com.google.gwt.user.client.ui.IsWidget;
49
import com.google.gwt.user.client.ui.Panel;
49
import com.google.gwt.user.client.ui.Panel;
50
 
50
 
51
public class DeterminationPresenteur extends Presenteur {
51
public class DeterminationPresenteur extends Presenteur {
52
 
52
 
53
	public interface Vue extends IsWidget {
53
	public interface Vue extends IsWidget {
54
		public Panel getForum();
54
		public Panel getForum();
55
		public Panel getDetailImageObservation();
55
		public Panel getDetailImageObservation();
56
		public Panel getFormulaireRechercheEflore();
56
		public Panel getFormulaireRechercheEflore();
57
		public Panel getVoteProtocole();
57
		public Panel getVoteProtocole();
58
		public Button getBoutonAjoutProposition();
58
		public Button getBoutonAjoutProposition();
59
		public Button getBoutonAjoutCommentaire();
59
		public Button getBoutonAjoutCommentaire();
60
		public HasWidgets getMetadonnees();
60
		public HasWidgets getMetadonnees();
61
		//public void ajouterLigneVoteProtocole(IsWidget vue);
61
		//public void ajouterLigneVoteProtocole(IsWidget vue);
62
		//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
62
		//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
63
		public HasWidgets getNouvelleLigneProtocole();
63
		public HasWidgets getNouvelleLigneProtocole();
64
		public void afficherNomTaxonProbable(String nomTaxon);
64
		public void afficherNomTaxonProbable(String nomTaxon);
65
	}
65
	}
66
 
66
 
67
	private Vue vue;
67
	private Vue vue;
68
 
68
 
69
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
69
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
70
	
70
	
71
	private ProtocoleService protocoleService = new ProtocoleServiceConcret();
71
	private ProtocoleService protocoleService = new ProtocoleServiceConcret();
72
	private ObservationService observationService = new ObservationServiceConcret();
72
	private ObservationService observationService = new ObservationServiceConcret();
73
 
73
 
74
	public DeterminationPresenteur(Vue vue) {
74
	public DeterminationPresenteur(Vue vue) {
75
		this.vue = vue;
75
		this.vue = vue;
76
	}
76
	}
77
 
77
 
78
	public void go(final HasWidgets composite) {
78
	public void go(final HasWidgets composite) {
79
		
79
		
80
		observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() {			
80
		observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() {			
81
			//@Override
81
			//@Override
82
			public void surObservationsRecues(
82
			public void surObservationsRecues(
83
					ObservationServiceResultat observationsRecues) {
83
					ObservationServiceResultat observationsRecues) {
-
 
84
				
-
 
85
				CacheClient.getInstance().setImageCourante(CacheClient.getInstance().getObservationCourante().getImages().get(0));
84
				
86
				
85
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
87
				new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
86
				new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
88
				new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
87
 
89
 
88
				chargerEtAjouterLignesVotesProtocole();
90
				chargerEtAjouterLignesVotesProtocole();
89
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
91
				new ForumPresenteur(new ForumVue()).go(vue.getForum());
90
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
92
				new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
91
 
93
 
92
				calculerEtAfficherVoteDeterminationPlusPopulaire();
94
				calculerEtAfficherVoteDeterminationPlusPopulaire();
93
				composite.add(vue.asWidget());
95
				composite.add(vue.asWidget());
94
			}
96
			}
95
		});		
97
		});		
96
		gererEvenements();
98
		gererEvenements();
97
	}
99
	}
98
 
100
 
99
	private void chargerEtAjouterLignesVotesProtocole() {
101
	private void chargerEtAjouterLignesVotesProtocole() {
100
		if(CacheClient.getInstance().getListeProtocoles() == null) {
102
		if(CacheClient.getInstance().getListeProtocoles() == null) {
101
			protocoleService.getProtocoles(new ProtocolesCallback() {
103
			protocoleService.getProtocoles(new ProtocolesCallback() {
102
				@Override
104
				@Override
103
				public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) {
105
				public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) {
104
					List<Protocole> listeProtocoles = protocolesRecus.getProtocoles();
106
					List<Protocole> listeProtocoles = protocolesRecus.getProtocoles();
105
					ajouterLignesVotesProtocole(listeProtocoles);
107
					ajouterLignesVotesProtocole(listeProtocoles);
106
					
108
					
107
				}
109
				}
108
			});
110
			});
109
		} else {
111
		} else {
110
			List<Protocole> listeProtocoles = CacheClient.getInstance().getListeProtocoles();
112
			List<Protocole> listeProtocoles = CacheClient.getInstance().getListeProtocoles();
111
			ajouterLignesVotesProtocole(listeProtocoles);
113
			ajouterLignesVotesProtocole(listeProtocoles);
112
		}
114
		}
113
	}
115
	}
114
	
116
	
115
	private void ajouterLignesVotesProtocole(List<Protocole> listeProtocoles) {
117
	private void ajouterLignesVotesProtocole(List<Protocole> listeProtocoles) {
116
		for (Iterator<Protocole> iterator = listeProtocoles.iterator(); iterator.hasNext();) {
118
		for (Iterator<Protocole> iterator = listeProtocoles.iterator(); iterator.hasNext();) {
117
			Protocole protocole = iterator.next();
119
			Protocole protocole = iterator.next();
118
			LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue());
120
			LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue());
119
			presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole());
121
			presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole());
120
		}
122
		}
121
	}
123
	}
122
	
124
	
123
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
125
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
124
 
126
 
125
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations());
127
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations());
126
		if (votesOrdonnes.size() > 0) {
128
		if (votesOrdonnes.size() > 0) {
127
			String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
129
			String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
128
			vue.afficherNomTaxonProbable(nomTaxon);
130
			vue.afficherNomTaxonProbable(nomTaxon);
129
		}
131
		}
130
	}
132
	}
131
 
133
 
132
	public void gererEvenements() {
134
	public void gererEvenements() {
133
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
135
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
134
			@Override
136
			@Override
135
			public void onVoteDetermination(VoteDetermination event) {
137
			public void onVoteDetermination(VoteDetermination event) {
136
				calculerEtAfficherVoteDeterminationPlusPopulaire();
138
				calculerEtAfficherVoteDeterminationPlusPopulaire();
137
			}
139
			}
138
		});
140
		});
139
 
141
 
140
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
142
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
141
			@Override
143
			@Override
142
			public void onClick(ClickEvent event) {
144
			public void onClick(ClickEvent event) {
143
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
145
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
144
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
146
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
145
			}
147
			}
146
		});
148
		});
147
		
149
		
148
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
150
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
149
			@Override
151
			@Override
150
			public void onClick(ClickEvent event) {
152
			public void onClick(ClickEvent event) {
151
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new FormulaireCommentaireVue());
153
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new FormulaireCommentaireVue());
152
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
154
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
153
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
155
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
154
			}
156
			}
155
		});
157
		});
156
 
158
 
157
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
159
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
158
			@Override
160
			@Override
159
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
161
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
160
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
162
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
161
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
163
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
162
				}
164
				}
163
			}
165
			}
164
		});
166
		});
165
		
167
		
166
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
168
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
167
 
169
 
168
			@Override
170
			@Override
169
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
171
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
170
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
172
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
171
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
173
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
172
				}
174
				}
173
			}
175
			}
174
		});
176
		});
175
	}
177
	}
176
}
178
}