/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/resultats/ResultatsRechercheObservationsPresenteur.java |
---|
16,9 → 16,9 |
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; |
import com.google.gwt.user.client.ui.Label; |
public class ResultatsRechercheObservationsPresenteur extends Presenteur { |
27,16 → 27,27 |
* */ |
public abstract interface Vue extends IsWidget { |
public HasWidgets getZoneObservations(); |
public HasWidgets getZonePaginationHaut(); |
public HasWidgets getZonePaginationBas(); |
public void startChargement(); |
public void stopChargement(); |
public void nettoyer(); |
public HasClickHandlers getTriParDateAscendant(); |
public HasClickHandlers getTriParDateDescendant(); |
public void afficherElementsAucunResultatTrouve(); |
public void afficherElementsResultatsTrouves(); |
public void afficherElementsResultatsTrouves(); |
public HasClickHandlers getLabelDate(); |
public void setModeTri(ModeTri mode); |
} |
44,11 → 55,13 |
private ObservationService serviceObs; |
private ModeTri triCourantDate = ModeTri.TRI_DESCENDANT; |
private CacheClient cache = CacheClient.getInstance(); |
/** |
* Constructeur de la classe |
* @param ObservationService serviceObs le service pour récupérer les observations |
* @Vue Vue l'objet implémentant l'interface |
* Constructeur de la classe |
* |
* @param ObservationService |
* serviceObs le service pour récupérer les observations |
* @Vue Vue l'objet implémentant l'interface |
* */ |
public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
58,7 → 71,9 |
/** |
* Lancer l'affichage de la recherche dans le composant passé en paramètre |
* @param HasWidgets composite le conteneur de widgets dans lequel ajouter la vue |
* |
* @param HasWidgets |
* composite le conteneur de widgets dans lequel ajouter la vue |
* */ |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
67,26 → 82,36 |
} |
/** |
* Initier un callback pour créer le widget de pagination et afficher les observations recues |
* et lancer la recherche avec le service |
* Initier un callback pour créer le widget de pagination et afficher les |
* observations recues et lancer la recherche avec le service |
* */ |
public void lancerRechercheEtCreerWidgetPagination() { |
int debut = (cache.getPageCouranteRechercheObservations() - 1) * cache.getPasPagination(); |
int fin = cache.getPageCouranteRechercheObservations() * cache.getPasPagination(); |
ObservationsCallback callback = new ObservationsCallback() { |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
@Override |
public void surRetour(ObservationServiceResultat observationsRecues) { |
creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationsRecues); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
serviceObs.getObservations(cache.getInformationsRechercheObservation(), debut, fin, callback); |
} |
/** |
* Créer les widgets de pagination en fonction du nombre d'observation |
* |
* @param int nbObservations le nombre d'observations à afficher |
* */ |
private void creerWidgetPagination(int nbObservations) { |
94,15 → 119,16 |
PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations); |
paginationPresenteurHaut.setGroupePagination("pagination_observations"); |
paginationPresenteurHaut.go(vue.getZonePaginationHaut()); |
vue.getZonePaginationBas().clear(); |
PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations); |
paginationPresenteurBas.setGroupePagination("pagination_observations"); |
paginationPresenteurBas.go(vue.getZonePaginationBas()); |
} |
/** |
* Créer un présenteur du widget pagination |
* |
* @param int nbObservations le nombre total d'observation à afficher |
* */ |
private PaginationPresenteur creerPresenteurPagination(int nbObservations) { |
122,26 → 148,26 |
}; |
return presenteur; |
} |
/** |
* Gestion des évènements de la vue recherche Observation |
* */ |
protected void gererEvenements() { |
ClickHandler surClicDate = new ClickHandler() { |
/** |
* Gestion du clic sur l'option de tri par date d'observation |
* Masque les éléments de tri qui sont en cours et affiche les autres |
* Gestion du clic sur l'option de tri par date d'observation Masque |
* les éléments de tri qui sont en cours et affiche les autres |
* */ |
public void onClick(ClickEvent event) { |
toggleModeTri(); |
InformationsRecherche informationsRechercheObservations = cache.getInformationsRechercheObservation(); |
informationsRechercheObservations.setTriParDate(triCourantDate); |
chercherEtAfficherObservationsPageEnCours(); |
} |
}; |
vue.getLabelDate().addClickHandler(surClicDate); |
vue.getTriParDateAscendant().addClickHandler(surClicDate); |
vue.getTriParDateDescendant().addClickHandler(surClicDate); |
156,12 → 182,13 |
} else { |
triCourantDate = ModeTri.TRI_ASCENDANT; |
} |
vue.setModeTri(triCourantDate); |
} |
/** |
* Initialiser les variable de début et fin et lancer le chargement des observations |
* Initialiser les variable de début et fin et lancer le chargement des |
* observations |
* */ |
public void chercherEtAfficherObservationsPageEnCours() { |
int debut = (cache.getPageCouranteRechercheObservations() - 1) * cache.getPasPagination(); |
168,9 → 195,11 |
int fin = (cache.getPageCouranteRechercheObservations()) * cache.getPasPagination(); |
chargerEtAfficherObservations(debut, fin); |
} |
/** |
* Lancer le service pour charger les observations entre debut et fin et les afficher |
* Lancer le service pour charger les observations entre debut et fin et les |
* afficher |
* |
* @param int debut l'entier de départ de la requete |
* @param int fin l'entier de limite de la requete |
* */ |
177,20 → 206,30 |
public void chargerEtAfficherObservations(int debut, int fin) { |
vue.startChargement(); |
vue.nettoyer(); |
ObservationsCallback surReceptionObservation = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
public void surRetour(ObservationServiceResultat observationsRecues) { |
afficherObservations(observationsRecues); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
serviceObs.getObservations(cache.getInformationsRechercheObservation(), debut, fin, surReceptionObservation); |
} |
/** |
* Parcrourir les résultats de la recherche pour initier l'affichage de chaque observation |
* @param ObservationServiceResultat resultats les résultats issus de la requête |
* Parcrourir les résultats de la recherche pour initier l'affichage de |
* chaque observation |
* |
* @param ObservationServiceResultat |
* resultats les résultats issus de la requête |
* */ |
private void afficherObservations(ObservationServiceResultat resultats) { |
vue.nettoyer(); |
/trunk/src/org/tela_botanica/del/client/vues/comparaisoneflore/ComparaisonEflorePresenteur.java |
---|
6,12 → 6,12 |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import org.tela_botanica.del.client.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
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; |
27,9 → 27,9 |
public HasClickHandlers getScrollRightImage(); |
public int getCurrentIndexImages(); |
public void startChargement() ; |
public void startChargement(); |
public void stopChargement(); |
} |
55,17 → 55,25 |
} |
public void chargerObservationsEflore() { |
vue.startChargement(); |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
public void surRetour(ImageServiceResultat imagesRecues) { |
setImagesEflore(imagesRecues.getImages()); |
vue.chargerImagesEflore(imagesRecues.getImages(), 0); |
vue.stopChargement(); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
imageService.getImagesEfloreParTaxon(nomTaxonComparaison, callback); |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/moteur/MoteurRechercheImagePresenteur.java |
---|
11,6 → 11,7 |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImageVue; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
18,30 → 19,34 |
public interface Vue extends IsWidget { |
public HasWidgets getZoneResultats(); |
public HasWidgets getZoneRecherche(); |
public void ajouterVue(HasWidgets composite); |
} |
private Vue vue; |
private final ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
/** |
* Constructeur |
* */ |
public MoteurRechercheImagePresenteur(Vue vue) { |
this.vue = vue; |
//TODO: le code ci dessous sert à ne pas recharger les protocoles |
// TODO: le code ci dessous sert à ne pas recharger les protocoles |
// à chaque fois, voir si on peut le factoriser quelque part |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
if (CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
public void surRetour(ProtocoleServiceResultat protocolesRecus) { |
CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles()); |
if(protocolesRecus.getProtocoles().size() > 0) { |
CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0)); |
if (protocolesRecus.getProtocoles().size() > 0) { |
CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0)); |
} else { |
//TODO afficher message indiquant que la liste des protocoles de votes n'est pas fourni |
// TODO afficher message indiquant que la liste des |
// protocoles de votes n'est pas fourni |
} |
} |
}); |
55,7 → 60,7 |
vue.ajouterVue(composite); |
chargerMoteurRechercheAvancee(); |
} |
public void chargerMoteurRechercheAvancee() { |
MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) { |
public void lancerRecherche() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
1,6 → 1,7 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats; |
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.composants.pagination.PaginationVue; |
20,6 → 21,7 |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
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.event.dom.client.ChangeEvent; |
import com.google.gwt.event.dom.client.ChangeHandler; |
import com.google.gwt.event.dom.client.ClickEvent; |
26,6 → 28,7 |
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.user.client.Window; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
93,6 → 96,7 |
public void afficherDateDescendant(); |
} |
private Vue vue; |
private ImageService imageService; |
private final ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
113,7 → 117,7 |
chargerProtocoles(); |
vue.masquerVoteDescendant(); |
vue.masquerVoteAscendant(); |
//vue.masquerDateDescendant(); |
// vue.masquerDateDescendant(); |
vue.masquerDateAscendant(); |
} |
124,7 → 128,7 |
surChangementProtocole(); |
} |
}); |
ClickHandler surClicTriVote = new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
131,11 → 135,11 |
surClicTriVote(); |
} |
}; |
vue.getLabelVote().addClickHandler(surClicTriVote); |
vue.getTriParNbVotesAscendant().addClickHandler(surClicTriVote); |
vue.getTriParNbVotesDescendant().addClickHandler(surClicTriVote); |
ClickHandler surClicTriDate = new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
142,11 → 146,11 |
surClicTriDate(); |
} |
}; |
vue.getLabelDate().addClickHandler(surClicTriDate); |
vue.getTriParDateAscendant().addClickHandler(surClicTriDate); |
vue.getTriParDateDescendant().addClickHandler(surClicTriDate); |
BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() { |
@Override |
public void onChangementProtocole(EvenementChangementProtocole event) { |
212,13 → 216,15 |
private void chargerProtocoles() { |
// test pour ne pas charger les protocoles déjà chargés |
// TODO: faire un systeme de cache gérés par les web service eux même |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
if (CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
public void surRetour(ProtocoleServiceResultat protocolesRecus) { |
protocoles = protocolesRecus.getProtocoles(); |
remplirListeProtocole(protocoles); |
} |
} |
}); |
} else { |
protocoles = CacheClient.getInstance().getListeProtocoles(); |
225,12 → 231,12 |
remplirListeProtocole(CacheClient.getInstance().getListeProtocoles()); |
} |
} |
private void remplirListeProtocole(List<Protocole> protocoles) { |
for (Protocole protocole : protocoles) { |
vue.ajouterProtocole(protocole.getNom(), protocole.getId()+""); |
vue.ajouterProtocole(protocole.getNom(), protocole.getId() + ""); |
} |
if(CacheClient.getInstance().getProtocoleCourant() == null) { |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
vue.selectionnerProtocole(0); |
} |
} |
239,11 → 245,19 |
// 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) { |
public void surRetour(ImageServiceResultat imagesRecues) { |
creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche()); |
afficherImages(imagesRecues); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
final int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination(); |
final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination(); |
254,10 → 268,19 |
vue.startChargement(); |
vue.nettoyer(); |
ImagesParTaxonCallback callback = new ImagesParTaxonCallback() { |
@Override |
public void surImagesRecues(ImageServiceResultat imagesRecues) { |
public void surRetour(ImageServiceResultat imagesRecues) { |
afficherImages(imagesRecues); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback); |
} |
286,8 → 309,7 |
} |
public PaginationPresenteur creerPresenteurPagination(int nbImages) { |
PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance() |
.getPageCouranteRechercheImage()) { |
PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheImage()) { |
@Override |
public void chargerElements(int debut, int fin) { |
chargerEtAfficherImages(debut, fin); |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
43,6 → 43,7 |
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; |
52,15 → 53,23 |
public interface Vue extends IsWidget { |
public Panel getForum(); |
public Panel getDetailImageObservation(); |
public Panel getFormulaireRechercheEflore(); |
public Panel getVoteProtocole(); |
public Button getBoutonAjoutProposition(); |
public Button getBoutonAjoutCommentaire(); |
public HasWidgets getMetadonnees(); |
//public void ajouterLigneVoteProtocole(IsWidget vue); |
//public void ajouterLigneVoteProtocole(String nom, IsWidget vue); |
// public void ajouterLigneVoteProtocole(IsWidget vue); |
// public void ajouterLigneVoteProtocole(String nom, IsWidget vue); |
public HasWidgets getNouvelleLigneProtocole(); |
public void afficherNomTaxonProbable(String nomTaxon); |
} |
67,7 → 76,7 |
private Vue vue; |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
private ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
private ObservationService observationService = new ObservationServiceConcret(); |
76,16 → 85,16 |
} |
public void go(final HasWidgets composite) { |
//TODO afficher une icone de chargement si le chargement devient trop long |
// TODO afficher une icone de chargement si le chargement devient trop |
// long |
// car tout l'écran est asynchrone ici |
observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() { |
//@Override |
public void surObservationsRecues( |
ObservationServiceResultat observationsRecues) { |
observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() { |
@Override |
public void surRetour(ObservationServiceResultat objetRetour) { |
CacheClient.getInstance().setImageCourante(CacheClient.getInstance().getObservationCourante().getImages().get(0)); |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation()); |
95,19 → 104,25 |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
composite.add(vue.asWidget()); |
} |
}); |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}); |
gererEvenements(); |
} |
private void chargerEtAjouterLignesVotesProtocole() { |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
if (CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
public void surRetour(ProtocoleServiceResultat protocolesRecus) { |
List<Protocole> listeProtocoles = protocolesRecus.getProtocoles(); |
ajouterLignesVotesProtocole(listeProtocoles); |
} |
}); |
} else { |
115,7 → 130,7 |
ajouterLignesVotesProtocole(listeProtocoles); |
} |
} |
private void ajouterLignesVotesProtocole(List<Protocole> listeProtocoles) { |
for (Iterator<Protocole> iterator = listeProtocoles.iterator(); iterator.hasNext();) { |
Protocole protocole = iterator.next(); |
123,7 → 138,7 |
presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole()); |
} |
} |
private void calculerEtAfficherVoteDeterminationPlusPopulaire() { |
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations()); |
148,7 → 163,7 |
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue())); |
} |
}); |
vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
166,7 → 181,7 |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() { |
@Override |
/trunk/src/org/tela_botanica/del/client/services/rest/ImageServiceConcret.java |
---|
3,6 → 3,7 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
27,6 → 28,7 |
// adresse ajoutee temporairement le temps de faire fonctionner le |
// service d'images eflore |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "images?nom_taxon=" + taxon); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
37,6 → 39,7 |
@Override |
public void getImagesParTaxon(InformationsRecherche infos, int debut, int fin, ImagesParTaxonCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "images" + assemblerChaineRequete(infos, debut, fin)); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
47,6 → 50,7 |
public void getImagesParObservation(String observationId, ImagesParTaxonCallback callback) { |
// TODO implementer avec une methode realiste |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "observations/"+observationId); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
/trunk/src/org/tela_botanica/del/client/services/rest/VoteDeterminationService.java |
---|
2,12 → 2,13 |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback; |
public interface VoteDeterminationService { |
void ajouterVote(VoteDetermination voteDetermination, VoteDeterminationCallback callback); |
public void modifierVote(VoteDetermination voteDetermination, VoteDeterminationCallback callback); |
void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, VoteDeterminationCallback callBack); |
void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback); |
public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback); |
void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callBack); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/CommentaireService.java |
---|
1,8 → 1,11 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
public interface CommentaireService { |
public void ajouterCommentaire(Commentaire commentaire, CommentaireCallback callback); |
public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback); |
public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ObservationServiceConcret.java |
---|
3,6 → 3,7 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
22,6 → 23,7 |
@Override |
public void getObservations(InformationsRecherche infos, int debut, int fin, ObservationsCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "observations" + assemblerChaineRequete(infos, debut, fin)); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
41,6 → 43,7 |
public void getObservation(String idObservation, |
ObservationsCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "observations/"+idObservation); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
/trunk/src/org/tela_botanica/del/client/services/rest/async/VoteDeterminationCallback.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/services/rest/async/CommentaireCallback.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ObservationsCallback.java |
---|
2,34 → 2,13 |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class ObservationsCallback implements RequestCallback { |
public abstract class ObservationsCallback extends PHPCallback<ObservationServiceResultat> { |
public ObservationsCallback() { |
} |
@Override |
public void onResponseReceived(Request request, Response response) { |
ObservationServiceResultat observationsRecues = convertirReponseVersListeObservation(response); |
surObservationsRecues(observationsRecues); |
public ObservationServiceResultat parserJSON(String retourService) { |
return new ObservationServiceResultat(JSONParser.parseStrict(retourService)); |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surObservationsRecues(ObservationServiceResultat observationsRecues); |
private ObservationServiceResultat convertirReponseVersListeObservation(Response reponse) { |
ObservationServiceResultat resultat = new ObservationServiceResultat(JSONParser.parseStrict(reponse.getText())); |
return resultat; |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ImagesParTaxonCallback.java |
---|
2,33 → 2,13 |
import org.tela_botanica.del.client.modeles.ImageServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class ImagesParTaxonCallback implements RequestCallback { |
public abstract class ImagesParTaxonCallback extends PHPCallback<ImageServiceResultat> { |
public ImagesParTaxonCallback() { |
} |
@Override |
public void onResponseReceived(Request request, Response response) { |
ImageServiceResultat imagesRecues = convertirReponseVersListeImage(response); |
surImagesRecues(imagesRecues); |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surImagesRecues(ImageServiceResultat imagesRecues); |
private ImageServiceResultat convertirReponseVersListeImage(Response reponse) { |
ImageServiceResultat resultat = new ImageServiceResultat(JSONParser.parseStrict(reponse.getText())); |
public ImageServiceResultat parserJSON(String retourService) { |
ImageServiceResultat resultat = new ImageServiceResultat(JSONParser.parseStrict(retourService)); |
return resultat; |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/AjoutVoteDeterminationCallback.java |
---|
New file |
0,0 → 1,11 |
package org.tela_botanica.del.client.services.rest.async; |
public abstract class AjoutVoteDeterminationCallback extends PHPCallback<Void> { |
@Override |
public Void parserJSON(String retourService) { |
return null; |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ListeVotesDeterminationCallback.java |
---|
New file |
0,0 → 1,15 |
package org.tela_botanica.del.client.services.rest.async; |
import java.util.HashMap; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
public abstract class ListeVotesDeterminationCallback extends PHPCallback<HashMap<String, VoteDetermination>> { |
@Override |
public HashMap<String, VoteDetermination> parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserRetourListeVotesDetermination(retourService); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/VoteProtocoleCallback.java |
---|
1,58 → 1,10 |
package org.tela_botanica.del.client.services.rest.async; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.user.client.Window; |
public abstract class VoteProtocoleCallback extends PHPCallback<Void> { |
public abstract class VoteProtocoleCallback implements RequestCallback { |
public enum ModeRequete { |
AJOUT, MODIFICATION |
} |
protected ModeRequete mode; |
public VoteProtocoleCallback(ModeRequete mode) { |
this.mode = mode; |
} |
public VoteProtocoleCallback() { |
// TODO Auto-generated constructor stub |
} |
public void setMode(ModeRequete mode) { |
this.mode = mode; |
} |
@Override |
public void onResponseReceived(Request request, Response response){ |
int statusCode = response.getStatusCode(); |
int codeAttendu = 500; |
switch (mode) { |
case AJOUT: |
codeAttendu = 201; |
break; |
case MODIFICATION: |
codeAttendu = 200; |
break; |
default: |
codeAttendu = 500; |
break; |
} |
if (statusCode == codeAttendu) { |
surRetour(response.getText()); |
} else { |
surErreur("Erreur " + statusCode + ": " + response.getText()); |
} |
public Void parserJSON(String retourService) { |
return null; |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surRetour(String messageRetour); |
public abstract void surErreur(String messageErreur); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/AjoutCommentaireCallback.java |
---|
New file |
0,0 → 1,12 |
package org.tela_botanica.del.client.services.rest.async; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
public abstract class AjoutCommentaireCallback extends PHPCallback<String>{ |
@Override |
public String parserJSON(String retourService) { |
return UtilitairesServiceResultat.convertirEtParserRetourAjoutCommentaire(retourService); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ListeCommentairesCallback.java |
---|
New file |
0,0 → 1,17 |
package org.tela_botanica.del.client.services.rest.async; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.json.client.JSONParser; |
public abstract class ListeCommentairesCallback extends PHPCallback<List<Commentaire>> { |
@Override |
public List<Commentaire> parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserCommentaires(JSONParser.parseStrict(retourService).isObject().get("resultats").isObject()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/PHPCallback.java |
---|
New file |
0,0 → 1,79 |
package org.tela_botanica.del.client.services.rest.async; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.user.client.Window; |
/** |
* Cette classe correspond au retour asynchrone d'un service php qui retourne |
* l'objet generique T si l'appel de service est un succcès |
* |
* @author LIENS |
* |
* @param <T> |
*/ |
public abstract class PHPCallback<T> implements RequestCallback { |
public enum ModeRequete { |
AJOUT, MODIFICATION, SUPPRESSION, LECTURE |
} |
protected ModeRequete mode; |
public PHPCallback() { |
} |
public void setMode(ModeRequete mode) { |
this.mode = mode; |
} |
@Override |
public void onResponseReceived(Request request, Response response) { |
int statusCode = response.getStatusCode(); |
int codeAttendu = 500; |
switch (mode) { |
case AJOUT: |
codeAttendu = 201; |
break; |
case MODIFICATION: |
codeAttendu = 200; |
break; |
case SUPPRESSION: |
codeAttendu = 200; |
break; |
case LECTURE: |
codeAttendu = 200; |
break; |
default: |
codeAttendu = 500; |
break; |
} |
if (statusCode == codeAttendu) { |
surRetour(parserJSON(response.getText())); |
} else { |
surErreur("Erreur " + statusCode + ": " + response.getText()); |
} |
} |
/** |
* Cette methode permet de pareser le JSON retourné par le webservice pour |
* le transformer en objet métier |
* |
* @param retourService |
* @return |
*/ |
public abstract T parserJSON(String retourService); |
@Override |
public void onError(Request request, Throwable exception) { |
surErreur(exception.getMessage()); |
} |
public abstract void surRetour(T objetRetour); |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/PropositionDeterminationCallBack.java |
---|
2,67 → 2,13 |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class PropositionDeterminationCallBack implements RequestCallback { |
public abstract class PropositionDeterminationCallBack extends PHPCallback<String> { |
//TODO: voir si l'on fusionne les classes de vote callback qui sont tout à fait semblables |
// pour ne pas dire identiques |
public enum ModeRequete { |
AJOUT, MODIFICATION, SUPPRESSION |
} |
protected ModeRequete mode; |
public PropositionDeterminationCallBack(ModeRequete mode) { |
this.mode = mode; |
} |
@Override |
public String parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserRetourAjoutCommentaire(JSONParser.parseStrict(retourService).isObject()); |
} |
public PropositionDeterminationCallBack() { |
// TODO Auto-generated constructor stub |
} |
public void setMode(ModeRequete mode) { |
this.mode = mode; |
} |
@Override |
public void onResponseReceived(Request request, Response response){ |
int statusCode = response.getStatusCode(); |
int codeAttendu = 500; |
switch (mode) { |
case AJOUT: |
codeAttendu = 201; |
break; |
case MODIFICATION: |
codeAttendu = 200; |
break; |
case SUPPRESSION: |
codeAttendu = 200; |
break; |
default: |
codeAttendu = 500; |
break; |
} |
if (statusCode == codeAttendu) { |
String id = UtilitairesServiceResultat.parserRetourAjoutCommentaire(JSONParser.parseStrict(response.getText()).isObject()); |
surRetour(id); |
} else { |
surErreur("Erreur " + statusCode + ": " + response.getText()); |
} |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surRetour(String messageRetour); |
public abstract void surErreur(String messageErreur); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ProtocolesCallback.java |
---|
2,34 → 2,13 |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class ProtocolesCallback implements RequestCallback { |
public abstract class ProtocolesCallback extends PHPCallback<ProtocoleServiceResultat> { |
public ProtocolesCallback() { |
} |
@Override |
public void onResponseReceived(Request request, Response response) { |
ProtocoleServiceResultat protocolesRecus = convertirReponseVersListeProtocoles(response); |
surProtocolesRecus(protocolesRecus); |
public ProtocoleServiceResultat parserJSON(String retourService) { |
return new ProtocoleServiceResultat(JSONParser.parseStrict(retourService)); |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus); |
private ProtocoleServiceResultat convertirReponseVersListeProtocoles(Response reponse) { |
ProtocoleServiceResultat resultat = new ProtocoleServiceResultat(JSONParser.parseStrict(reponse.getText())); |
return resultat; |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/UtilisateurCallback.java |
---|
3,30 → 3,13 |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class UtilisateurCallback implements RequestCallback { |
public abstract class UtilisateurCallback extends PHPCallback<Utilisateur> { |
@Override |
public void onResponseReceived(Request request, Response response){ |
int statusCode = response.getStatusCode(); |
if (statusCode == 200) { |
Utilisateur utilisateur = UtilitairesServiceResultat.parserUtilisateurJson(JSONParser.parseStrict(response.getText())); |
surRetourUtilisateur(utilisateur); |
} else { |
surErreurUtilisateur("Erreur " + statusCode + ": " + response.getText()); |
} |
public Utilisateur parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserUtilisateurJson(JSONParser.parseStrict(retourService)); |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surRetourUtilisateur(Utilisateur utilisateur); |
public abstract void surErreurUtilisateur(String erreur); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/VoteDeterminationServiceConcret.java |
---|
3,8 → 3,9 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.user.client.Window; |
23,7 → 24,7 |
} |
@Override |
public void ajouterVote(VoteDetermination voteDetermination, VoteDeterminationCallback callback) { |
public void ajouterVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) { |
String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId(); |
47,7 → 48,7 |
} |
@Override |
public void modifierVote(VoteDetermination voteDetermination, VoteDeterminationCallback callback) { |
public void modifierVote(VoteDetermination voteDetermination, AjoutVoteDeterminationCallback callback) { |
String idObservation = voteDetermination.getPropositionDetermination().getObservation().getId(); |
String idProposition = voteDetermination.getPropositionDetermination().getId(); |
//cas de la proposition de détermination crée automatiquement à partir de l'obs |
74,7 → 75,7 |
} |
@Override |
public void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, VoteDeterminationCallback callback) { |
public void consulterVotesPourPropositionDetermination(PropositionDetermination propositionDetermination, ListeVotesDeterminationCallback callback) { |
String idObservation = propositionDetermination.getObservation().getId(); |
String idProposition = propositionDetermination.getId(); |
//cas de la proposition de détermination crée automatiquement à partir de l'obs |
/trunk/src/org/tela_botanica/del/client/services/rest/CommentaireServiceConcret.java |
---|
3,8 → 3,9 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.http.client.URL; |
23,7 → 24,7 |
} |
@Override |
public void ajouterCommentaire(Commentaire commentaire, CommentaireCallback callback) { |
public void ajouterCommentaire(Commentaire commentaire, AjoutCommentaireCallback callback) { |
String urlService = baseUrl+"commentaires/"; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService); |
61,7 → 62,7 |
return chaineRequete; |
} |
public void chargerCommentaires(PropositionDetermination propositionDetermination, CommentaireCallback commentaireCallback) { |
public void chargerCommentaires(PropositionDetermination propositionDetermination, ListeCommentairesCallback commentaireCallback) { |
String urlService = baseUrl+"commentaires/?masque.proposition="+propositionDetermination.getId(); |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlService); |
/trunk/src/org/tela_botanica/del/client/services/rest/VoteProtocoleServiceConcret.java |
---|
4,8 → 4,9 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback; |
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
public class VoteProtocoleServiceConcret implements VoteProtocoleService { |
/trunk/src/org/tela_botanica/del/client/services/rest/ProtocoleServiceConcret.java |
---|
1,6 → 1,7 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import com.google.gwt.http.client.RequestBuilder; |
27,6 → 28,7 |
//TODO: inventer un système de cache car sinon c'est chargé à fois qu'on accède à la partie |
// recherche image |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "protocoles"); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
/trunk/src/org/tela_botanica/del/client/services/rest/PropositionDeterminationServiceConcret.java |
---|
2,8 → 2,8 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.http.client.URL; |
/trunk/src/org/tela_botanica/del/client/services/rest/UtilisateurServiceConcret.java |
---|
2,6 → 2,7 |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
21,6 → 22,7 |
@Override |
public void connecterUtilisateur(String login, String motDePasse, UtilisateurCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "utilisateurs/" + login + "/" + motDePasse); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
31,6 → 33,7 |
@Override |
public void deconnecterUtilisateur(UtilisateurCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "utilisateurs/deconnecter"); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
41,6 → 44,7 |
@Override |
public void obtenirUtilisateur(UtilisateurCallback callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "utilisateurs/"); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationPresenteur.java |
---|
6,8 → 6,7 |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ListeVotesDeterminationCallback; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
17,32 → 16,45 |
public interface Vue extends IsWidget { |
public void afficherVotes(PropositionDetermination propositionDetermination); |
void ajouterVote(VoteDetermination vote); |
void stopChargement(); |
void startChargement(); |
public void afficherAucuneDonnees(); |
} |
private Vue vue; |
public DetailListeVotesDeterminationPresenteur(Vue vue) { |
this.vue = vue; |
} |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
public void afficherVotes(final PropositionDetermination propositionDetermination) { |
vue.startChargement(); |
VoteDeterminationServiceConcret voteService = new VoteDeterminationServiceConcret(); |
voteService.consulterVotesPourPropositionDetermination(propositionDetermination, new VoteDeterminationCallback() { |
voteService.consulterVotesPourPropositionDetermination(propositionDetermination, new ListeVotesDeterminationCallback() { |
@Override |
public void surRetour(String messageRetour) { |
HashMap<String, VoteDetermination> votesComplets = UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination); |
if(votesComplets != null) { |
propositionDetermination.setVotesDeterminations(UtilitairesServiceResultat.parserRetourListeVotesDetermination(messageRetour, propositionDetermination)); |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.stopChargement(); |
} |
@Override |
public void surRetour(HashMap<String, VoteDetermination> votesComplets) { |
if (votesComplets != null && votesComplets.size() > 0) { |
for (VoteDetermination voteDetermination : votesComplets.values()) { |
voteDetermination.setPropositionDetermination(propositionDetermination); |
} |
propositionDetermination.setVotesDeterminations(votesComplets); |
vue.afficherVotes(propositionDetermination); |
vue.stopChargement(); |
} else { |
49,19 → 61,12 |
vue.afficherAucuneDonnees(); |
vue.stopChargement(); |
} |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.stopChargement(); |
} |
}); |
} |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |
} |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/moyennevotes/MoyenneVotePresenteur.java |
---|
1,7 → 1,6 |
package org.tela_botanica.del.client.composants.votes.moyennevotes; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
10,10 → 9,10 |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteProtocoleCallback; |
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.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
22,32 → 21,45 |
public interface Vue extends IsWidget { |
public HasClickHandlers getBoutonVoter(); |
public HasClickHandlers getBoutonAnnuler(); |
public HasText getNbVotes(); |
public HasClickHandlers getVotes(); |
public int getValeurVote(); |
public void afficherBoutonVoter(); |
public void afficherBoutonAnnuler(); |
public void masquerBoutonVoter(); |
public void masquerBoutonAnnuler(); |
public void afficherNbVotes(); |
public void masquerNbVotes(); |
public void masquerNbVotes(); |
public void reinitialiserVotes(); |
public void rafraichir(int moyenneVote, int nbVotes); |
public void ajouterAuParent(HasWidgets composite); |
} |
private Vue vue; |
private Protocole protocole; |
private Image image; |
private int valeurVoteDefaut = -1; |
private int valeurVoteUtilisateur = -1; |
private int valeurVoteTotal = 0; |
//TODO: on devrait passer un conteneur qui permet d'accéder à ces services |
// TODO: on devrait passer un conteneur qui permet d'accéder à ces services |
private VoteProtocoleService voteProtocoleService = new VoteProtocoleServiceConcret(); |
public MoyenneVotePresenteur(Image image, Protocole protocole, Vue vue) { |
this.vue = vue; |
this.protocole = protocole; |
59,7 → 71,7 |
gererEvenements(); |
rafraichirVue(); |
} |
public void gererEvenements() { |
vue.getVotes().addClickHandler(new ClickHandler() { |
@Override |
70,7 → 82,7 |
vue.masquerNbVotes(); |
} |
}); |
vue.getBoutonAnnuler().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
81,7 → 93,7 |
vue.reinitialiserVotes(); |
} |
}); |
vue.getBoutonVoter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
93,13 → 105,13 |
} |
}); |
} |
public void setValeurVoteUtilisateur(int valeurVoteUtilisateur) { |
this.valeurVoteUtilisateur = valeurVoteUtilisateur; |
} |
public void enregistrerVote() { |
final VoteProtocole voteProtocole = new VoteProtocole(); |
final VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocole(this.protocole); |
voteProtocole.setVote(valeurVoteUtilisateur); |
String idContributeur = CacheClient.getInstance().getUtilisateur().getId(); |
107,26 → 119,23 |
// TODO: Mettre un message de chargement pendant l'envoi du vote ? |
// C'est très rapide mais bon |
VoteProtocoleCallback vpc = new VoteProtocoleCallback() { |
@Override |
public void surRetour(String messageRetour) { |
//TODO: voir si l'on affiche un message en cas de succès ? |
public void surRetour(Void objetRetour) { |
// TODO: voir si l'on affiche un message en cas de succès ? |
image.ajouterVoteProtocole(voteProtocole); |
rafraichirVue(); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
if(image.utilisateurAVotePourProtocole(this.protocole.getId()+"", idContributeur)) { |
if (image.utilisateurAVotePourProtocole(this.protocole.getId() + "", idContributeur)) { |
voteProtocoleService.modifierVote(image.getIdImage(), voteProtocole, vpc); |
} else { |
voteProtocoleService.ajouterVote(image.getIdImage(), voteProtocole, vpc); |
} |
} |
public int getValeurVoteTotal() { |
return valeurVoteTotal; |
} |
134,26 → 143,26 |
public IsWidget getVue() { |
return vue; |
} |
private void rafraichirVue() { |
valeurVoteTotal = calculerMoyenneVotes(); |
vue.rafraichir(valeurVoteTotal, image.getVotesProtocoles(protocole.getId()).size()); |
} |
public int calculerMoyenneVotes() { |
double valeurVote = 0; |
int nbVote = 0; |
for (Iterator<String> iterator = image.getVotesProtocoles(protocole.getId()).keySet().iterator(); iterator.hasNext();) { |
VoteProtocole imageCelValidationData = image.getVotesProtocoles(protocole.getId()).get(iterator.next()); |
valeurVote += (double)imageCelValidationData.getVote()/5; |
valeurVote += (double) imageCelValidationData.getVote() / 5; |
nbVote++; |
} |
if (nbVote > 0) { |
valeurVote /= nbVote; |
valeurVote *= 5; |
} |
return (int)Math.round(valeurVote); |
return (int) Math.round(valeurVote); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/barrerepartition/BarreRepartitionVotePresenteur.java |
---|
7,11 → 7,10 |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
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.services.rest.VoteDeterminationService; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.VoteDeterminationCallback; |
import org.tela_botanica.del.client.services.rest.async.AjoutVoteDeterminationCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
21,29 → 20,36 |
import com.google.gwt.user.client.ui.IsWidget; |
public class BarreRepartitionVotePresenteur { |
public interface Vue extends IsWidget { |
public void afficherVotes(int pourcentage, String NomTaxon); |
public HasClickHandlers getBoutonOui(); |
public HasClickHandlers getBoutonNon(); |
public void desactiverBoutons(); |
public void activerBoutons(); |
public void setVoteOuiEffectue(); |
public void setVoteNonEffectue(); |
public void afficherVotePrisEnCompte(boolean b); |
} |
private Vue vue; |
private MoyenneVote moyenneVote; |
// TODO: classe conteneur qui est passé en paramètre au constructeur |
private VoteDeterminationService voteDeterminationService = new VoteDeterminationServiceConcret(); |
public BarreRepartitionVotePresenteur(Vue vue) { |
this.vue = vue; |
gererEvenements(); |
} |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
51,43 → 57,49 |
public void afficherVotes(MoyenneVote moyenneVote) { |
this.moyenneVote = moyenneVote; |
int score = moyenneVote.getScore(); |
String intitule =moyenneVote.getIntituleAssocie(); |
String intitule = moyenneVote.getIntituleAssocie(); |
vue.afficherVotes(score, intitule); |
} |
public Vue getBarreRepartitionVoteVue() { |
return vue; |
} |
public MoyenneVote getMoyenneVote() { |
return moyenneVote; |
} |
public void gererEvenements() { |
vue.getBoutonOui().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(true); |
vue.afficherVotePrisEnCompte(true); |
} |
} |
}); |
vue.getBoutonNon().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(false); |
vue.afficherVotePrisEnCompte(false); |
} |
} |
}); |
} |
private void surVoteDetermination(final VoteDetermination vd) { |
if(vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) { |
VoteDeterminationCallback vdc = new VoteDeterminationCallback() { |
if (vd.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) { |
AjoutVoteDeterminationCallback vdc = new AjoutVoteDeterminationCallback() { |
@Override |
public void surRetour(String messageRetour) { |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.activerBoutons(); |
} |
@Override |
public void surRetour(Void objetRetour) { |
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd); |
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee()); |
afficherVotes(moyenneVote); |
95,34 → 107,28 |
// l'évènement n'est lancé que si le vote est validé |
BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd)); |
} |
}; |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
vue.activerBoutons(); |
} |
}; |
if(moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) { |
if (moyenneVote.getPropositionAssociee().utilisateurAVotePourDetermination(vd.getContributeur())) { |
voteDeterminationService.modifierVote(vd, vdc); |
} else { |
voteDeterminationService.ajouterVote(vd, vdc); |
} |
} |
} |
} |
public void voter(boolean oui) { |
VoteDetermination vd = new VoteDetermination(); |
vd.setPropositionDetermination(moyenneVote.getPropositionAssociee()); |
vd.setContributeur(CacheClient.getInstance().getUtilisateur().getId()); |
vd.setDate(new Date()); |
int valeurVote = oui ? 1 : 0; |
vd.setVote(valeurVote); |
vd.setId(CacheClient.getInstance().getUtilisateur().getId()); |
if(oui) { |
if (oui) { |
vue.setVoteOuiEffectue(); |
} else { |
vue.setVoteNonEffectue(); |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentairePresenteur.java |
---|
5,55 → 5,96 |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentairePresenteur extends Presenteur { |
/** |
* Interface de la vue correspondante |
* |
* @author LIENS |
* |
*/ |
public interface Vue extends IsWidget { |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination); |
void stopChargement(); |
public void afficherAucuneDonnees(); |
void startChargement(); |
public void stopChargement(); |
public void afficherAucuneDonnees(); |
public void startChargement(); |
} |
// La vue correspondante |
private Vue vue; |
// La proposition de determination |
private PropositionDetermination propositionDetermination; |
/** |
* Constructeur |
* |
* @param vue |
* @param propositionDetermination |
*/ |
public DetailCommentairePresenteur(Vue vue, PropositionDetermination propositionDetermination) { |
this.vue = vue; |
this.propositionDetermination = propositionDetermination; |
} |
/** |
* Declenchement du présenteur |
*/ |
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
/** |
* Affichage des commentaires |
*/ |
public void afficherCommentaires() { |
// affichage de l'icone de chargement |
vue.startChargement(); |
CommentaireServiceConcret commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new CommentaireCallback() { |
// Appel du service |
CommentaireService commentaireService = new CommentaireServiceConcret(); |
commentaireService.chargerCommentaires(propositionDetermination, new ListeCommentairesCallback() { |
@Override |
public void surRetour(String messageRetour) { |
List<Commentaire> commentaires = UtilitairesServiceResultat.parserCommentaires(JSONParser.parseStrict(messageRetour).isObject().get("resultats").isObject(), propositionDetermination.getObservation()); |
public void surRetour(List<Commentaire> commentaires) { |
propositionDetermination.setListeCommentaires(commentaires); |
int nbCommentaires = propositionDetermination.getTotalCommentaires(); |
if (nbCommentaires > 0) { |
// s'il existe des commentaires ils sont affichés |
if (propositionDetermination.getTotalCommentaires() > 0) { |
// affichage des commentaires associés à la proposition dans |
// la vue |
vue.afficherCommentairesProposition(propositionDetermination); |
// supression de l'icone de chargement |
vue.stopChargement(); |
} else { |
// affichage d'un message precisant qu'il n'y a pas de |
// commentaires |
vue.afficherAucuneDonnees(); |
// supression de l'icone de chargement |
vue.stopChargement(); |
} |
67,6 → 108,9 |
}); |
} |
/** |
* Gestion des evenements du presenteur |
*/ |
@Override |
protected void gererEvenements() { |
// TODO Auto-generated method stub |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.java |
---|
15,6 → 15,13 |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
/** |
* Cette classe permet d'afficher une popup avec la liste des commentaires |
* associées à une proposition de determination |
* |
* @author LIENS |
* |
*/ |
public class DetailCommentaireVue extends Composite implements DetailCommentairePresenteur.Vue { |
private static DetailListeVotesDeterminationVueUIiBinder uiBinder = GWT.create(DetailListeVotesDeterminationVueUIiBinder.class); |
35,6 → 42,9 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
/** |
* Affiche les commentaires associées à une proposition de determination |
*/ |
@Override |
public void afficherCommentairesProposition(PropositionDetermination propositionDetermination) { |
50,6 → 60,10 |
creerListeCommentaireRecursive(propositionDetermination.getListeCommentaires()); |
} |
/** |
* Affiche une liste de commentaires recursivement |
* @param commentaires |
*/ |
private void creerListeCommentaireRecursive(List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
60,6 → 74,10 |
} |
} |
/** |
* Affiche un commentaire |
* @param commentaire |
*/ |
private void chargerCommentaire(Commentaire commentaire) { |
int ligne = htmlTableau.getRowCount() + 1; |
htmlTableau.setHTML(ligne, 1, commentaire.getAuteur()); |
67,6 → 85,9 |
htmlTableau.setHTML(ligne, 3, commentaire.getDate() + ""); |
} |
/** |
* Affiche les en-têtes du tableau de commentaires |
*/ |
private void creerEntetes() { |
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur()); |
htmlTableau.setHTML(1, 2, I18n.getVocabulary().commentaire()); |
73,6 → 94,9 |
htmlTableau.setHTML(1, 3, I18n.getVocabulary().date()); |
} |
/** |
* Affiche un icone de début de chargement |
*/ |
@Override |
public void startChargement() { |
panneauChargement.setHeight((this.getOffsetHeight() / 2) + "px"); |
80,11 → 104,17 |
panneauChargement.setVisible(true); |
} |
/** |
* Cache l'icone de début de chargement |
*/ |
@Override |
public void stopChargement() { |
panneauChargement.setVisible(false); |
} |
/** |
* Affiche un message indiquant qu'il n'y a aucun commentaire à présenter |
*/ |
@Override |
public void afficherAucuneDonnees() { |
aucuneDonnees.setVisible(true); |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulairecommentaire/FormulaireCommentairePresenteur.java |
---|
14,9 → 14,7 |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback.ModeRequete; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import org.tela_botanica.del.client.services.rest.async.AjoutCommentaireCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
38,15 → 36,15 |
public interface Vue extends IsWidget { |
public HasText getNomObjet(); |
public HasText getPrenomObjet(); |
public String getNom(); |
public String getPrenom(); |
public String getCourriel(); |
public abstract HasText getCommentaire(); |
public abstract HasClickHandlers getBoutonValidationCommentaire(); |
54,7 → 52,7 |
public void afficherStyleErreurNom(String styleErreur); |
public void supprimerStyleErreurNom(String styleErreur); |
public void afficherStyleErreurPrenom(String styleErreur); |
public void supprimerStyleErreurPrenom(String styleErreur); |
62,7 → 60,7 |
public void afficherStyleErreurCommentaire(String styleErreur); |
public void supprimerStyleErreurCommentaire(String styleErreur); |
void afficherNomPrenomEtDesactiver(String nom, String prenom, String courriel); |
} |
106,18 → 104,18 |
} |
}); |
} |
public void surValidationCommentaire() { |
String texteCommentaire = vue.getCommentaire().getText(); |
String idUtilisateur = null; |
if(CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
if (CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
idUtilisateur = CacheClient.getInstance().getUtilisateur().getId(); |
} |
Contributeur contributeur = new Contributeur(idUtilisateur, vue.getNom(), vue.getPrenom(), vue.getCourriel()); |
final Commentaire commentaire = new Commentaire(contributeur, new Date(), texteCommentaire); |
if (observation != null) { |
commentaire.setObservation(observation); |
commentaire.setParent(null); |
125,12 → 123,12 |
commentaire.setObservation(CacheClient.getInstance().getObservationCourante()); |
commentaire.setParent(possesseurDeCommentaires); |
} |
commentaireService.ajouterCommentaire(commentaire, new CommentaireCallback(ModeRequete.AJOUT) { |
commentaireService.ajouterCommentaire(commentaire, new AjoutCommentaireCallback() { |
@Override |
public void surRetour(String messageRetour) { |
commentaire.setId(UtilitairesServiceResultat.convertirEtParserRetourAjoutCommentaire(messageRetour)); |
public void surRetour(String objetRetour) { |
commentaire.setId(objetRetour); |
if (observation != null) { |
observation.getInterventionsForum().add(commentaire); |
} else if (possesseurDeCommentaires != null) { |
138,7 → 136,7 |
} |
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire)); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/FormulaireIdentificationPresenteur.java |
---|
1,11 → 1,10 |
package org.tela_botanica.del.client.composants.formulaires.identification; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.services.rest.UtilisateurService; |
import org.tela_botanica.del.client.services.rest.UtilisateurServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
18,61 → 17,72 |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulaireIdentificationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void ajouterVue(HasWidgets composite); |
public HasClickHandlers getSeConnecter(); |
public HasClickHandlers getSeDeconnecter(); |
public void basculerAffichageFormulaire(); |
public void basculerModeConnecte(Utilisateur utilisateur); |
public HasClickHandlers getBoutonOK(); |
public HasText getLogin(); |
public HasText getMotdepasse(); |
public void afficherErreur(); |
public void masquerErreur(); |
public void viderFormulaire(); |
public void setErreur(String idTexte); |
public String getErreur(); |
public HasKeyPressHandlers getLoginHasKeyPressHandler(); |
public HasKeyPressHandlers getMotdepasseHasKeyPressHandler(); |
} |
private Vue vue; |
private Utilisateur utilisateur; |
private UtilisateurService utilisateurService; |
public FormulaireIdentificationPresenteur(Vue vue, UtilisateurService utilisateurService) { |
this.vue = vue; |
this.utilisateurService = utilisateurService; |
utilisateurService.obtenirUtilisateur(new UtilisateurCallback() { |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
rafraichir(); |
} |
public void surErreurUtilisateur(String message) { |
/*null*/ |
} |
}); |
gererEvenements(); |
} |
public void rafraichir() { |
utilisateur = CacheClient.getInstance().getUtilisateur(); |
utilisateur = CacheClient.getInstance().getUtilisateur(); |
vue.basculerModeConnecte(this.utilisateur); |
} |
public void gererEvenements() { |
vue.getSeConnecter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.basculerAffichageFormulaire(); |
} |
}); |
vue.getBoutonOK().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
79,22 → 89,22 |
surTentativeLogin(); |
} |
}); |
vue.getSeDeconnecter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
deconnecterUtilisateur(); |
deconnecterUtilisateur(); |
} |
}); |
vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree()); |
vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree()); |
} |
private void surTentativeLogin() { |
String login = vue.getLogin().getText(); |
String login = vue.getLogin().getText(); |
String motdepasse = vue.getMotdepasse().getText(); |
if (login.equals("") || motdepasse.equals("")) { |
gererErreur("saisirLogin"); |
} else { |
101,7 → 111,7 |
connecterUtilisateur(login, motdepasse); |
} |
} |
public KeyPressHandler creerGestionnaireEvenementToucheEntree() { |
return new KeyPressHandler() { |
public void onKeyPress(KeyPressEvent event) { |
111,17 → 121,23 |
} |
}; |
} |
public void gererErreur(String erreur) { |
vue.setErreur(erreur); |
vue.afficherErreur(); |
} |
public void connecterUtilisateur(String login, String motdepasse) { |
utilisateurService.connecterUtilisateur(login, motdepasse, new UtilisateurCallback() { |
public void surErreur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
if (utilisateur.estIdentifie()) { |
vue.masquerErreur(); |
128,31 → 144,27 |
rafraichir(); |
vue.basculerAffichageFormulaire(); |
vue.viderFormulaire(); |
} |
} |
} |
public void surErreurUtilisateur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
}); |
} |
public void deconnecterUtilisateur() { |
utilisateurService.deconnecterUtilisateur(new UtilisateurCallback() { |
public void surErreur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
@Override |
public void surRetourUtilisateur(Utilisateur utilisateur) { |
public void surRetour(Utilisateur objetRetour) { |
CacheClient.getInstance().setUtilisateur(utilisateur); |
rafraichir(); |
} |
public void surErreurUtilisateur(String message) { |
vue.setErreur("identificationRefus"); |
vue.afficherErreur(); |
} |
}); |
} |
public void go(HasWidgets composite) { |
vue.ajouterVue(composite); |
} |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulaireproposition/FormulairePropositionPresenteur.java |
---|
5,11 → 5,9 |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxPresenteur; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.Contributeur; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
18,7 → 16,6 |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack.ModeRequete; |
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
26,35 → 23,47 |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class FormulairePropositionPresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public HasText getObjetNom(); |
public HasText getObjetPrenom(); |
public HasWidgets getPropositionTaxon(); |
public HasText getCommentaires(); |
public HasClickHandlers getBoutonValidationProposition(); |
public void afficherNomPrenomEtDesactiver(String nom, String prenom); |
public String getCourriel(); |
public void afficherEmailEtDesactiver(String courriel); |
public String getNom(); |
public String getPrenom(); |
public void afficherStyleErreurNom(String styleErreur); |
public void supprimerStyleErreurNom(String styleErreur); |
public void afficherStyleErreurPrenom(String styleErreur); |
public void supprimerStyleErreurPrenom(String styleErreur); |
} |
private Vue vue; |
private Config config; |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
private PropositionDeterminationService propositionDeterminationService = new PropositionDeterminationServiceConcret(); |
public FormulairePropositionPresenteur(Vue vue) { |
this.vue = vue; |
config = new Config(); |
61,22 → 70,22 |
creerCompletionTaxons(); |
remplirAvecInfosUtilisateur(); |
} |
private void remplirAvecInfosUtilisateur() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
if(utilisateur.estIdentifie()) { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
if (utilisateur.estIdentifie()) { |
vue.afficherNomPrenomEtDesactiver(utilisateur.getNom(), utilisateur.getPrenom()); |
vue.afficherEmailEtDesactiver(utilisateur.getCourriel()); |
} |
} |
private void creerCompletionTaxons() { |
String url = this.config.getUrl("nomSciCompletionService"); |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) { |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) { |
protected String effectuerPreTraitementChaineRequete(String requete) { |
return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete); |
} |
@Override |
protected String[] parserResultatRequete(Response response) { |
return UtilitairesAutoCompletionService.parserRetourSimple(response); |
99,8 → 108,8 |
return; |
} else { |
final PropositionDetermination propositionAjoutee = collecterValeursSaisieProposition(); |
propositionDeterminationService.ajouterProposition(propositionAjoutee, new PropositionDeterminationCallBack(ModeRequete.AJOUT) { |
propositionDeterminationService.ajouterProposition(propositionAjoutee, new PropositionDeterminationCallBack() { |
@Override |
public void surRetour(String messageRetour) { |
propositionAjoutee.setId(UtilitairesServiceResultat.convertirEtParserRetourAjoutCommentaire(messageRetour)); |
108,11 → 117,7 |
EvenementAjoutDetermination evenementAjoutDetermination = new EvenementAjoutDetermination(propositionAjoutee); |
BusEvenementiel.getInstance().fireEvent(evenementAjoutDetermination); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}); |
} |
} |
126,25 → 131,25 |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreurNom(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreurNom(styleErreur); |
} |
}; |
ValidateurChampTexteNonNul validateurPrenom = new ValidateurChampTexteNonNul(vue.getObjetPrenom()) { |
@Override |
public void afficherStyleErreur(String styleErreur) { |
vue.afficherStyleErreurPrenom(styleErreur); |
} |
@Override |
public void supprimerStyleErreur(String styleErreur) { |
vue.supprimerStyleErreurPrenom(styleErreur); |
} |
}; |
boolean nomSaisi = validateurNom.valider(); |
boolean prenomSaisi = validateurPrenom.valider(); |
154,9 → 159,9 |
private PropositionDetermination collecterValeursSaisieProposition() { |
PropositionDetermination propositionAjoutee = new PropositionDetermination(CacheClient.getInstance().getObservationCourante()); |
propositionAjoutee.setId(CacheClient.getInstance().getObservationCourante().getId()); |
String idUtilisateur = null; |
if(CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
if (CacheClient.getInstance().getUtilisateur().estIdentifie()) { |
idUtilisateur = CacheClient.getInstance().getUtilisateur().getId(); |
} |
164,7 → 169,7 |
propositionAjoutee.setContributeur(contributeur); |
propositionAjoutee.setDate(new Date()); |
propositionAjoutee.setEspece(autoCompletionNomTaxonsPresenteur.getValeur()); |
if (vue.getCommentaires().getText() != "") { |
String contenuCommentaire = vue.getCommentaires().getText(); |
propositionAjoutee.setCommentaire(contenuCommentaire); |
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
65,7 → 65,10 |
JSONValue propositions = observationJson.get("commentaires"); |
if (propositions != null && propositions.isObject() != null) { |
List<InterventionForum> interventions = parserInterventions(propositions.isObject(), observation); |
List<InterventionForum> interventions = parserInterventions(propositions.isObject()); |
for (InterventionForum interventionForum : interventions) { |
interventionForum.setObservation(observation); |
} |
observation.setInterventionsForum(interventions); |
} else { |
observation.ajouterPropositionDetermination(creerPropositionDeterminationAPartirObservation(observation)); |
73,8 → 76,8 |
return observation; |
} |
public static List<Commentaire> parserCommentaires(JSONObject commentaires, Observation observation) { |
List<InterventionForum> interventionForums = parserInterventions(commentaires, observation); |
public static List<Commentaire> parserCommentaires(JSONObject commentaires) { |
List<InterventionForum> interventionForums = parserInterventions(commentaires); |
List<Commentaire> commentairesListe = new ArrayList<Commentaire>(); |
for (InterventionForum interventionForum : interventionForums) { |
if (interventionForum instanceof Commentaire) { |
85,13 → 88,13 |
} |
public static List<InterventionForum> parserInterventions(JSONObject interventions, Observation observation) { |
public static List<InterventionForum> parserInterventions(JSONObject interventions) { |
HashMap<String, InterventionForum> interventionsNonTypees = new HashMap<String, InterventionForum>(); |
List<InterventionForum> retour = new ArrayList<InterventionForum>(); |
// parcourir les interventions et en faire un tableau |
if(interventions==null){ |
if (interventions == null) { |
return retour; |
} |
Iterator<String> itInterventions = interventions.keySet().iterator(); |
123,12 → 126,12 |
String nbCommentaires = getValeurOuVide(jsonIntervention, "nb_commentaires"); |
PropositionDetermination intervention = new PropositionDetermination(id, contributeur, texte); |
intervention.setObservation(observation); |
// intervention.setObservation(observation); |
intervention.setEspece(nom_sel); |
if (!nbCommentaires.equals("")) { |
int nbComm = Integer.parseInt(nbCommentaires); |
if(!texte.equals("")) { |
if (!texte.equals("")) { |
nbComm++; |
} |
intervention.setNbCommentaires(nbComm); |
139,7 → 142,7 |
} |
if (jsonIntervention.get("votes") != null && jsonIntervention.get("votes").isObject() != null) { |
intervention.setVotesDeterminations(parserVotesDetermination(jsonIntervention.get("votes").isObject(), intervention)); |
intervention.setVotesDeterminations(parserVotesDetermination(jsonIntervention.get("votes").isObject())); |
} |
intervention.setDate(date); |
167,11 → 170,10 |
} |
} |
retour.addAll(interventionsNonTypees.values()); |
return retour; |
} |
public static String convertirEtParserRetourAjoutCommentaire(String retour) { |
JSONObject retourJson = JSONParser.parseStrict(retour).isObject(); |
return parserRetourAjoutCommentaire(retourJson); |
205,7 → 207,7 |
return propositionDetermination; |
} |
public static HashMap<String, VoteDetermination> parserRetourListeVotesDetermination(String votesString, PropositionDetermination proposition) { |
public static HashMap<String, VoteDetermination> parserRetourListeVotesDetermination(String votesString) { |
HashMap<String, VoteDetermination> retour = null; |
212,12 → 214,12 |
JSONObject votes = JSONParser.parseStrict(votesString).isObject(); |
if (votes != null && votes.get("resultats") != null && votes.get("resultats").isObject() != null) { |
JSONObject resultat = votes.get("resultats").isObject(); |
retour = parserVotesDetermination(resultat, proposition); |
retour = parserVotesDetermination(resultat); |
} |
return retour; |
} |
public static HashMap<String, VoteDetermination> parserVotesDetermination(JSONObject votes, PropositionDetermination proposition) { |
public static HashMap<String, VoteDetermination> parserVotesDetermination(JSONObject votes) { |
HashMap<String, VoteDetermination> votesDetermination = new HashMap<String, VoteDetermination>(); |
java.util.Iterator<String> itVotes = votes.keySet().iterator(); |
while (itVotes.hasNext()) { |
226,7 → 228,6 |
vd.setContributeur(getValeurOuVide(vote, "auteur.id")); |
vd.setDate(new Date()); |
vd.setId(getValeurOuVide(vote, "vote.id")); |
vd.setPropositionDetermination(proposition); |
vd.setVote(Integer.parseInt(getValeurOuVide(vote, "vote"))); |
vd.setContributeur(getValeurOuVide(vote, "auteur.id")); |
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java |
---|
23,7 → 23,7 |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.services.rest.async.CommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeCommentairesCallback; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack; |