Subversion Repositories eFlore/Applications.del

Rev

Rev 237 | Rev 352 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
50 benjamin 1
package org.tela_botanica.del.client.vues.comparaisoneflore;
2
 
3
import java.util.List;
4
 
73 benjamin 5
import org.tela_botanica.del.client.cache.CacheClient;
148 benjamin 6
import org.tela_botanica.del.client.modeles.Image;
7
import org.tela_botanica.del.client.modeles.VoteProtocole;
284 benjamin 8
import org.tela_botanica.del.client.services.rest.ImageService;
9
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
50 benjamin 10
import org.tela_botanica.del.client.utils.MockDatasource;
11
 
12
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickHandler;
284 benjamin 14
import com.google.gwt.event.dom.client.HasClickHandlers;
50 benjamin 15
import com.google.gwt.user.client.ui.HasWidgets;
284 benjamin 16
import com.google.gwt.user.client.ui.IsWidget;
50 benjamin 17
 
18
public class ComparaisonEflorePresenteur {
19
 
284 benjamin 20
	public interface Vue extends IsWidget {
21
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
22
 
23
		public void chargerImagesEflore(List<org.tela_botanica.del.client.modeles.Image> observationsEflore, int indexImage);
24
 
25
		public HasClickHandlers getScrollLeftImage();
26
 
27
		public HasClickHandlers getScrollRightImage();
28
 
29
		public int getCurrentIndexImages();
30
	}
31
 
32
	private Vue vue;
33
	private final VoteProtocoleService validationService = MockDatasource.getInstance();
34
	private final ImageService imageService = MockDatasource.getInstance();
35
 
148 benjamin 36
	private Image imagePrincipale;
50 benjamin 37
	private String nomTaxonComparaison;
148 benjamin 38
	private List<org.tela_botanica.del.client.modeles.Image> imagesEflore;
62 benjamin 39
 
284 benjamin 40
	public ComparaisonEflorePresenteur(Vue vue) {
41
		this.vue = vue;
148 benjamin 42
		this.imagePrincipale = CacheClient.getInstance().getImageCourante();
73 benjamin 43
		this.nomTaxonComparaison = CacheClient.getInstance().getTaxonPourRechercheEflore();
50 benjamin 44
	}
45
 
46
	public void go(HasWidgets composite) {
284 benjamin 47
		composite.add(vue.asWidget());
62 benjamin 48
		chargerValidationObservationPrincipale();
148 benjamin 49
		vue.chargerImagePrincipale(imagePrincipale);
50 benjamin 50
		chargerObservationsEflore();
51
		gererEvenements();
52
	}
53
 
284 benjamin 54
	public void chargerValidationObservationPrincipale() {
178 benjamin 55
		List<VoteProtocole> observationValidations = validationService.getVote(imagePrincipale.getIdImage());
148 benjamin 56
		imagePrincipale.setVoteProtocoles(observationValidations);
62 benjamin 57
	}
58
 
284 benjamin 59
	public void chargerObservationsEflore() {
60
		imagesEflore = imageService.getImagesEfloreParTaxon(nomTaxonComparaison);
148 benjamin 61
		vue.chargerImagesEflore(imagesEflore, 0);
50 benjamin 62
	}
63
 
64
	private void gererEvenements() {
284 benjamin 65
		vue.getScrollLeftImage().addClickHandler(new ClickHandler() {
50 benjamin 66
 
67
			@Override
68
			public void onClick(ClickEvent event) {
148 benjamin 69
				vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages() - 1);
50 benjamin 70
			}
71
		});
62 benjamin 72
 
284 benjamin 73
		vue.getScrollRightImage().addClickHandler(new ClickHandler() {
50 benjamin 74
 
75
			@Override
76
			public void onClick(ClickEvent event) {
148 benjamin 77
				vue.chargerImagesEflore(imagesEflore, vue.getCurrentIndexImages() + 1);
50 benjamin 78
			}
79
		});
80
	}
81
 
284 benjamin 82
	public List<org.tela_botanica.del.client.modeles.Image> getImagesEflore() {
83
		return imagesEflore;
84
	}
85
 
50 benjamin 86
}