/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java |
---|
1,13 → 1,13 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.user.client.ui.HasWidgets; |
26,8 → 26,6 |
private Vue vue; |
private List<Observation> observations; |
public RechercheObservationsPresenteur(Vue vue) { |
this.vue = vue; |
} |
38,8 → 36,10 |
} |
composite.add(vue.asWidget()); |
ajouterMoteurRechercheAvancee(); |
gererEvenements(); |
ObservationServiceResultat observationServiceResultat = MockDatasource.getInstance().getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), 0, CacheClient.getInstance().getPasPagination()); |
creerWidgetPagination(observationServiceResultat.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationServiceResultat); |
} |
protected void ajouterMoteurRechercheAvancee() { |
48,7 → 48,7 |
@Override |
public void lancerRecherche() { |
chercherObservations(); |
chargerEtAfficherObservations(0, CacheClient.getInstance().getPasPagination()); |
} |
}; |
presenteur.go(vue.getZoneRecherche()); |
57,14 → 57,34 |
protected void gererEvenements() { |
} |
public void chercherObservations() { |
public void chargerEtAfficherObservations(int debut, int fin) { |
ObservationServiceResultat observationServiceResultat = MockDatasource.getInstance().getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin); |
afficherObservations(observationServiceResultat); |
} |
this.observations = MockDatasource.getInstance().getObservations(CacheClient.getInstance().getInformationsRechercheObservation()); |
private void afficherObservations(ObservationServiceResultat observationServiceResultat) { |
vue.getZoneObservations().clear(); |
for (Observation observation : observations) { |
for (Observation observation : observationServiceResultat.getObservations()) { |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation); |
presenteur.go(vue.getZoneObservations()); |
} |
} |
private void creerWidgetPagination(int nbObservations) { |
PaginationPresenteur paginationPresenteur = new PaginationPresenteur(nbObservations, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
chargerEtAfficherObservations(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante()); |
} |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
paginationPresenteur.go(vue.getZonePagination()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.java |
---|
1,18 → 1,11 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasVisibility; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class RechercheObservationsVue extends Composite implements RechercheObservationsPresenteur.Vue { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.ui.xml |
---|
11,7 → 11,7 |
</g:HTMLPanel> |
<g:HTMLPanel> |
<g:HTMLPanel ui:field="zoneObservations" styleName="{style.zoneObservation}"/> |
<g:HTMLPanel ui:field="zonePagination" /> |
<g:VerticalPanel ui:field="zonePagination" /> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEflorePresenteur.java |
---|
33,7 → 33,7 |
private Vue vue; |
private final VoteProtocoleService validationService = MockDatasource.getInstance(); |
private final ImageService imageService = MockDatasource.getInstance(); |
private final ImageService imageService; |
private Image imagePrincipale; |
private String nomTaxonComparaison; |
43,6 → 43,7 |
this.vue = vue; |
this.imagePrincipale = CacheClient.getInstance().getImageCourante(); |
this.nomTaxonComparaison = CacheClient.getInstance().getTaxonPourRechercheEflore(); |
this.imageService=imageService; |
} |
public void go(HasWidgets composite) { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImageVue.java |
---|
18,7 → 18,6 |
private final VerticalPanel mainPanel = new VerticalPanel(); |
private final Panel panneauChargement = new FlowPanel(); |
private final List<Panel> panneauxImages = new ArrayList<Panel>(); |
private int nbCol = 5; |
private final int nbImagesPerPage = 10; |
private int numImage = 0; |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
9,9 → 9,10 |
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.rechercheimage.EvenementVoirDetailsImage; |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementVoirDetailsImage; |
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 org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImageVue; |
25,25 → 26,37 |
public class ImagePresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public abstract void loadImage(Image image); |
public abstract HasClickHandlers getImagePrincipale(); |
public void setUrlImagePrincipale(String url); |
public void setTitreImagePrincipale(String titre); |
public void setAltTextImagePrincipale(String altText); |
public String getUrlImagePrincipale(); |
public String getTitreImagePrincipale(); |
public String getAltTextImagePrincipale(); |
public abstract HasClickHandlers getEnSavoirPlus(); |
public abstract HasClickHandlers getAjoutValidation(); |
public abstract void cacherZoneCache(); |
public abstract void afficherZoneCache(); |
public abstract HasWidgets getZoneVoter(); |
} |
private Vue vue; |
private Vue vue; |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private final Image image; |
private boolean detailsOpen = false; |
70,23 → 83,19 |
protected void gererEvenements() { |
vue.getImagePrincipale().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
IsWidget photo = (IsWidget)event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photo , new DetailImageVue())); |
IsWidget photo = (IsWidget) event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photo, new DetailImageVue())); |
} |
}); |
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if (!detailsOpen) { |
afficherDetails(); |
} else { |
cacherDetails(); |
} |
BusEvenementiel.getInstance().fireEvent(new EvenementVoirDetailsImage(image)); |
} |
}); |
99,6 → 108,23 |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(obs)); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementVoirDetailsImage.TYPE, new GestionnaireEvenementVoirDetailsImage() { |
@Override |
public void onVoirDetailsImage(EvenementVoirDetailsImage event) { |
if (image.getIdImage().equals(event.getImage().getIdImage())) { |
if (!detailsOpen) { |
afficherDetails(); |
} else { |
cacherDetails(); |
} |
} else { |
cacherDetails(); |
} |
} |
}); |
} |
public void cacherDetails() { |
107,9 → 133,7 |
} |
public void afficherDetails() { |
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
vue.afficherZoneCache(); |
detailsOpen = true; |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java |
---|
44,21 → 44,20 |
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().getNomRetenu()); |
nomAuteur.setText(image.getObservation().getAuteur()); |
imagePrincipale.setUrl(image.getUrl()); |
imagePrincipale.setTitle(image.getUrlFormat("L")); |
imagePrincipale.setAltText(image.getObservation().getAuteur() + " - " + image.getObservation().getNomRetenu()); |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
5,13 → 5,14 |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
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.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
18,72 → 19,75 |
public class ResultatRechercheImagePresenteur { |
private final ResultatRechercheImageVue vue = new ResultatRechercheImageVue(); |
private static ResultatRechercheImagePresenteur instance; |
private List<ImagePresenteur> observationPresenteurs = new ArrayList<ImagePresenteur>(); |
private ImageService imageService; |
public ResultatRechercheImagePresenteur(ImageService imageService) { |
instance = this; |
this.imageService = imageService; |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
int pas = CacheClient.getInstance().getPasPagination(); |
int pageCourante = CacheClient.getInstance().getPageCouranteRecherche(); |
actualiserImagesEtMoyenneVoteProtocole(pageCourante*pas, (pageCourante+1)*(pas)); |
// appel du service d'image pour avoir le nb total d'elements pour la |
// pagination |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues); |
} |
}; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), 0, CacheClient.getInstance().getPasPagination(), callback); |
} |
private void actualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
private void chargerEtAfficherImages(int premier, int dernier) { |
vue.startChargement(); |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
CacheClient.getInstance().setImages(imagesRecues.getImages()); |
createPaginationWidget(imagesRecues.getNbTotalImagesPourLaRecherche()); |
vue.nettoyer(); |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
vue.creerPanneauxObservations(imagesRecues.getImages().size()); |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imagesRecues.getImages()) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
} |
vue.afficherPanneauxObservation(panneauxImagesAffichees); |
vue.stopChargement(); |
afficherImages(imagesRecues); |
} |
}; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(),premier, dernier , callback); |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
} |
public void fermerTousPanneauxDetailsObservations() { |
for (ImagePresenteur observationPresenteur : observationPresenteurs) { |
if (observationPresenteur.isDetailsOpen()) { |
observationPresenteur.cacherDetails(); |
} |
private void afficherImages(ImageServiceResultat imageServiceResult) { |
CacheClient.getInstance().setImages(imageServiceResult.getImages()); |
vue.nettoyer(); |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
vue.creerPanneauxObservations(imageServiceResult.getImages().size()); |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imageServiceResult.getImages()) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
} |
vue.afficherPanneauxObservation(panneauxImagesAffichees); |
vue.stopChargement(); |
} |
private void createPaginationWidget(int nbImages) { |
private void creerWidgetPagination(int nbImages) { |
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
showImagePanels(debut, fin); |
CacheClient.getInstance().setPageCouranteRecherche(getPageCourante()); |
chargerEtAfficherImages(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
92,16 → 96,4 |
pagination.go(vue.getPanneauPagination()); |
} |
public void showImagePanels(int first, int last) { |
actualiserImagesEtMoyenneVoteProtocole(first, last); |
} |
public ResultatRechercheImageVue getView() { |
return vue; |
} |
public static ResultatRechercheImagePresenteur getInstance() { |
return instance; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/MoteurRechercheImagePresenteur.java |
---|
94,6 → 94,7 |
} |
public void chercherImages() { |
vue.getZoneResultats().clear(); |
new ResultatRechercheImagePresenteur(new ImageServiceConcret()).go(vue.getZoneResultats()); |
} |