New file |
0,0 → 1,103 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
|
import java.util.List; |
|
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
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.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.VerticalPanel; |
|
public class ImagePresenteur { |
|
private final MockDatasource validationService = MockDatasource.getInstance(); |
private ImageVue vue = new ImageVue(); |
private final Image image; |
private boolean detailsOpen = false; |
|
private Protocole protocole; |
|
public ImagePresenteur(Image image, Protocole protocole) { |
this.image = image; |
this.protocole = protocole; |
} |
|
public void go(HasWidgets composite) { |
composite.add(vue); |
vue.loadImage(image); |
loadValidationData(); |
handleEvents(); |
|
} |
|
private void loadValidationData() { |
|
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getVoter()); |
|
} |
|
private void handleEvents() { |
|
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
|
if (!detailsOpen) { |
afficherDetails(); |
} else { |
cacherDetails(); |
} |
|
} |
}); |
|
vue.getAjoutValidation().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(image)); |
} |
}); |
} |
|
public void cacherDetails() { |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
|
zoneCache.setVisible(false); |
enSavoirPlus.setStyleName("boutonPlus"); |
|
detailsOpen = false; |
} |
|
public void afficherDetails() { |
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
|
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
|
zoneCache.setVisible(true); |
enSavoirPlus.setStyleName("boutonMoins"); |
|
detailsOpen = true; |
} |
|
public boolean isDetailsOpen() { |
return detailsOpen; |
} |
|
public ImageVue getVue() { |
return vue; |
} |
} |