Subversion Repositories eFlore/Applications.del

Rev

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

Rev 650 Rev 658
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.formulaireproposition.FormulairePropositionPresenteur;
9
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
10
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
10
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
11
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
11
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
12
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
12
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
13
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
13
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
14
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
14
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
15
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
15
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
16
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
16
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
17
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
17
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
18
import org.tela_botanica.del.client.modeles.Image;
18
import org.tela_botanica.del.client.modeles.Image;
19
import org.tela_botanica.del.client.modeles.ModeRecherche;
19
import org.tela_botanica.del.client.modeles.ModeRecherche;
20
import org.tela_botanica.del.client.modeles.MoyenneVote;
20
import org.tela_botanica.del.client.modeles.MoyenneVote;
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.VoteDetermination;
22
import org.tela_botanica.del.client.modeles.VoteDetermination;
23
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
23
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
24
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
-
 
25
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;
24
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
26
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
25
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
27
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
26
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
28
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
27
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
29
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
28
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
30
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
29
import org.tela_botanica.del.client.services.rest.ProtocoleService;
31
import org.tela_botanica.del.client.services.rest.ProtocoleService;
30
import org.tela_botanica.del.client.utils.MockDatasource;
32
import org.tela_botanica.del.client.utils.MockDatasource;
-
 
33
import org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire.FormulaireCommentairePresenteur;
-
 
34
import org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire.FormulaireCommentaireVue;
31
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
35
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
32
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
36
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
33
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
37
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
34
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocolePresenteur;
38
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocolePresenteur;
35
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocoleVue;
39
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocoleVue;
36
 
40
 
37
import com.google.gwt.event.dom.client.ClickEvent;
41
import com.google.gwt.event.dom.client.ClickEvent;
38
import com.google.gwt.event.dom.client.ClickHandler;
42
import com.google.gwt.event.dom.client.ClickHandler;
39
import com.google.gwt.user.client.ui.Button;
43
import com.google.gwt.user.client.ui.Button;
40
import com.google.gwt.user.client.ui.HasWidgets;
44
import com.google.gwt.user.client.ui.HasWidgets;
41
import com.google.gwt.user.client.ui.IsWidget;
45
import com.google.gwt.user.client.ui.IsWidget;
42
import com.google.gwt.user.client.ui.Panel;
46
import com.google.gwt.user.client.ui.Panel;
43
 
47
 
