Subversion Repositories eFlore/Applications.del

Rev

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

Rev 332 Rev 334
1
package org.tela_botanica.del.client.vues.rechercheobservations;
1
package org.tela_botanica.del.client.vues.rechercheobservations;
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.presenteur.Presenteur;
7
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
8
import org.tela_botanica.del.client.modeles.Image;
8
import org.tela_botanica.del.client.modeles.Image;
-
 
9
import org.tela_botanica.del.client.modeles.MoyenneVote;
9
import org.tela_botanica.del.client.modeles.Observation;
10
import org.tela_botanica.del.client.modeles.Observation;
10
import org.tela_botanica.del.client.modeles.PropositionDetermination;
11
import org.tela_botanica.del.client.modeles.PropositionDetermination;
11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
13
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
-
 
14
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
-
 
15
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationPresenteur;
-
 
16
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationVue;
13
 
17
 
14
import com.google.gwt.event.dom.client.ClickEvent;
18
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
19
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
21
import com.google.gwt.user.client.ui.HTMLPanel;
17
import com.google.gwt.user.client.ui.HasText;
22
import com.google.gwt.user.client.ui.HasText;
18
import com.google.gwt.user.client.ui.HasWidgets;
23
import com.google.gwt.user.client.ui.HasWidgets;
19
import com.google.gwt.user.client.ui.IsWidget;
24
import com.google.gwt.user.client.ui.IsWidget;
20
 
25
 
