Subversion Repositories eFlore/Applications.del

Rev

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

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