44
public class DeterminationPresenteur extends Presenteur {
48
public class DeterminationPresenteur extends Presenteur {
45
 
49
 
46
	public interface Vue extends IsWidget {
50
	public interface Vue extends IsWidget {
47
		public Panel getForum();
51
		public Panel getForum();
48
		public Panel getDetailImageObservation();
52
		public Panel getDetailImageObservation();
49
		public Panel getFormulaireRechercheEflore();
53
		public Panel getFormulaireRechercheEflore();
50
		public Panel getVoteProtocole();
54
		public Panel getVoteProtocole();
51
		public Button getBoutonAjoutProposition();
55
		public Button getBoutonAjoutProposition();
-
 
56
		public Button getBoutonAjoutCommentaire();
52
		public HasWidgets getMetadonnees();
57
		public HasWidgets getMetadonnees();
53
		//public void ajouterLigneVoteProtocole(IsWidget vue);
58
		//public void ajouterLigneVoteProtocole(IsWidget vue);
54
		//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
59
		//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
55
		public HasWidgets getNouvelleLigneProtocole();
60
		public HasWidgets getNouvelleLigneProtocole();
56
		public void afficherNomTaxonProbable(String nomTaxon);
61
		public void afficherNomTaxonProbable(String nomTaxon);
57
	}
62
	}
58
 
63
 
59
	private Vue vue;
64
	private Vue vue;
60
 
65
 
61
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
66
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
62
	
67
	
63
	private ProtocoleService protocoleService = MockDatasource.getInstance();
68
	private ProtocoleService protocoleService = MockDatasource.getInstance();
64
 
69
 
65
	public DeterminationPresenteur(Vue vue) {
70
	public DeterminationPresenteur(Vue vue) {
66
		this.vue = vue;
71
		this.vue = vue;
67
	}
72
	}
68
 
73
 
69
	public void go(HasWidgets composite) {
74
	public void go(HasWidgets composite) {
70
 
75
 
71
		if (CacheClient.getInstance().getImageCourante() != null) {
76
		if (CacheClient.getInstance().getImageCourante() != null) {
72
			new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
77
			new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
73
			new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
78
			new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
74
 
79
 
75
			ajouterLignesVotesProtocole();
80
			ajouterLignesVotesProtocole();
76
		}
81
		}
77
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
82
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
78
		new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
83
		new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
79
 
84
 
80
		calculerEtAfficherVoteDeterminationPlusPopulaire();
85
		calculerEtAfficherVoteDeterminationPlusPopulaire();
81
 
86
 
82
		composite.add(vue.asWidget());
87
		composite.add(vue.asWidget());
83
 
88
 
84
		gererEvenements();
89
		gererEvenements();
85
	}
90
	}
86
 
91
 
87
	private void ajouterLignesVotesProtocole() {
92
	private void ajouterLignesVotesProtocole() {
88
		List<Protocole> tousLesProtocoles = protocoleService.getProtocoles();
93
		List<Protocole> tousLesProtocoles = protocoleService.getProtocoles();
89
		Image imageCourante = CacheClient.getInstance().getImageCourante();
94
		Image imageCourante = CacheClient.getInstance().getImageCourante();
90
		for (Iterator<Protocole> iterator = tousLesProtocoles.iterator(); iterator.hasNext();) {
95
		for (Iterator<Protocole> iterator = tousLesProtocoles.iterator(); iterator.hasNext();) {
91
 
96
 
92
			Protocole protocole = iterator.next();
97
			Protocole protocole = iterator.next();
93
			LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue());
98
			LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue());
94
			presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole());
99
			presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole());
95
		}
100
		}
96
	}
101
	}
97
	
102
	
98
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
103
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
99
 
104
 
100
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionsDetermination());
105
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations());
101
		if (votesOrdonnes.size() > 0) {
106
		if (votesOrdonnes.size() > 0) {
102
			String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
107
			String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
103
			vue.afficherNomTaxonProbable(nomTaxon);
108
			vue.afficherNomTaxonProbable(nomTaxon);
104
		}
109
		}
105
	}
110
	}
106
 
111
 
107
	public void gererEvenements() {
112
	public void gererEvenements() {
108
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
113
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
109
			@Override
114
			@Override
110
			public void onVoteDetermination(VoteDetermination event) {
115
			public void onVoteDetermination(VoteDetermination event) {
111
				calculerEtAfficherVoteDeterminationPlusPopulaire();
116
				calculerEtAfficherVoteDeterminationPlusPopulaire();
112
			}
117
			}
113
		});
118
		});
114
 
119
 
115
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
120
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
116
			@Override
121
			@Override
117
			public void onClick(ClickEvent event) {
122
			public void onClick(ClickEvent event) {
118
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
123
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
119
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
124
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
120
			}
125
			}
121
		});
126
		});
-
 
127
		
-
 
128
		vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
-
 
129
			@Override
-
 
130
			public void onClick(ClickEvent event) {
-
 
131
				FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new FormulaireCommentaireVue());
-
 
132
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
-
 
133
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
-
 
134
			}
-
 
135
		});
122
 
136
 
123
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
137
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
124
			@Override
138
			@Override
125
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
139
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
126
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
140
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
-
 
141
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
-
 
142
				}
-
 
143
			}
-
 
144
		});
-
 
145
		
-
 
146
		BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
-
 
147
 
-
 
148
			@Override
-
 
149
			public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
-
 
150
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
127
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
151
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
128
				}
152
				}
129
			}
153
			}
130
		});
154
		});
131
	}
155
	}
132
}
156
}