9,18 → 9,38 |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.rechercheimages.MoteurRechercheImage.Vue; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImageVue; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasChangeHandlers; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.VerticalPanel; |
|
public class ImagePresenteur extends Presenteur { |
|
public interface Vue extends IsWidget { |
|
public abstract void loadImage(Image image); |
public abstract HasClickHandlers getImagePrincipale(); |
public abstract HasClickHandlers getEnSavoirPlus(); |
public abstract HasClickHandlers getAjoutValidation(); |
public abstract void cacherZoneCache(); |
public abstract void afficherZoneCache(); |
public abstract HasWidgets getZoneVoter(); |
|
} |
|
private Vue vue; |
|
private final MockDatasource validationService = MockDatasource.getInstance(); |
private final Image image; |
private boolean detailsOpen = false; |
27,15 → 47,14 |
|
private Protocole protocole; |
|
public ImagePresenteur(Image image, Protocole protocole) { |
super(new ImageVue()); |
public ImagePresenteur(Image image, Protocole protocole, Vue vue) { |
this.image = image; |
this.protocole = protocole; |
this.vue = vue; |
} |
|
public void go(HasWidgets composite) { |
ImageVue vue = (ImageVue) this.getVue(); |
composite.add(vue); |
composite.add(vue.asWidget()); |
vue.loadImage(image); |
loadValidationData(); |
gererEvenements(); |
42,24 → 61,20 |
} |
|
private void loadValidationData() { |
ImageVue vue = (ImageVue) this.getVue(); |
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.voter); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getZoneVoter()); |
} |
|
@Override |
protected void gererEvenements() { |
ImageVue vue = (ImageVue) this.getVue(); |
|
vue.imagePrincipale.addClickHandler(new ClickHandler() { |
vue.getImagePrincipale().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
com.google.gwt.user.client.ui.Image photo = (com.google.gwt.user.client.ui.Image) event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText())); |
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText(), new DetailImageVue())); |
} |
}); |
vue.enSavoirPlus.addClickHandler(new ClickHandler() { |
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
72,7 → 87,7 |
} |
}); |
|
vue.ajoutValidation.addClickHandler(new ClickHandler() { |
vue.getAjoutValidation().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
82,24 → 97,14 |
} |
|
public void cacherDetails() { |
ImageVue vue = (ImageVue) this.getVue(); |
VerticalPanel zoneCache = vue.zoneCache; |
Label enSavoirPlus = vue.enSavoirPlus; |
|
zoneCache.setVisible(false); |
|
vue.cacherZoneCache(); |
detailsOpen = false; |
} |
|
public void afficherDetails() { |
ImageVue vue = (ImageVue) this.getVue(); |
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
vue.afficherZoneCache(); |
|
VerticalPanel zoneCache = vue.zoneCache; |
Label enSavoirPlus = vue.enSavoirPlus; |
|
zoneCache.setVisible(true); |
|
detailsOpen = true; |
} |
|