/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservations.css |
---|
4,5 → 4,4 |
.rechercheAvancee {border:solid 1px #333; padding:10px; -moz-border-radius:0 0 10px 10px; -moz-box-shadow:5px 5px 10px #EEE;position:absolute; width:700px; margin-top:5px; background:white} |
.champRecherche {float:left; width:50%; padding-bottom:5px} |
.recherchePrecedente {color:#555; padding:5px; font-style:italic} |
.zoneObservation {width:100%; clear:left; margin-top:50px} |
.entrerMotClef {margin-bottom:10px} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationimages/ObservationImagesPresenteur.java |
---|
14,7 → 14,6 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
51,7 → 50,7 |
listeImages = observation.getImages(); |
imagePrincipale = CacheClient.getInstance().getImageCourante(); |
if(imagePrincipale == null) { |
if(imagePrincipale != null) { |
vue.chargerImagePrincipale(imagePrincipale); |
} else if (listeImages.size() > 0){ |
vue.chargerImagePrincipale(listeImages.get(0)); |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.ui.xml |
---|
11,12 → 11,7 |
<g:HTMLPanel ui:field="zoneRecherche"/> |
</g:HTMLPanel> |
<g:HTMLPanel> |
<g:VerticalPanel ui:field="zonePaginationHaut" /> |
<g:VerticalPanel ui:field="panneauChargement" > |
<g:Image url="./img/wait.gif"></g:Image> |
</g:VerticalPanel> |
<g:HTMLPanel ui:field="zoneObservations" styleName="{style.zoneObservation}"/> |
<g:VerticalPanel ui:field="zonePaginationBas" /> |
<g:VerticalPanel ui:field="zoneResultats" /> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java |
---|
1,15 → 1,12 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
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.pagination.PaginationVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.services.rest.ObservationService; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret; |
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsVue; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
16,22 → 13,10 |
public class RechercheObservationsPresenteur extends Presenteur { |
private ObservationService serviceObs; |
public abstract interface Vue extends IsWidget { |
public HasWidgets getZoneRecherche(); |
public HasWidgets getZoneObservations(); |
public HasWidgets getZonePaginationHaut(); |
public HasWidgets getZonePaginationBas(); |
public void startChargement(); |
public void stopChargement(); |
public void nettoyer(); |
public HasWidgets getZoneResultats(); |
} |
private Vue vue; |
39,7 → 24,6 |
public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
this.serviceObs = serviceObs; |
} |
public void go(HasWidgets composite) { |
47,15 → 31,6 |
composite.add(vue.asWidget()); |
ajouterMoteurRechercheAvancee(); |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationsRecues); |
} |
}; |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), 0, CacheClient.getInstance().getPasPagination(), callback); |
} |
protected void ajouterMoteurRechercheAvancee() { |
64,69 → 39,18 |
@Override |
public void lancerRecherche() { |
chargerEtAfficherObservations(0, CacheClient.getInstance().getPasPagination()); |
chercherObservations(); |
} |
}; |
presenteur.go(vue.getZoneRecherche()); |
} |
protected void gererEvenements() { |
public void chercherObservations() { |
vue.getZoneResultats().clear(); |
new ResultatsRechercheObservationsPresenteur(new ObservationServiceConcret(), new ResultatsRechercheObservationsVue()).go(vue.getZoneResultats()); |
} |
public void chargerEtAfficherObservations(int debut, int fin) { |
vue.startChargement(); |
vue.nettoyer(); |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
afficherObservations(observationsRecues); |
} |
}; |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback); |
protected void gererEvenements() { |
} |
private void afficherObservations(ObservationServiceResultat observationServiceResultat) { |
vue.nettoyer(); |
for (Observation observation : observationServiceResultat.getObservations()) { |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation); |
presenteur.go(vue.getZoneObservations()); |
} |
vue.stopChargement(); |
} |
private void creerWidgetPagination(int nbObservations) { |
PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), 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 paginationPresenteurBas = new PaginationPresenteur(new PaginationVue(), 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); |
} |
}; |
paginationPresenteurHaut.go(vue.getZonePaginationHaut()); |
paginationPresenteurBas.go(vue.getZonePaginationBas()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservationsVue.ui.xml |
---|
New file |
0,0 → 1,17 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="ResultatsRechercheObservations.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel> |
<g:VerticalPanel ui:field="zonePaginationHaut" /> |
<g:VerticalPanel ui:field="panneauChargement" > |
<g:Image url="./img/wait.gif"></g:Image> |
</g:VerticalPanel> |
<g:HTMLPanel ui:field="zoneObservations" styleName="{style.zoneObservation}"/> |
<g:VerticalPanel ui:field="zonePaginationBas" /> |
</g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservationsPresenteur.java |
---|
New file |
0,0 → 1,115 |
package org.tela_botanica.del.client.vues.rechercheobservations.resultats; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.composants.pagination.PaginationVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.services.rest.ObservationService; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.vues.rechercheobservations.ObservationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.ObservationVue; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ResultatsRechercheObservationsPresenteur extends Presenteur { |
private ObservationService serviceObs; |
public abstract interface Vue extends IsWidget { |
public HasWidgets getZoneObservations(); |
public HasWidgets getZonePaginationHaut(); |
public HasWidgets getZonePaginationBas(); |
public void startChargement(); |
public void stopChargement(); |
public void nettoyer(); |
} |
private Vue vue; |
public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
this.serviceObs = serviceObs; |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
lancerRechercheEtCreerWidgetPagination(); |
} |
protected void gererEvenements() { |
} |
public void chargerEtAfficherObservations(int debut, int fin) { |
vue.startChargement(); |
vue.nettoyer(); |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
afficherObservations(observationsRecues); |
} |
}; |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback); |
} |
private void afficherObservations(ObservationServiceResultat observationServiceResultat) { |
vue.nettoyer(); |
for (Observation observation : observationServiceResultat.getObservations()) { |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation); |
presenteur.go(vue.getZoneObservations()); |
} |
vue.stopChargement(); |
} |
private void creerWidgetPagination(int nbObservations) { |
vue.getZonePaginationHaut().clear(); |
vue.getZonePaginationBas().clear(); |
PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations); |
PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations); |
paginationPresenteurHaut.go(vue.getZonePaginationHaut()); |
paginationPresenteurBas.go(vue.getZonePaginationBas()); |
} |
private PaginationPresenteur creerPresenteurPagination(int nbObservations) { |
PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) { |
@Override |
public void chargerElements(int debut, int fin) { |
chargerEtAfficherObservations(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante()); |
} |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
return paginationPresenteurHaut; |
} |
public void lancerRechercheEtCreerWidgetPagination() { |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationsRecues); |
} |
}; |
int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination(); |
int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination(); |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservationsVue.java |
---|
New file |
0,0 → 1,63 |
package org.tela_botanica.del.client.vues.rechercheobservations.resultats; |
import com.google.gwt.core.client.GWT; |
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.Panel; |
import com.google.gwt.user.client.ui.Widget; |
public class ResultatsRechercheObservationsVue extends Composite implements ResultatsRechercheObservationsPresenteur.Vue { |
@UiField |
Panel panneauChargement; |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, ResultatsRechercheObservationsVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
Panel zoneObservations, zonePaginationHaut, zonePaginationBas; |
// Constructeur de la vue |
public ResultatsRechercheObservationsVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public HasWidgets getZoneObservations() { |
return zoneObservations; |
} |
@Override |
public HasWidgets getZonePaginationHaut() { |
return zonePaginationHaut; |
} |
@Override |
public HasWidgets getZonePaginationBas() { |
return zonePaginationBas; |
} |
/** |
* Nettoie et remet à zéro les composants du panneau qui doivent l'être |
* */ |
@Override |
public void nettoyer() { |
zoneObservations.clear(); |
} |
@Override |
public void startChargement() { |
panneauChargement.setHeight(zoneObservations.getOffsetHeight() + "px"); |
panneauChargement.setVisible(true); |
} |
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservations.css |
---|
New file |
0,0 → 1,0 |
.zoneObservation {width:100%; clear:left; margin-top:50px} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.java |
---|
10,9 → 10,6 |
public class RechercheObservationsVue extends Composite implements RechercheObservationsPresenteur.Vue { |
@UiField |
Panel panneauChargement; |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, RechercheObservationsVue> { |
} |
19,48 → 16,20 |
private static Binder binder = GWT.create(Binder.class); |
@UiField Panel zoneRecherche, zoneObservations, zonePaginationHaut, zonePaginationBas; |
@UiField |
Panel zoneRecherche, zoneResultats; |
public HasWidgets getZoneRecherche() { |
return zoneRecherche; |
} |
// Constructeur de la vue |
public RechercheObservationsVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public HasWidgets getZoneObservations() { |
return zoneObservations; |
public Panel getZoneResultats() { |
return zoneResultats; |
} |
@Override |
public HasWidgets getZonePaginationHaut() { |
return zonePaginationHaut; |
} |
@Override |
public HasWidgets getZonePaginationBas() { |
return zonePaginationBas; |
} |
/** |
* Nettoie et remet à zéro les composants du panneau qui doivent l'être |
* */ |
@Override |
public void nettoyer() { |
zoneObservations.clear(); |
} |
@Override |
public void startChargement() { |
panneauChargement.setHeight(zoneObservations.getOffsetHeight()+"px"); |
panneauChargement.setVisible(true); |
} |
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/MoteurRechercheImagePresenteur.java |
---|
5,7 → 5,6 |
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.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
7,6 → 7,7 |
import org.tela_botanica.del.client.composants.fenetreOverlayDefilante.FenetreOverlayDefilanteVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
16,6 → 17,9 |
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.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.ImageServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur; |
93,10 → 97,24 |
} |
private void lancerEvenementValidation() { |
CacheClient.getInstance().setImageCourante(image); |
Observation obs = image.getObservation(); |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(obs)); |
CacheClient.getInstance().setImageCourante(image); |
final Observation obs = image.getObservation(); |
// charge toutes les images de l'observation associee à l'observation en |
// cours |
ImageService imageService = new ImageServiceConcret(); |
imageService.getImagesParObservation(obs.getId(), new ImagesParTaxonCallback() { |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
//TODO a changer lorsque le service sera implementé de manière realiste |
//par obs.setImages(imagesRecues.getImages()); |
obs.getImages().addAll(imagesRecues.getImages().subList(0, 9)); |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(obs)); |
} |
}); |
} |
protected void gererEvenements() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
42,15 → 42,7 |
private Vue vue; |
private List<ImagePresenteur> ImagePresenteurs = new ArrayList<ImagePresenteur>(); |
private ImageService imageService; |
private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur; |
/** |
* Ceci sert à éviter que les deux présenteurs paginations fassent deux |
* requêtes par changement de page En attendant d'en discuter avec les |
* autres |
*/ |
private boolean requeteEnCours = false; |
public ResultatRechercheImagePresenteur(ImageService imageService, Vue vue) { |
this.vue = vue; |
this.imageService = imageService; |
60,6 → 52,11 |
composite.add(vue.asWidget()); |
vue.startChargement(); |
rechercherImagesEtCreerWidgetPagination(); |
} |
public void rechercherImagesEtCreerWidgetPagination() { |
// appel du service d'image pour avoir le nb total d'elements pour la |
// pagination |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
66,13 → 63,12 |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues, 0, CacheClient.getInstance().getPasPagination()); |
requeteEnCours = false; |
int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination(); |
int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination(); |
afficherImages(imagesRecues, debut, fin); |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), 0, CacheClient.getInstance().getPasPagination(), callback); |
} |
private void chargerEtAfficherImages(final int premier, final int dernier) { |
83,10 → 79,8 |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
afficherImages(imagesRecues, premier, dernier); |
requeteEnCours = false; |
} |
}; |
requeteEnCours = true; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
} |
113,28 → 107,18 |
private void creerWidgetPagination(int nbImages) { |
this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
PaginationPresenteur imagesPaginationPresenteurHaut = creerPresenteurPagination(nbImages); |
PaginationPresenteur imagesPaginationPresenteurBas = creerPresenteurPagination(nbImages); |
imagesPaginationPresenteurHaut.go(vue.getPanneauPaginationHaut()); |
imagesPaginationPresenteurBas.go(vue.getPanneauPagination()); |
} |
public PaginationPresenteur creerPresenteurPagination(int nbImages) { |
PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheImage()) { |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
public void chargerElements(int debut, int fin) { |
this.paginationHautPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
chargerEtAfficherImages(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
} |
142,9 → 126,7 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
}; |
this.paginationBasPresenteur.go(vue.getPanneauPagination()); |
this.paginationHautPresenteur.go(vue.getPanneauPaginationHaut()); |
return imagesPaginationPresenteur; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
12,8 → 12,6 |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.vues.plateformedetermination.detail.DetailImageObservationPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.detail.DetailImageObservationVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
28,7 → 26,6 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
/trunk/src/org/tela_botanica/del/client/services/rest/ObservationServiceConcret.java |
---|
1,6 → 1,8 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
7,13 → 9,12 |
import com.google.gwt.http.client.RequestBuilder; |
public class ObservationServiceConcret implements ObservationService { |
private String serverUrl = "/del/jrest/"; |
@Override |
public ObservationServiceResultat getObservations( |
InformationsRecherche infos, int debut, int fin, ObservationsCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Observations"+assemblerChaineRequete(infos, debut, fin)); |
public ObservationServiceResultat getObservations(InformationsRecherche infos, int debut, int fin, ObservationsCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl + "Observations" + assemblerChaineRequete(infos, debut, fin)); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
21,14 → 22,14 |
} |
return null; |
} |
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin) { |
String chaineRequete = "?debut="+debut+"&limite="+(fin-debut); |
if(infos != null && infos.getTaxon() != null && !infos.getTaxon().trim().isEmpty()) { |
chaineRequete += "nom_taxon="+infos.getTaxon()+chaineRequete; |
String chaineRequete = "?debut=" + debut + "&limite=" + (fin - debut); |
if (infos != null && infos.getTaxon() != null && !infos.getTaxon().trim().isEmpty()) { |
chaineRequete += "nom_taxon=" + infos.getTaxon() + chaineRequete; |
} |
return chaineRequete; |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ObservationService.java |
---|
1,6 → 1,7 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
/trunk/src/org/tela_botanica/del/client/services/rest/ImageServiceConcret.java |
---|
6,15 → 6,17 |
import com.google.gwt.http.client.RequestBuilder; |
public class ImageServiceConcret implements ImageService { |
private String serverUrl = "/del/jrest/"; |
@Override |
public void getImagesEfloreParTaxon(String taxon, ImagesParTaxonCallback callback) { |
//RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"ImagesEflore"); |
//adresse ajoutee temporairement le temps de faire fonctionner le service d'images eflore |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Images?nom_taxon="+taxon); |
// RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, |
// serverUrl+"ImagesEflore"); |
// adresse ajoutee temporairement le temps de faire fonctionner le |
// service d'images eflore |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl + "Images?nom_taxon=" + taxon); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
24,7 → 26,7 |
@Override |
public void getImagesParTaxon(InformationsRecherche infos, int debut, int fin, ImagesParTaxonCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl+"Images"+assemblerChaineRequete(infos, debut, fin)); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, serverUrl + "Images" + assemblerChaineRequete(infos, debut, fin)); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
31,14 → 33,19 |
// TODO: handle exception |
} |
} |
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback) { |
// TODO implementer avec une methode realiste |
getImagesEfloreParTaxon("", callback); |
} |
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin) { |
String chaineRequete = "?debut="+debut+"&limite="+(fin-debut); |
if(infos != null && infos.getTaxon() != null && !infos.getTaxon().trim().isEmpty()) { |
chaineRequete += "nom_taxon="+infos.getTaxon()+chaineRequete; |
String chaineRequete = "?debut=" + debut + "&limite=" + (fin - debut); |
if (infos != null && infos.getTaxon() != null && !infos.getTaxon().trim().isEmpty()) { |
chaineRequete += "nom_taxon=" + infos.getTaxon() + chaineRequete; |
} |
return chaineRequete; |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ImageService.java |
---|
5,8 → 5,10 |
public interface ImageService { |
public abstract void getImagesEfloreParTaxon(String nomTaxon, ImagesParTaxonCallback callback); |
public void getImagesEfloreParTaxon(String nomTaxon, ImagesParTaxonCallback callback); |
public abstract void getImagesParTaxon(InformationsRecherche informationsRecherche, int debut, int fin, ImagesParTaxonCallback callback); |
public void getImagesParTaxon(InformationsRecherche informationsRecherche, int debut, int fin, ImagesParTaxonCallback callback); |
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback); |
} |
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRechercheVue.java |
---|
61,12 → 61,12 |
public HasClickHandlers getBoutonRechercheSimple() { |
return boutonRecherche; |
} |
@Override |
public HasClickHandlers getBoutonFermer() { |
return boutonFermer; |
} |
@Override |
public HasClickHandlers getBoutonVider() { |
return boutonVider; |
97,18 → 97,8 |
recherchePrincipale.setText(valeurRecherche); |
} |
public void chargerValeursRechercheSimplePrecedente(InformationsRecherche informationsRecherche) { |
this.nettoyer(); |
if (informationsRecherche.getRechercheLibre() != null && !informationsRecherche.getRechercheLibre().equals("")) { |
getRecherchePrincipale().setText(informationsRecherche.getRechercheLibre()); |
} |
afficherLigneInfoRecherche(informationsRecherche); |
} |
public void chargerValeursRecherchePrecedente(InformationsRecherche informationsRecherche) { |
informationsRecherche.setRechercheLibre(null); |
getRecherchePrincipale().setText(""); |
getRecherchePrincipale().setText(informationsRecherche.getRechercheLibre()); |
getDepartement().setText(informationsRecherche.getDepartement()); |
getCommune().setText(informationsRecherche.getCommune()); |
getFamille().setText(informationsRecherche.getFamille()); |
117,7 → 107,7 |
getMotCle().setText(informationsRecherche.getMotClef()); |
getAuteur().setText(informationsRecherche.getAuteur()); |
getDate().setText(informationsRecherche.getDate()); |
afficherLigneInfoRecherche(informationsRecherche); |
} |
129,42 → 119,40 |
*/ |
private void afficherLigneInfoRecherche(InformationsRecherche informationRecherche) { |
//tax dep com fam gen ta mo au date |
// tax dep com fam gen ta mo au date |
StringBuffer texteRecherchePrecedente = new StringBuffer(); |
if (informationRecherche.getRechercheLibre()!=null&&!informationRecherche.getRechercheLibre().equals("")) { |
if (informationRecherche.getRechercheLibre() != null && !informationRecherche.getRechercheLibre().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().rechercheLibre() + ":" + informationRecherche.getRechercheLibre() + " "); |
} |
if (informationRecherche.getTaxon() != null&&!informationRecherche.getTaxon().equals("")) { |
if (informationRecherche.getTaxon() != null && !informationRecherche.getTaxon().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().taxon() + ":" + informationRecherche.getTaxon() + " "); |
} |
if (informationRecherche.getDepartement()!=null && !informationRecherche.getDepartement().equals("")) { |
if (informationRecherche.getDepartement() != null && !informationRecherche.getDepartement().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().departement() + ":" + informationRecherche.getDepartement() + " "); |
} |
if (informationRecherche.getCommune()!=null && !informationRecherche.getCommune().equals("")) { |
if (informationRecherche.getCommune() != null && !informationRecherche.getCommune().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().commune() + ":" + informationRecherche.getCommune() + " "); |
} |
if (informationRecherche.getFamille()!=null && !informationRecherche.getFamille().equals("")) { |
if (informationRecherche.getFamille() != null && !informationRecherche.getFamille().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().famille() + ":" + informationRecherche.getFamille() + " "); |
} |
if (informationRecherche.getGenre()!=null && !informationRecherche.getGenre().equals("")) { |
if (informationRecherche.getGenre() != null && !informationRecherche.getGenre().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().genre() + ":" + informationRecherche.getGenre() + " "); |
} |
if (informationRecherche.getTag()!=null && !informationRecherche.getTag().equals("")) { |
if (informationRecherche.getTag() != null && !informationRecherche.getTag().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().tag() + ":" + informationRecherche.getTag() + " "); |
} |
if (informationRecherche.getMotClef()!=null && !informationRecherche.getMotClef().equals("")) { |
if (informationRecherche.getMotClef() != null && !informationRecherche.getMotClef().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().mot_clef() + ":" + informationRecherche.getMotClef() + " "); |
} |
if (informationRecherche.getAuteur()!=null && !informationRecherche.getAuteur().equals("")) { |
if (informationRecherche.getAuteur() != null && !informationRecherche.getAuteur().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().auteur() + ":" + informationRecherche.getAuteur() + " "); |
} |
if (informationRecherche.getDate()!=null && !informationRecherche.getDate().equals("")) { |
if (informationRecherche.getDate() != null && !informationRecherche.getDate().equals("")) { |
texteRecherchePrecedente.append(I18n.getVocabulary().date() + ":" + informationRecherche.getDate() + " "); |
} |
recherchePrecedente.setText(texteRecherchePrecedente.toString()); |
} |
171,7 → 159,7 |
public void nettoyer() { |
chargerValeursRecherchePrecedente(new InformationsRecherche()); |
} |
public HasText getRecherchePrincipale() { |
return recherchePrincipale; |
} |
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRecherchePresenteur.java |
---|
65,11 → 65,9 |
public HasText getDate(); |
public void chargerValeursRecherchePrecedente(InformationsRecherche informationsRecherche); |
public void chargerValeursRechercheSimplePrecedente(InformationsRecherche informationsRecherche); |
public void focusSaisie(); |
public void nettoyer(); |
} |
78,18 → 76,15 |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
public MoteurRecherchePresenteur(Vue vue, boolean pourRechercheImages, |
boolean pourRechercheObservations) { |
public MoteurRecherchePresenteur(Vue vue, boolean pourRechercheImages, boolean pourRechercheObservations) { |
this.vue = vue; |
this.pourRechercheImages = pourRechercheImages; |
this.pourRechercheObservations = pourRechercheObservations; |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur( |
UtilitairesAutoCompletionService.urlServiceCompletionNomLocale) { |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(UtilitairesAutoCompletionService.urlServiceCompletionNomLocale) { |
protected String effectuerPreTraitementChaineRequete(String requete) { |
return UtilitairesAutoCompletionService |
.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete); |
return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete); |
// A décommenter lors de l'utilisation des web services eflore |
// return |
// RetourAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceEflore(requete); |
97,8 → 92,7 |
@Override |
protected String[] parserResultatRequete(Response response) { |
return UtilitairesAutoCompletionService |
.parserRetourSimple(response); |
return UtilitairesAutoCompletionService.parserRetourSimple(response); |
// A décommenter lors de l'utilisation des web services eflore |
// return RetourAutoCompletionService.parserRetourOss(response); |
} |
125,7 → 119,7 |
vue.getBoutonRechercheSimple().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
collecterInfosRecherche(); |
afficherRequeteEtLancerRechercheSimple(); |
afficherRequeteEtLancerRecherche(); |
} |
}); |
141,10 → 135,10 |
@Override |
public void onClick(ClickEvent event) { |
autoCompletionNomTaxonsPresenteur.nettoyer(); |
vue.nettoyer(); |
InformationsRecherche infosRecherche = new InformationsRecherche(); |
if (isPourRechercheImages()) { |
CacheClient.getInstance().setInformationsRechercheImage(infosRecherche); |
167,7 → 161,7 |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
collecterInfosRecherche(); |
afficherRequeteEtLancerRechercheSimple(); |
afficherRequeteEtLancerRecherche(); |
} |
} |
}); |
176,8 → 170,7 |
@Override |
public void onClick(ClickEvent event) { |
if (vue.getValeurRechercheSimple().equals( |
vue.getLabelRecherche())) { |
if (vue.getValeurRechercheSimple().equals(vue.getLabelRecherche())) { |
vue.setValeurRechercheSimple(""); |
} |
} |
195,18 → 188,12 |
informationRecherche.setMotClef(vue.getMotCle().getText()); |
informationRecherche.setAuteur(vue.getAuteur().getText()); |
informationRecherche.setDate(vue.getDate().getText()); |
if (!vue.getRecherchePrincipale().getText() |
.equals(vue.getLabelRecherche())) { |
informationRecherche.setRechercheLibre(vue.getRecherchePrincipale() |
.getText()); |
} |
informationRecherche.setRechercheLibre(vue.getRecherchePrincipale().getText()); |
if (isPourRechercheImages()) { |
CacheClient.getInstance().setInformationsRechercheImage( |
informationRecherche); |
CacheClient.getInstance().setInformationsRechercheImage(informationRecherche); |
} else if (isPourRechercheObservations()) { |
CacheClient.getInstance().setInformationsRechercheObservation( |
informationRecherche); |
CacheClient.getInstance().setInformationsRechercheObservation(informationRecherche); |
} |
} |
214,20 → 201,11 |
if (isPourRechercheImages()) { |
return CacheClient.getInstance().getInformationsRechercheImage(); |
} else if (isPourRechercheObservations()) { |
return CacheClient.getInstance() |
.getInformationsRechercheObservation(); |
return CacheClient.getInstance().getInformationsRechercheObservation(); |
} |
return null; |
} |
public void afficherRequeteEtLancerRechercheSimple() { |
InformationsRecherche informationsRecherche = getInformationsRechercheEnCache(); |
if (informationsRecherche != null) { |
vue.chargerValeursRechercheSimplePrecedente(informationsRecherche); |
} |
lancerRecherche(); |
} |
public void afficherRequeteEtLancerRecherche() { |
InformationsRecherche informationsRecherche = getInformationsRechercheEnCache(); |
if (informationsRecherche != null) { |
237,7 → 215,7 |
lancerRecherche(); |
} |
public abstract void lancerRecherche(); |
public abstract void lancerRecherche(); |
public boolean isPourRechercheImages() { |
return pourRechercheImages; |
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationPresenteur.java |
---|
1,5 → 1,11 |
package org.tela_botanica.del.client.composants.pagination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.pagination.EvenementChangementPage; |
import org.tela_botanica.del.client.navigation.evenement.pagination.EvenementChangementPas; |
import org.tela_botanica.del.client.navigation.evenement.pagination.GestionnaireEvenementChangementPage; |
import org.tela_botanica.del.client.navigation.evenement.pagination.GestionnaireEvenementChangementPas; |
import com.google.gwt.event.dom.client.ChangeEvent; |
import com.google.gwt.event.dom.client.ChangeHandler; |
import com.google.gwt.event.dom.client.ClickEvent; |
21,7 → 27,6 |
public abstract class PaginationPresenteur { |
public interface Vue extends IsWidget { |
public HasWidgets getZoneLiens(); |
public int getNbWidgetsZoneLiens(); |
58,11 → 63,13 |
public int getPasSelectionne(); |
public void changerSelecteurPas(int index); |
public void afficherPas(int pas); |
public void mettreEnValeurPageActive(int pageActive); |
} |
private Vue vue; |
private int nbPage; |
private int nbPage = 1; |
private int pageCourante = 1; |
private int nbElementsTotal = 0; |
private int pas = 10; |
75,10 → 82,11 |
* @param pas |
* : le nombre d'éléments à afficher par page |
* */ |
public PaginationPresenteur(Vue vue, int nbElementsTotal, int pas) { |
public PaginationPresenteur(Vue vue, int nbElementsTotal, int pas, int pageCourante) { |
this.nbElementsTotal = nbElementsTotal; |
this.vue = vue; |
changerPas(this.pas); |
this.pas = pas; |
this.pageCourante = pageCourante; |
} |
/** |
88,140 → 96,22 |
* : la vue ou éxécuter l'affichage |
*/ |
public void go(HasWidgets container) { |
gererEvenementsBoutonsStatiques(); |
actualiserLiens(); |
container.add(vue.asWidget()); |
gererEvenements(); |
actualiserLiensPagesPagination(); |
actualiserPas(); |
} |
/** Met à jour le nombre de page en fonction du pas */ |
public void actualiserNbPage() { |
Double nombrePages = Math.ceil((double) nbElementsTotal / (double) pas); |
this.nbPage = nombrePages.intValue(); |
} |
public void setNbPages(int nbPages) { |
this.nbPage = nbPages; |
} |
public int getNbPages() { |
return nbPage; |
} |
public Vue getVue() { |
return vue; |
} |
/** |
* Changer le pas de la pagination |
* |
* @param pas |
* : le nombre d'éléments à afficher par page |
*/ |
public void changerPas(int pas) { |
int ancienPas = this.pas; |
setPas(pas); |
actualiserNbPage(); |
gererDecalagePageCourante(ancienPas, pas); |
changerPage(pas * (pageCourante - 1), pas * pageCourante); |
actualiserLiens(); |
actualiserPasCache(pas); |
} |
public void setPas(int pas) { |
this.pas = pas; |
switch (pas) { |
case 5: |
vue.changerSelecteurPas(0); |
break; |
case 10: |
vue.changerSelecteurPas(1); |
break; |
case 15: |
vue.changerSelecteurPas(2); |
break; |
case 20: |
vue.changerSelecteurPas(3); |
break; |
default: |
break; |
} |
} |
private void gererDecalagePageCourante(int ancienPas, int nouveauPas) { |
if (ancienPas != nouveauPas) { |
double rapportPas = (double) ancienPas / (double) nouveauPas; |
pageCourante = (int) (Math.ceil((double) pageCourante * (double) rapportPas)); |
} |
} |
/** |
* Actualiser les liens pour n'afficher 5 avant et 5 après |
* */ |
public void actualiserLiens() { |
HasWidgets zoneLiens = vue.getZoneLiens(); |
zoneLiens.clear(); |
int pageDebut = pagesAvant(); |
int pageFin = pagesApres(); |
for (int i = pageDebut; i < pageFin; i++) { |
vue.ajouterBoutonZoneLiens(i + ""); |
} |
setBoutonActif(); |
gererEvenementsBoutonsDynamiques(); |
} |
private int pagesAvant() { |
int pageDebut = pageCourante - 5; |
if (pageDebut < 1) { |
pageDebut = 1; |
} |
if (pageCourante == 1) { |
vue.masquerBoutonPrecedent(); |
} else { |
vue.afficherBoutonPrecedent(); |
} |
return pageDebut; |
} |
private int pagesApres() { |
int pageFin = pageCourante + 5; |
vue.afficherBoutonSuivant(); |
if (pageFin > nbPage) { |
pageFin = nbPage; |
} |
if (pageCourante == nbPage - 1) { |
vue.masquerBoutonSuivant(); |
} else { |
vue.afficherBoutonSuivant(); |
} |
return pageFin; |
} |
private void setBoutonActif() { |
int nbLiens = vue.getNbWidgetsZoneLiens(); |
for (int i = 0; i < nbLiens; i++) { |
HasText boutonCourant = vue.getWidgetZoneLiensAsText(i); |
if (boutonCourant.getText().equals(String.valueOf(pageCourante))) { |
vue.changerStyleBoutonZoneLiens(i, "actif"); |
} else { |
vue.changerStyleBoutonZoneLiens(i, "inactif"); |
} |
} |
} |
/** |
* Gérer les évènements sur les boutons statiques (précédent, suivant et |
* selecteur pas) |
* */ |
public void gererEvenementsBoutonsStatiques() { |
protected void gererEvenements() { |
vue.getSelecteurPas().addChangeHandler(new ChangeHandler() { |
@Override |
public void onChange(ChangeEvent event) { |
changerPas(vue.getPasSelectionne()); |
synchroniser(); |
chargerElements(0, vue.getPasSelectionne()); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPas(vue.getPasSelectionne())); |
} |
}); |
228,7 → 118,7 |
vue.getBoutonPrecedent().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
pagePrecedente(); |
allerALaPagePrecedente(); |
} |
}); |
235,7 → 125,7 |
vue.getBoutonSuivant().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
pageSuivante(); |
allerALapageSuivante(); |
} |
}); |
242,7 → 132,7 |
vue.getBoutonPremierePage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
premierePage(); |
afficherLaPremierePage(); |
} |
}); |
249,9 → 139,34 |
vue.getBoutonDernierePage().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
dernierePage(); |
afficherlaDernierePage(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementChangementPage.TYPE, new GestionnaireEvenementChangementPage() { |
@Override |
public void onChangementPage(EvenementChangementPage event) { |
pageCourante = event.getPageAAfficher(); |
mettreEnValeurPageCourante(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementChangementPas.TYPE, new GestionnaireEvenementChangementPas() { |
@Override |
public void onChangementPas(EvenementChangementPas event) { |
// remet la page a zero lors du changement de pas |
pageCourante = 1; |
// modifie le pas et les liens en fonction |
pas = event.getPas(); |
actualiserPas(); |
actualiserLiensPagesPagination(); |
} |
}); |
} |
/** |
258,7 → 173,7 |
* Gérer les évènements sur les boutons dynamiques (qui sont recréés à |
* chaque fois) |
* */ |
public void gererEvenementsBoutonsDynamiques() { |
private void gererEvenementsBoutonsDynamiques() { |
int nbLiens = vue.getNbWidgetsZoneLiens(); |
for (int i = 0; i < nbLiens; i++) { |
HasClickHandlers boutonCourant = vue.getWidgetZoneLiensHasClickHandlers(i); |
266,60 → 181,37 |
@Override |
public void onClick(ClickEvent event) { |
HasText boutonCourant = (HasText) event.getSource(); |
pageCourante = Integer.parseInt(boutonCourant.getText()); |
int debut = (Integer.parseInt(boutonCourant.getText()) - 1) * pas; |
int fin = (debut + pas); |
setBoutonActif(); |
changerPage(debut, fin); |
actualiserLiens(); |
synchroniser(); |
int pageAAfficher = Integer.parseInt(boutonCourant.getText()); |
chargerElements(pas * (pageAAfficher - 1), pas * (pageAAfficher)); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher)); |
} |
}); |
} |
} |
public void premierePage() { |
if (pageCourante > 1) { |
pageCourante = 1; |
int debut = (pageCourante - 1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
synchroniser(); |
} |
public void actualiserPas() { |
actualiserPasCache(pas); |
vue.afficherPas(pas); |
} |
public void dernierePage() { |
if (pageCourante < nbPage - 1) { |
pageCourante = nbPage - 1; |
int debut = (pageCourante - 1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
synchroniser(); |
} |
} |
/** |
* Actualiser les liens pour n'afficher 5 avant et 5 après |
* */ |
public void actualiserLiensPagesPagination() { |
public void pageSuivante() { |
if (pageCourante < nbPage - 1) { |
pageCourante++; |
int debut = (pageCourante - 1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
synchroniser(); |
} |
} |
this.nbPage = calculerNbPage(); |
public void pagePrecedente() { |
if (pageCourante > 1) { |
pageCourante--; |
int debut = (pageCourante - 1) * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
actualiserLiens(); |
synchroniser(); |
HasWidgets zoneLiens = vue.getZoneLiens(); |
zoneLiens.clear(); |
int pageDebut = 1; |
int pageFin = nbPage; |
for (int i = pageDebut; i < pageFin; i++) { |
vue.ajouterBoutonZoneLiens(i + ""); |
} |
gererEvenementsBoutonsDynamiques(); |
mettreEnValeurPageCourante(); |
} |
public int getPageCourante() { |
334,15 → 226,63 |
this.pageCourante = pageCourante; |
} |
public abstract void changerPage(int debut, int fin); |
public void allerALaPagePrecedente() { |
if (pageCourante > 1) { |
int pageAAfficher = pageCourante - 1; |
chargerElements(pas * (pageAAfficher - 1), pas * (pageAAfficher)); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher)); |
} |
} |
public void allerALapageSuivante() { |
if (pageCourante < nbPage - 1) { |
int pageAAfficher = pageCourante + 1; |
chargerElements(pas * (pageAAfficher - 1), pas * (pageAAfficher)); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher)); |
} |
} |
public void afficherLaPremierePage() { |
int pageAAfficher = 1; |
chargerElements(0, pas); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher)); |
} |
public void afficherlaDernierePage() { |
int pageAAfficher = nbPage - 1; |
chargerElements(pas * (pageAAfficher - 1), pas * (pageAAfficher)); |
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher)); |
} |
/** calcule le nombre de page en fonction du pas */ |
private int calculerNbPage() { |
Double nombrePages = Math.ceil((double) nbElementsTotal / (double) pas); |
return nombrePages.intValue(); |
} |
public void mettreEnValeurPageCourante() { |
getVue().mettreEnValeurPageActive(getPageCourante()); |
} |
public void setNbPages(int nbPages) { |
this.nbPage = nbPages; |
} |
public int getNbPages() { |
return nbPage; |
} |
public Vue getVue() { |
return vue; |
} |
public abstract void chargerElements(int debut, int fin); |
public abstract void actualiserPasCache(int pas); |
public void synchroniser() { |
setPas(getPas()); |
setPageCourante(getPageCourante()); |
setNbPages(getNbPages()); |
actualiserLiens(); |
public void setPas(int pas) { |
this.pas = pas; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationVue.java |
---|
19,8 → 19,8 |
@UiField |
ListBox selecteurPas; |
@UiField |
@UiField |
Button boutonPrecedent, boutonSuivant, boutonPremierePage, boutonDernierePage; |
interface MyUiBinder extends UiBinder<Widget, PaginationVue> { |
32,22 → 32,58 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void afficherPas(int pas) { |
switch (pas) { |
case 5: |
changerSelecteurPas(0); |
break; |
case 10: |
changerSelecteurPas(1); |
break; |
case 15: |
changerSelecteurPas(2); |
break; |
case 20: |
changerSelecteurPas(3); |
break; |
default: |
break; |
} |
} |
public void mettreEnValeurPageActive(int pageActive) { |
int nbLiens = getNbWidgetsZoneLiens(); |
for (int i = 0; i < nbLiens; i++) { |
Button boutonCourant = (Button) zoneLiens.getWidget(i); |
if (nbLiens - i > 5 && i < pageActive - 1 || i > pageActive + 3) { |
boutonCourant.setVisible(false); |
} else { |
if (boutonCourant.getText().equals(String.valueOf(pageActive))) { |
changerStyleBoutonZoneLiens(i, "actif"); |
} else { |
changerStyleBoutonZoneLiens(i, "inactif"); |
} |
boutonCourant.setVisible(true); |
} |
} |
} |
public void masquerBoutonPrecedent() { |
boutonPremierePage.setVisible(false); |
boutonPrecedent.setVisible(false); |
} |
public void afficherBoutonPrecedent() { |
boutonPremierePage.setVisible(true); |
boutonPrecedent.setVisible(true); |
} |
public void masquerBoutonSuivant() { |
boutonDernierePage.setVisible(false); |
boutonSuivant.setVisible(false); |
} |
public void afficherBoutonSuivant() { |
boutonDernierePage.setVisible(true); |
boutonSuivant.setVisible(true); |
71,7 → 107,7 |
public HasClickHandlers getBoutonPrecedent() { |
return boutonPrecedent; |
} |
@Override |
public HasClickHandlers getBoutonPremierePage() { |
return boutonPremierePage; |
82,7 → 118,6 |
return boutonDernierePage; |
} |
@Override |
public void changerSelecteurPas(int index) { |
selecteurPas.setSelectedIndex(index); |
} |
94,12 → 129,12 |
@Override |
public HasClickHandlers getWidgetZoneLiensHasClickHandlers(int index) { |
return (Button)zoneLiens.getWidget(index); |
return (Button) zoneLiens.getWidget(index); |
} |
@Override |
public HasText getWidgetZoneLiensAsText(int index) { |
return (Button)zoneLiens.getWidget(index); |
return (Button) zoneLiens.getWidget(index); |
} |
@Override |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/detailsimage/EvenementRechercheImage.java |
---|
1,9 → 1,5 |
package org.tela_botanica.del.client.navigation.evenement.detailsimage; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementRechercheImage extends GwtEvent<GestionnaireEvenementRechercheImage> { |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/pagination/EvenementChangementPas.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.navigation.evenement.pagination; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementChangementPas extends GwtEvent<GestionnaireEvenementChangementPas> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPas> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPas>(); |
private int pas; |
public EvenementChangementPas(int pas) { |
this.pas = pas; |
} |
@Override |
protected void dispatch(GestionnaireEvenementChangementPas handler) { |
handler.onChangementPas(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPas> getAssociatedType() { |
return TYPE; |
} |
public int getPas() { |
return pas; |
} |
public void setPas(int pas) { |
this.pas = pas; |
} |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/pagination/GestionnaireEvenementChangementPage.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.del.client.navigation.evenement.pagination; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementChangementPage extends EventHandler { |
public void onChangementPage(EvenementChangementPage event); |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/pagination/GestionnaireEvenementChangementPas.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.del.client.navigation.evenement.pagination; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementChangementPas extends EventHandler { |
public void onChangementPas(EvenementChangementPas event); |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/pagination/EvenementChangementPage.java |
---|
New file |
0,0 → 1,32 |
package org.tela_botanica.del.client.navigation.evenement.pagination; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementChangementPage extends GwtEvent<GestionnaireEvenementChangementPage> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPage> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPage>(); |
private int pageAAfficher; |
public EvenementChangementPage(int pageAAfficher) { |
this.pageAAfficher = pageAAfficher; |
} |
@Override |
protected void dispatch(GestionnaireEvenementChangementPage handler) { |
handler.onChangementPage(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPage> getAssociatedType() { |
return TYPE; |
} |
public int getPageAAfficher() { |
return pageAAfficher; |
} |
public void setPageAAfficher(int pageAAfficher) { |
this.pageAAfficher = pageAAfficher; |
} |
} |
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java |
---|
304,24 → 304,24 |
// } |
int rand = (int) (Math.random() * 5); |
for (int i = 0; i < rand; i++) { |
VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocole(protocoles.get(0)); |
voteProtocole.setVote((int) (Math.random() * 5)); |
voteProtocole.setContributeur("aurelien"); |
voteProtocole.setDate(new Date()); |
VoteProtocole voteProtocole2 = new VoteProtocole(); |
voteProtocole2.setProtocole(protocoles.get(0)); |
voteProtocole2.setVote((int) (Math.random() * 5)); |
voteProtocole2.setContributeur("jpm"); |
voteProtocole2.setDate(new Date()); |
voteProtocolesLocal.add(voteProtocole); |
voteProtocolesLocal.add(voteProtocole2); |
} |
return voteProtocolesLocal; |
int rand = (int) (Math.random() * 5); |
for (int i = 0; i < rand; i++) { |
VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocole(protocoles.get(0)); |
voteProtocole.setVote((int) (Math.random() * 5)); |
voteProtocole.setContributeur("aurelien"); |
voteProtocole.setDate(new Date()); |
VoteProtocole voteProtocole2 = new VoteProtocole(); |
voteProtocole2.setProtocole(protocoles.get(0)); |
voteProtocole2.setVote((int) (Math.random() * 5)); |
voteProtocole2.setContributeur("jpm"); |
voteProtocole2.setDate(new Date()); |
voteProtocolesLocal.add(voteProtocole); |
voteProtocolesLocal.add(voteProtocole2); |
} |
return voteProtocolesLocal; |
} |
/* |
395,11 → 395,15 |
} |
@Override |
public ObservationServiceResultat getObservations( |
InformationsRecherche informationsRecherche, int debut, int fin, |
ObservationsCallback callback) { |
public ObservationServiceResultat getObservations(InformationsRecherche informationsRecherche, int debut, int fin, ObservationsCallback callback) { |
// TODO Auto-generated method stub |
return null; |
} |
@Override |
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback) { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
15,8 → 15,8 |
private int nbTotalImagesRecherchees = 0; |
private int pasPagination = 10; |
private int pageCouranteRechercheImage = 0; |
private int pageCouranteRechercheObservations = 0; |
private int pageCouranteRechercheImage = 1; |
private int pageCouranteRechercheObservations = 1; |
private InformationsRecherche informationsRechercheImage; |
private InformationsRecherche informationsRechercheObservation; |
/trunk/src/org/tela_botanica/del/test/composants/pagination/PaginationPresenteurTest.java |
---|
1,11 → 1,10 |
package org.tela_botanica.del.test.composants.pagination; |
import static org.junit.Assert.*; |
import static org.junit.Assert.assertEquals; |
import static org.mockito.Mockito.when; |
import org.junit.Before; |
import org.junit.Test; |
import org.mockito.Mock; |
import org.mockito.Mockito; |
import org.mockito.invocation.InvocationOnMock; |
import org.mockito.stubbing.Answer; |
18,22 → 17,22 |
import com.google.gwt.user.client.ui.HasWidgets; |
public class PaginationPresenteurTest { |
PaginationPresenteur paginationHautPresenteur; |
PaginationPresenteur paginationBasPresenteur; |
PaginationPresenteur paginationPresenteurSeul; |
boolean boutonPremierePageEstAffiche; |
boolean boutonDernierePageEstAffiche; |
@Before |
@Before |
public void setUp() { |
PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique(); |
this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10) { |
PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique(); |
this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10, 1) { |
@Override |
public void changerPage(int debut, int fin) { |
//TODO: tester avec des données factices, est-ce utile ici ? |
public void chargerElements(int debut, int fin) { |
// TODO: tester avec des données factices, est-ce utile ici ? |
} |
@Override |
40,102 → 39,68 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
@Override |
public void synchroniser() { |
paginationHautPresenteur.setPas(getPas()); |
paginationHautPresenteur.setPageCourante(getPageCourante()); |
paginationHautPresenteur.setNbPages(getNbPages()); |
paginationHautPresenteur.actualiserLiens(); |
} |
}; |
PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteurBasique(); |
this.paginationHautPresenteur = new PaginationPresenteur(vueHaut,100, 10) { |
this.paginationHautPresenteur = new PaginationPresenteur(vueHaut, 100, 10, 1) { |
@Override |
public void changerPage(int debut, int fin) { |
public void chargerElements(int debut, int fin) { |
} |
@Override |
public void actualiserPasCache(int pas) { |
} |
@Override |
public void synchroniser() { |
paginationBasPresenteur.setPas(getPas()); |
paginationBasPresenteur.setPageCourante(getPageCourante()); |
paginationBasPresenteur.setNbPages(getNbPages()); |
paginationBasPresenteur.actualiserLiens(); |
} |
}; |
PaginationPresenteur.Vue vueSeule = creerMockVuePaginationPresenteurBasique(); |
this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10) { |
this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10, 1) { |
@Override |
public void changerPage(int debut, int fin) {} |
public void chargerElements(int debut, int fin) { |
} |
@Override |
public void actualiserPasCache(int pas) {} |
@Override |
public void synchroniser() {} |
public void actualiserPasCache(int pas) { |
} |
}; |
} |
@Test |
public void testSynchroWidgetPagination() { |
HasWidgets conteneur = Mockito.mock(HasWidgets.class); |
paginationBasPresenteur.go(conteneur); |
paginationHautPresenteur.go(conteneur); |
assertEquals(1, paginationHautPresenteur.getPageCourante()); |
assertEquals(1, paginationBasPresenteur.getPageCourante()); |
paginationHautPresenteur.changerPas(20); |
paginationHautPresenteur.synchroniser(); |
assertEquals(20, paginationBasPresenteur.getPas()); |
assertEquals(20, paginationHautPresenteur.getPas()); |
paginationBasPresenteur.setPageCourante(4); |
paginationBasPresenteur.changerPage(4*20,5*20); |
paginationBasPresenteur.synchroniser(); |
assertEquals(4, paginationHautPresenteur.getPageCourante()); |
paginationBasPresenteur.changerPas(10); |
paginationBasPresenteur.synchroniser(); |
assertEquals(8, paginationHautPresenteur.getPageCourante()); |
assertEquals(8, paginationBasPresenteur.getPageCourante()); |
} |
@Test |
public void testAffichageBoutonPremiereDernierePage() { |
mockerMethodeAffichageBoutons(paginationPresenteurSeul.getVue()); |
//TODO: voir comment mocker ces méthodes avec Benjamin car le test ne passe alors que |
// TODO: voir comment mocker ces méthodes avec Benjamin car le test ne |
// passe alors que |
// ça fonctionne en pratique |
paginationPresenteurSeul.premierePage(); |
paginationPresenteurSeul.afficherLaPremierePage(); |
assertEquals(1, paginationPresenteurSeul.getPageCourante()); |
/*assertEquals(false, paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche()); |
assertEquals(true, paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());*/ |
paginationPresenteurSeul.dernierePage(); |
/* |
* assertEquals(false, |
* paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche()); |
* assertEquals(true, |
* paginationPresenteurSeul.getVue().boutonSuivantEstAffiche()); |
*/ |
paginationPresenteurSeul.afficherlaDernierePage(); |
assertEquals(9, paginationPresenteurSeul.getPageCourante()); |
/*assertEquals(false, paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche()); |
assertEquals(false, paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());*/ |
/* |
* assertEquals(false, |
* paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche()); |
* assertEquals(false, |
* paginationPresenteurSeul.getVue().boutonSuivantEstAffiche()); |
*/ |
} |
private PaginationPresenteur.Vue creerMockVuePaginationPresenteurBasique() { |
PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class); |
PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class); |
HasWidgets zoneLiens = Mockito.mock(HasWidgets.class); |
HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class); |
HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class); |
142,7 → 107,7 |
HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class); |
HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class); |
HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class); |
when(vueMock.getZoneLiens()).thenReturn(zoneLiens); |
when(vueMock.getSelecteurPas()).thenReturn(selecteurPas); |
when(vueMock.getBoutonPrecedent()).thenReturn(boutonPrecedent); |
149,41 → 114,41 |
when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant); |
when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage); |
when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage); |
return vueMock; |
} |
private void mockerMethodeAffichageBoutons(Vue vueMock) { |
when(vueMock.boutonPrecedentEstAffiche()).thenReturn(boutonPremierePageEstAffiche); |
when(vueMock.boutonSuivantEstAffiche()).thenReturn(boutonDernierePageEstAffiche); |
Mockito.doAnswer(new Answer<Object>() { |
public Object answer(InvocationOnMock invocation) { |
boutonPremierePageEstAffiche = true; |
return boutonPremierePageEstAffiche; |
}}) |
.when(vueMock).afficherBoutonPrecedent(); |
public Object answer(InvocationOnMock invocation) { |
boutonPremierePageEstAffiche = true; |
return boutonPremierePageEstAffiche; |
} |
}).when(vueMock).afficherBoutonPrecedent(); |
Mockito.doAnswer(new Answer<Object>() { |
public Object answer(InvocationOnMock invocation) { |
boutonDernierePageEstAffiche = true; |
return boutonDernierePageEstAffiche; |
}}) |
.when(vueMock).afficherBoutonSuivant(); |
public Object answer(InvocationOnMock invocation) { |
boutonDernierePageEstAffiche = true; |
return boutonDernierePageEstAffiche; |
} |
}).when(vueMock).afficherBoutonSuivant(); |
Mockito.doAnswer(new Answer<Object>() { |
public Object answer(InvocationOnMock invocation) { |
boutonPremierePageEstAffiche = false; |
return boutonPremierePageEstAffiche; |
}}) |
.when(vueMock).masquerBoutonPrecedent(); |
public Object answer(InvocationOnMock invocation) { |
boutonPremierePageEstAffiche = false; |
return boutonPremierePageEstAffiche; |
} |
}).when(vueMock).masquerBoutonPrecedent(); |
Mockito.doAnswer(new Answer<Object>() { |
public Object answer(InvocationOnMock invocation) { |
boutonDernierePageEstAffiche = false; |
return boutonDernierePageEstAffiche; |
}}) |
.when(vueMock).masquerBoutonSuivant(); |
public Object answer(InvocationOnMock invocation) { |
boutonDernierePageEstAffiche = false; |
return boutonDernierePageEstAffiche; |
} |
}).when(vueMock).masquerBoutonSuivant(); |
} |
} |