/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
8,6 → 8,7 |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
24,22 → 25,16 |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
createPaginationWidget(CacheClient.getInstance().getImages().size()); |
reactualiserImagesEtMoyenneVoteProtocole(0, CacheClient.getInstance().getPaginationPasRechercheImage()); |
actualiserImagesEtMoyenneVoteProtocole(0, CacheClient.getInstance().getPasPagination()); |
} |
private void reactualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
private void actualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
// Remise à zéro du panneau d'affichage et des composants |
vue.nettoyer(); |
// TODO : créer une méthode globale pour l'application ? voir |
// superclasse présenteur ? |
// FIXME : ne s'affiche pas |
vue.startChargement(); |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
List<Image> imagesAffichees = CacheClient.getInstance().getSousListeImages(premier, dernier); |
vue.creerPanneauxObservations(imagesAffichees.size()); |
47,7 → 42,7 |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imagesAffichees) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant()); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
68,17 → 63,17 |
private void createPaginationWidget(int nbImages) { |
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPaginationPasRechercheImage()) { |
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
showImagePanels(debut, fin); |
CacheClient.getInstance().setNumPageRechercheImage(getPageCourante()); |
CacheClient.getInstance().setPageCouranteRecherche(getPageCourante()); |
} |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPaginationPasRerchercheImage(pas); |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
pagination.go(vue.getPanneauPagination()); |
85,7 → 80,7 |
} |
public void showImagePanels(int first, int last) { |
reactualiserImagesEtMoyenneVoteProtocole(first, last); |
actualiserImagesEtMoyenneVoteProtocole(first, last); |
} |
public ResultatRechercheImageVue getView() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java |
---|
1,9 → 1,11 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
10,7 → 12,7 |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class ImageVue extends Composite { |
public class ImageVue extends Composite implements ImagePresenteur.Vue { |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationVue.ui.xml") |
39,8 → 41,20 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
protected void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
public HasWidgets getZoneVoter() { |
return voter; |
} |
public void cacherZoneCache() { |
zoneCache.setVisible(false); |
} |
public void afficherZoneCache() { |
zoneCache.setVisible(true); |
} |
public void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
zoneCache.setVisible(false); |
nomEspece.setText(image.getObservation().getSpecies()); |
nomAuteur.setText(image.getObservation().getAuteur()); |
56,4 → 70,19 |
} |
@Override |
public HasClickHandlers getImagePrincipale() { |
return imagePrincipale; |
} |
@Override |
public HasClickHandlers getEnSavoirPlus() { |
return enSavoirPlus; |
} |
@Override |
public HasClickHandlers getAjoutValidation() { |
return ajoutValidation; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
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; |
} |