Subversion Repositories eFlore/Applications.del

Rev

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

Rev 602 Rev 610
1
package org.tela_botanica.del.client.vues.plateformedetermination;
1
package org.tela_botanica.del.client.vues.plateformedetermination;
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.ModeRecherche;
11
import org.tela_botanica.del.client.modeles.ModeRecherche;
12
import org.tela_botanica.del.client.modeles.MoyenneVote;
12
import org.tela_botanica.del.client.modeles.MoyenneVote;
13
import org.tela_botanica.del.client.modeles.VoteDetermination;
13
import org.tela_botanica.del.client.modeles.VoteDetermination;
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
15
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
15
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
16
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
17
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
17
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
18
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
18
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
19
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
19
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
20
import org.tela_botanica.del.client.composants.fenetereoverlay.FenetreOverlayDefilanteVue;
20
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
21
import org.tela_botanica.del.client.composants.fenetereoverlay.FenetreOverlaySimplePresenteur;
21
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
22
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
22
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionPresenteur;
23
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
23
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
24
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
24
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
25
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
25
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
26
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
26
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
27
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesPresenteur;
27
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesPresenteur;
28
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue;
28
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue;
29
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur;
29
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur;
30
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue;
30
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue;
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.user.client.ui.Button;
34
import com.google.gwt.user.client.ui.Button;
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
import com.google.gwt.user.client.ui.VerticalPanel;
37
import com.google.gwt.user.client.ui.VerticalPanel;
38
 
38
 
39
public class DeterminationPresenteur extends Presenteur {
39
public class DeterminationPresenteur extends Presenteur {
40
 
40
 
41
	public interface Vue extends IsWidget {
41
	public interface Vue extends IsWidget {
42
		public VerticalPanel getForum();
42
		public VerticalPanel getForum();
43
		public VerticalPanel getDetailImageObservation();
43
		public VerticalPanel getDetailImageObservation();
44
		public VerticalPanel getFormulaireRechercheEflore();
44
		public VerticalPanel getFormulaireRechercheEflore();
45
		public VerticalPanel getVote();
45
		public VerticalPanel getVote();
46
		public VerticalPanel getBarreRepartition();
46
		public VerticalPanel getBarreRepartition();
47
		public Button getBoutonAjoutProposition();
47
		public Button getBoutonAjoutProposition();
48
		public HasWidgets getMetadonnees();
48
		public HasWidgets getMetadonnees();
49
	}
49
	}
50
 
50
 
51
	private Vue vue;
51
	private Vue vue;
52
 
52
 
53
	BarreRepartitionVotePresenteur barreRepartitionVotePresenteur;
53
	BarreRepartitionVotePresenteur barreRepartitionVotePresenteur;
54
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
54
	FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
55
 
55
 
56
	public DeterminationPresenteur(Vue vue) {
56
	public DeterminationPresenteur(Vue vue) {
57
		this.vue = vue;
57
		this.vue = vue;
58
	}
58
	}
59
 
59
 
60
	public void go(HasWidgets composite) {
60
	public void go(HasWidgets composite) {
61
 
61
 
62
		if (CacheClient.getInstance().getImageCourante() != null) {
62
		if (CacheClient.getInstance().getImageCourante() != null) {
63
			new MetadonneesPresenteur(new MetadonneesVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
63
			new MetadonneesPresenteur(new MetadonneesVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
64
			new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
64
			new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
65
			new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVote());
65
			new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVote());
66
		}
66
		}
67
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
67
		new ForumPresenteur(new ForumVue()).go(vue.getForum());
68
		new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
68
		new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
69
 
69
 
70
		barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());
70
		barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());
71
		barreRepartitionVotePresenteur.go(vue.getBarreRepartition());
71
		barreRepartitionVotePresenteur.go(vue.getBarreRepartition());
72
		calculerEtAfficherVoteDeterminationPlusPopulaire();
72
		calculerEtAfficherVoteDeterminationPlusPopulaire();
73
 
73
 
74
		composite.add(vue.asWidget());
74
		composite.add(vue.asWidget());
75
 
75
 
76
		gererEvenements();
76
		gererEvenements();
77
	}
77
	}
78
 
78
 
79
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
79
	private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
80
 
80
 
81
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionsDetermination());
81
		List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionsDetermination());
82
		if (votesOrdonnes.size() > 0) {
82
		if (votesOrdonnes.size() > 0) {
83
			barreRepartitionVotePresenteur.afficherVotes(votesOrdonnes.get(0));
83
			barreRepartitionVotePresenteur.afficherVotes(votesOrdonnes.get(0));
84
		}
84
		}
85
	}
85
	}
86
 
86
 
87
	public void gererEvenements() {
87
	public void gererEvenements() {
88
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
88
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
89
			@Override
89
			@Override
90
			public void onVoteDetermination(VoteDetermination event) {
90
			public void onVoteDetermination(VoteDetermination event) {
91
				calculerEtAfficherVoteDeterminationPlusPopulaire();
91
				calculerEtAfficherVoteDeterminationPlusPopulaire();
92
			}
92
			}
93
		});
93
		});
94
 
94
 
95
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
95
		vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
96
			@Override
96
			@Override
97
			public void onClick(ClickEvent event) {
97
			public void onClick(ClickEvent event) {
98
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
98
				fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
99
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
99
				fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
100
			}
100
			}
101
		});
101
		});
102
 
102
 
103
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
103
		BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
104
			@Override
104
			@Override
105
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
105
			public void onAjoutDetermination(EvenementAjoutDetermination event) {
106
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
106
				if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
107
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
107
					fenetreOverlaySimplePresenteur.fermerFenetreModale();
108
				}
108
				}
109
			}
109
			}
110
		});
110
		});
111
	}
111
	}
112
}
112
}