21
public class ObservationPresenteur extends Presenteur {
26
public class ObservationPresenteur extends Presenteur {
22
	
27
	
23
	public abstract interface Vue extends IsWidget {
28
	public abstract interface Vue extends IsWidget {
24
		public void ajouterPhoto(String url, String titre, String alText, ClickHandler GestionnaireClic);
29
		public void ajouterPhoto(String url, String titre, String alText, ClickHandler GestionnaireClic);
25
		public HasText getAuteur();
30
		public HasText getAuteur();
26
		public HasText getDate();
31
		public HasText getDate();
27
		public HasText getFamille();
32
		public HasText getFamille();
28
		public HasText getLocalite();
33
		public HasText getLocalite();
29
		public HasText getMotsClefs();
34
		public HasText getMotsClefs();
30
		public HasText getNomRetenu();
35
		public HasText getNomRetenu();
31
		public HasText getNumNomenclatural();
36
		public HasText getNumNomenclatural();
32
		public HasClickHandlers getPhotoPrincipale();
37
		public HasClickHandlers getPhotoPrincipale();
33
		public HasWidgets getPhotos();
38
		public HasWidgets getPhotos();
34
		public void setUrlImagePrincipale(String url);
39
		public void setUrlImagePrincipale(String url);
35
		public void setTitreImagePrincipale(String titre);
40
		public void setTitreImagePrincipale(String titre);
36
		public void setAltTextImagePrincipale(String altText);
41
		public void setAltTextImagePrincipale(String altText);
37
		public String getUrlImagePrincipale();
42
		public String getUrlImagePrincipale();
38
		public String getTitreImagePrincipale();
43
		public String getTitreImagePrincipale();
39
		public String getAltTextImagePrincipale();
44
		public String getAltTextImagePrincipale();
40
		public void setTexteTableau(int ligne, int colonne, String texte);
45
		public void setTexteTableau(int ligne, int colonne, String texte);
-
 
46
		public void setElementTableau(int ligne, int colonne, IsWidget element);
41
		public HasClickHandlers getLienDeterminer();
47
		public HasClickHandlers getLienDeterminer();
42
	}
48
	}
43
	
49
	
44
	private Vue vue;
50
	private Vue vue;
45
 
51
 
46
	private Observation observation;
52
	private Observation observation;
47
 
53
 
48
	public ObservationPresenteur(Vue vue, Observation observation) {
54
	public ObservationPresenteur(Vue vue, Observation observation) {
49
		this.observation = observation;
55
		this.observation = observation;
50
		this.vue = vue;
56
		this.vue = vue;
51
		chargerObservation();
57
		chargerObservation();
52
	}
58
	}
53
 
59
 
54
	public void chargerObservation() {
60
	public void chargerObservation() {
55
		HasText auteur = vue.getAuteur();
61
		HasText auteur = vue.getAuteur();
56
		auteur.setText(observation.getAuteur());
62
		auteur.setText(observation.getAuteur());
57
		vue.getDate().setText(observation.getDate());
63
		vue.getDate().setText(observation.getDate());
58
		vue.getFamille().setText(observation.getFamille());
64
		vue.getFamille().setText(observation.getFamille());
59
		vue.getLocalite().setText(observation.getLocalite());
65
		vue.getLocalite().setText(observation.getLocalite());
60
 
66
 
61
		List<String> motsCles = observation.getMotsClefs();
67
		List<String> motsCles = observation.getMotsClefs();
62
		Iterator<String> itMotsCles = motsCles.iterator();
68
		Iterator<String> itMotsCles = motsCles.iterator();
63
		String motsClesChaine = "";
69
		String motsClesChaine = "";
64
		while (itMotsCles.hasNext()) {
70
		while (itMotsCles.hasNext()) {
65
			String motCle = itMotsCles.next();
71
			String motCle = itMotsCles.next();
66
			motsClesChaine += motCle;
72
			motsClesChaine += motCle;
67
			if (itMotsCles.hasNext()) {
73
			if (itMotsCles.hasNext()) {
68
				motsClesChaine += ", ";
74
				motsClesChaine += ", ";
69
			}
75
			}
70
		}
76
		}
71
		vue.getMotsClefs().setText(motsClesChaine);
77
		vue.getMotsClefs().setText(motsClesChaine);
72
		vue.getNomRetenu().setText(observation.getNomRetenu());
78
		vue.getNomRetenu().setText(observation.getNomRetenu());
73
		vue.getNumNomenclatural().setText(observation.getNumNomenclatural());
79
		vue.getNumNomenclatural().setText(observation.getNumNomenclatural());
74
 
80
 
75
		List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages();
81
		List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages();
76
 
82
 
77
		if (images != null && images.size() > 0) {
83
		if (images != null && images.size() > 0) {
78
			org.tela_botanica.del.client.modeles.Image imagePrincipale = images.get(0);
84
			org.tela_botanica.del.client.modeles.Image imagePrincipale = images.get(0);
79
			vue.setUrlImagePrincipale(imagePrincipale.getUrl());
85
			vue.setUrlImagePrincipale(imagePrincipale.getUrl());
80
			vue.setTitreImagePrincipale(imagePrincipale.getUrlFormat("L"));
86
			vue.setTitreImagePrincipale(imagePrincipale.getUrlFormat("L"));
81
			vue.setAltTextImagePrincipale(observation.getAuteur() + " - " + observation.getNomRetenu());
87
			vue.setAltTextImagePrincipale(observation.getAuteur() + " - " + observation.getNomRetenu());
82
			images.remove(0);
88
			images.remove(0);
83
		}
89
		}
84
 
90
 
85
		int nbImagesAffichees = 0;
91
		int nbImagesAffichees = 0;
86
		for (org.tela_botanica.del.client.modeles.Image imageCourante : images) {
92
		for (org.tela_botanica.del.client.modeles.Image imageCourante : images) {
87
			nbImagesAffichees++;
93
			nbImagesAffichees++;
88
			if (nbImagesAffichees < 5) {
94
			if (nbImagesAffichees < 5) {
89
				ClickHandler gestionnaireClic = new ClickHandler() {
95
				ClickHandler gestionnaireClic = new ClickHandler() {
90
					public void onClick(ClickEvent event) {
96
					public void onClick(ClickEvent event) {
91
						IsWidget image = (IsWidget)event.getSource();
97
						IsWidget image = (IsWidget)event.getSource();
92
						ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
98
						ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
93
					}
99
					}
94
				};
100
				};
95
				vue.ajouterPhoto(imageCourante.getUrlFormat("CRX2S"), 
101
				vue.ajouterPhoto(imageCourante.getUrlFormat("CRX2S"), 
96
								 imageCourante.getUrlFormat("L"), 
102
								 imageCourante.getUrlFormat("L"), 
97
								 observation.getAuteur() + " - " + observation.getNomRetenu(),
103
								 observation.getAuteur() + " - " + observation.getNomRetenu(),
98
								 gestionnaireClic);
104
								 gestionnaireClic);
99
			}
105
			}
100
		}
106
		}
101
 
107
 
102
		List<PropositionDetermination> propositions = observation.getPropositionsDetermination();
108
		List<PropositionDetermination> propositions = observation.getPropositionsDetermination();
103
 
109
 
104
		vue.setTexteTableau(0, 0, "Certitude");
110
		vue.setTexteTableau(0, 0, "Certitude");
105
		vue.setTexteTableau(0, 1, "Commentaires");
111
		vue.setTexteTableau(0, 1, "Commentaires");
106
		vue.setTexteTableau(0, 2, "Nom");
-
 
107
		vue.setTexteTableau(0, 3, "Votez");
-
 
108
 
112
 
109
		int i = 0;
113
		int i = 0;
110
		for (PropositionDetermination proposition : propositions) {
114
		for (PropositionDetermination proposition : propositions) {
111
			i++;
115
			i++;
112
			vue.setTexteTableau(i, 0, String.valueOf(proposition.getVotesDeterminations().size()));
-
 
113
			/*
-
 
114
			 * List<VoteDetermination> votes =
116
			HTMLPanel panneau = new HTMLPanel("");
115
			 * proposition.getVotesDeterminations(); for (VoteDetermination vote
117
			DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition);
116
			 * : votes) { vote.getVote(); }
118
			presenteurVote.go(panneau);
117
			 */
119
			vue.setElementTableau(i, 0, panneau);
118
			vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size()));
120
			vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size()));
119
			vue.setTexteTableau(i, 2, proposition.getEspece());
-
 
120
		}
121
		}
121
 
122
 
122
		gererEvenements();
123
		gererEvenements();
123
		// vue.propositions.setText(ch);
124
		// vue.propositions.setText(ch);
124
	}
125
	}
125
 
126
 
126
	public void go(HasWidgets composite) {
127
	public void go(HasWidgets composite) {
127
		composite.add(vue.asWidget());
128
		composite.add(vue.asWidget());
128
	}
129
	}
129
 
130
 
130
	protected void gererEvenements() {
131
	protected void gererEvenements() {
131
		vue.getPhotoPrincipale().addClickHandler(new ClickHandler() {
132
		vue.getPhotoPrincipale().addClickHandler(new ClickHandler() {
132
			public void onClick(ClickEvent event) {
133
			public void onClick(ClickEvent event) {
133
				//FIXME : faire une interface pour les images
134
				//FIXME : faire une interface pour les images
134
				IsWidget image = (IsWidget)event.getSource();
135
				IsWidget image = (IsWidget)event.getSource();
135
				ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
136
				ouvrirFenetreModale(new DetailImagePresenteur(image, new DetailImageVue()));
136
			}
137
			}
137
		});
138
		});
138
		
139
		
139
		vue.getLienDeterminer().addClickHandler(new ClickHandler() {
140
		vue.getLienDeterminer().addClickHandler(new ClickHandler() {
140
			
141
			
141
			public void onClick(ClickEvent event) {
142
			public void onClick(ClickEvent event) {
142
				List<Image> images = observation.getImages();
143
				List<Image> images = observation.getImages();
143
				if (images.size() > 0) {
144
				if (images.size() > 0) {
144
					CacheClient.getInstance().setImageCourante(images.get(0));
145
					CacheClient.getInstance().setImageCourante(images.get(0));
145
				} else {
146
				} else {
146
					CacheClient.getInstance().setImageCourante(null);
147
					CacheClient.getInstance().setImageCourante(null);
147
				}
148
				}
148
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
149
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
149
			}
150
			}
150
		});
151
		});
151
	}
152
	}
152
}
153
}