Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2049 → Rev 2050

/trunk/src/org/tela_botanica/del/client/vues/identiplante/moteur/MoteurIdentiplanteVue.ui.xml
19,6 → 19,8
<g:Label styleName="onglet" text="{constants.ongletAConfirmer}" ui:field="ongletAConfirmer"></g:Label>
<!-- terme Validées/Vérifiées sujet à changement, "Vérifiées" en texte, "Validées" partout ailleurs dans le code -->
<g:Label styleName="onglet" text="{constants.ongletVerifiees}" ui:field="ongletValidees"></g:Label>
<!-- terme Validées/Vérifiées sujet à changement, "Vérifiées" en texte, "Validées" partout ailleurs dans le code -->
<g:HTML styleName="onglet ongletMonActivite" text=" " ui:field="ongletMonActivite"></g:HTML>
</g:HTMLPanel>
<g:HTMLPanel>
<g:HTMLPanel ui:field="zoneResultats" />
/trunk/src/org/tela_botanica/del/client/vues/identiplante/moteur/MoteurIdentiplantePresenteur.java
8,6 → 8,10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.services.rest.ObservationService;
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur;
36,6 → 40,8
 
public HasClickHandlers getOngletValidees();
public HasClickHandlers getOngletMonActivite();
public void setOngletADeterminerActif();
public void setOngletToutActif();
43,7 → 49,16
public void setOngletAConfirmerActif();
 
public void setOngletValideesActif();
 
void afficherCacherOngletMonActivite(boolean afficher);
 
void setOngletMonActiviteActif();
 
void setOngletActif(String onglet);
 
public void afficherNbEvenements(String nbEvenements);
public void cacherNbEvenements();
}
 
private Vue vue;
57,9 → 72,29
composite.add(vue.asWidget());
ajouterMoteurRechercheAvancee();
gererEvenements();
gererAffichageOngletMonActivite();
}
 
private void gererAffichageOngletMonActivite() {
vue.afficherCacherOngletMonActivite(CacheClient.getInstance().getUtilisateur().estIdentifie());
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
@Override
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
vue.afficherCacherOngletMonActivite(utilisateur.estIdentifie());
vue.cacherNbEvenements();
if(!utilisateur.estIdentifie()) {
activerOnglet("tous");
} else {
if(utilisateur.getNbEvenementsInt() > 0) {
vue.afficherNbEvenements(utilisateur.getNbEvenements());
}
}
}
});
}
 
protected void ajouterMoteurRechercheAvancee() {
MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
}, ModeRecherche.MODE_OBSERVATION) {
80,49 → 115,53
 
protected void gererEvenements() {
// Gestion du clic sur les onglets
vue.getOngletTout().addClickHandler(new ClickHandler() {
vue.getOngletTout().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
CacheClient.getInstance().setFiltreStatut("tous");
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
chercherObservations();
vue.setOngletToutActif();
activerOnglet("tous");
}
});
vue.getOngletADeterminer().addClickHandler(new ClickHandler() {
vue.getOngletADeterminer().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
CacheClient.getInstance().setFiltreStatut("adeterminer");
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
chercherObservations();
vue.setOngletADeterminerActif();
activerOnglet("adeterminer");
}
});
vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {
vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
CacheClient.getInstance().setFiltreStatut("aconfirmer");
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
chercherObservations();
vue.setOngletAConfirmerActif();
activerOnglet("aconfirmer");
}
});
 
vue.getOngletValidees().addClickHandler(new ClickHandler() {
vue.getOngletValidees().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
CacheClient.getInstance().setFiltreStatut("validees");
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
chercherObservations();
vue.setOngletValideesActif();
activerOnglet("validees");
}
});
vue.getOngletMonActivite().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// S'il y a de nouveau évènements sur l'obs, on les affichera tous sur la même page
int nbEvents = CacheClient.getInstance().getUtilisateur().getNbEvenementsInt();
if(CacheClient.getInstance().getPasPagination() < nbEvents) {
CacheClient.getInstance().setPasPagination(nbEvents);
}
activerOnglet("monactivite");
vue.cacherNbEvenements();
}
});
}
 
protected void activerOnglet(String onglet) {
CacheClient.getInstance().setFiltreStatut(onglet);
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
chercherObservations();
vue.setOngletActif(onglet);
}
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/moteur/MoteurIdentiplanteVue.java
7,6 → 7,8
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.FocusPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
25,6 → 27,9
 
@UiField
Label ongletTout, ongletADeterminer, ongletAConfirmer, ongletValidees;
@UiField
HTML ongletMonActivite;
 
public HasWidgets getZoneRecherche() {
return zoneRecherche;
59,8 → 64,18
public HasClickHandlers getOngletValidees() {
return ongletValidees;
}
@Override
public void afficherCacherOngletMonActivite(boolean afficher) {
ongletMonActivite.setVisible(afficher);
}
 
@Override
public HasClickHandlers getOngletMonActivite() {
return ongletMonActivite;
}
 
@Override
public void setOngletADeterminerActif() {
nettoyerOngletsActifs();
ongletADeterminer.addStyleName("onglet-actif");
84,24 → 99,48
ongletValidees.addStyleName("onglet-actif");
}
@Override
public void setOngletMonActiviteActif() {
nettoyerOngletsActifs();
ongletMonActivite.addStyleName("onglet-actif");
}
public void nettoyerOngletsActifs() {
ongletTout.removeStyleName("onglet-actif");
ongletADeterminer.removeStyleName("onglet-actif");
ongletAConfirmer.removeStyleName("onglet-actif");
ongletValidees.removeStyleName("onglet-actif");
ongletMonActivite.removeStyleName("onglet-actif");
}
public void mettreAJourOngletEnFonctionDuCache() {
String statut = CacheClient.getInstance().getFiltreStatut();
if (statut == null) {
@Override
public void setOngletActif(String onglet) {
if (onglet == null || onglet.equals("tous")) {
setOngletToutActif();
} else if (statut.equals("adeterminer")) {
} else if (onglet.equals("adeterminer")) {
setOngletADeterminerActif();
} else if (statut.equals("aconfirmer")) {
} else if (onglet.equals("aconfirmer")) {
setOngletAConfirmerActif();
} else if (statut.equals("validees")) {
} else if (onglet.equals("validees")) {
setOngletValideesActif();
} else if (onglet.equals("monactivite")) {
setOngletMonActiviteActif();
}
}
public void mettreAJourOngletEnFonctionDuCache() {
String statut = CacheClient.getInstance().getFiltreStatut();
setOngletActif(statut);
}
 
@Override
public void afficherNbEvenements(String nbEvenements) {
String HtmlIndication = "<div class=\"nbEvenementsMonActivite\">"+nbEvenements+"</div>";
ongletMonActivite.setHTML(HtmlIndication);
}
 
@Override
public void cacherNbEvenements() {
ongletMonActivite.setHTML("");
}
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/ResultatsIdentiplantePresenteur.java
6,13 → 6,16
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.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.ModeTri;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
import org.tela_botanica.del.client.modeles.Utilisateur;
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.utils.StringUtils;
import org.tela_botanica.del.client.vues.identiplante.resultats.observations.ObservationPresenteur;
import org.tela_botanica.del.client.vues.identiplante.resultats.observations.ObservationVue;
 
69,6 → 72,8
void setModeTriObservation(ModeTri mode);
 
void setModeTriNbCommentaires(ModeTri mode);
void afficherCacherZoneTri(boolean afficher);
}
 
private Vue vue;
126,7 → 131,7
* 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();
 
361,6 → 366,14
vue.afficherElementsAucunResultatTrouve();
} else {
vue.afficherElementsResultatsTrouves();
// Si on consulte l'onglet mon activité, on cache le tri qui n'a pas de sens ici car c'est une timeline
vue.afficherCacherZoneTri(!cache.getFiltreStatut().equals(ConstantesNavigation.PARAM_TYPE_MONACTIVITE));
// S'il y a de nouveau évènements sur l'obs, elle doit être mise en valeur
// les x premieres obs sont affichées un peu différemment (où x est le nombre de nouveaux évènements)
int i = 0;
int nbEvents = CacheClient.getInstance().getUtilisateur().getNbEvenementsInt();
for (Observation observation : resultats.getObservations()) {
List<Image> listeImagesObs = observation.getImages();
Image imagePrincipale = null;
369,6 → 382,11
}
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation, imagePrincipale);
presenteur.go(vue.getZoneObservations());
if(nbEvents != 0 && i <= nbEvents) {
presenteur.mettreEnValeurEvenementsObs();
}
i++;
}
}
CacheClient.getInstance().mettreAjourUrlCourante();
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/ResultatsIdentiplanteVue.java
89,6 → 89,10
zonePaginationBas.setVisible(true);
zoneTri.setVisible(true);
}
public void afficherCacherZoneTri(boolean afficher) {
zoneTri.setVisible(afficher);
}
 
public Button getTriParDateObservationAscendant() {
return triParDateObservationAscendant;
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observations/observation.css
98,4 → 98,12
}
.plusDeDetails {
width: 130px;
}
.evenements {
background-color: #eaedcd;
border: 1px solid #eaedcd;
border-radius: 5px;
margin-bottom: 3px;
padding: 4px;
font-size: 14px;
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observations/ObservationVue.ui.xml
9,6 → 9,7
<ui:style src="observation.css" />
<g:HTMLPanel styleName="{style.ligneObservation} limiteMin">
<g:Label styleName="{style.evenements}" ui:field="messageEvenements"></g:Label>
<g:HTMLPanel styleName="gauche ombre-faible arrondi {style.observation}">
<g:HTMLPanel styleName="colonne {style.colonneImages}">
<g:Label ui:field="nomEspece" styleName="{style.nomEspece}"></g:Label>
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observations/ObservationPresenteur.java
1,6 → 1,9
package org.tela_botanica.del.client.vues.identiplante.resultats.observations;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
27,9 → 30,12
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
import org.tela_botanica.del.client.utils.StringUtils;
import org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations.ObservationDeterminationPresenteur;
import org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations.ObservationDeterminationVue;
 
import com.gargoylesoftware.htmlunit.html.Util;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
56,6 → 62,12
public HasClickHandlers getBoutonAjoutCommentaire();
public HasClickHandlers getBoutonPlusDeDetails();
 
public void afficherEvenementsObservation(String evenementsObs);
 
public void cacherEvenementsObservation();
 
public void mettreEnValeurEvenementsObs();
}
 
private Vue vue;
82,9 → 94,47
observationDeterminationPresenteur.go(vue.getDeterminationsPanel());
vue.setNomEspece(observation.getNomRetenu());
vue.setNbCommentaires(observation.getNbCommentaires());
gererAffichageEvenementsObs();
gererEvenements();
}
 
private void gererAffichageEvenementsObs() {
if(!observation.getEvenementsAssocies().isEmpty()) {
Map<String, Integer> nbEventsParEvent = new HashMap<String, Integer>();
List<String> evts = observation.getEvenementsAssocies();
GWT.log("Evenements pour l'obs "+observation.getId());
GWT.log(observation.getEvenementsAssocies().size()+" evenements dans la liste");
for (Iterator<String> iterator = evts.iterator(); iterator.hasNext();) {
String evenement = iterator.next();
if(nbEventsParEvent.containsKey(evenement)) {
Integer nbEvent = nbEventsParEvent.get(evenement);
nbEvent++;
nbEventsParEvent.put(evenement, nbEvent);
GWT.log("ajout à l'évènement "+evenement+" "+(nbEvent));
} else {
GWT.log("nouvel évènement "+evenement);
nbEventsParEvent.put(evenement, 1);
}
GWT.log("vérif évenement "+evenement+" "+nbEventsParEvent.get(evenement));
}
StringBuilder stb = new StringBuilder();
for (Iterator<String> iterator = nbEventsParEvent.keySet().iterator(); iterator.hasNext();) {
String evtNom = (String) iterator.next();
stb.append(StringUtils.getCorrespondanceChaineEvenementObs(evtNom, nbEventsParEvent.get(evtNom)));
if(iterator.hasNext()) {
stb.append(", ");
}
}
vue.afficherEvenementsObservation(stb.toString());
} else {
vue.cacherEvenementsObservation();
}
}
 
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
}
148,4 → 198,8
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
observationDeterminationPresenteur.setPropositions(observation.getPropositionDeterminations());
}
 
public void mettreEnValeurEvenementsObs() {
vue.mettreEnValeurEvenementsObs();
}
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observations/ObservationVue.java
25,7 → 25,7
@UiField
Panel determinationsPanel, imagesPanel, metadonnees;
@UiField Label nomEspece;
@UiField Label nomEspece, messageEvenements;
 
public ObservationVue() {
78,4 → 78,18
boutonPlusDeDetails.setText(boutonPlusDeDetails.getText()+" ("+nbCommentaires+")");
}
 
@Override
public void afficherEvenementsObservation(String evenementsObs) {
messageEvenements.setText(evenementsObs);
messageEvenements.setVisible(true);
}
 
public void cacherEvenementsObservation() {
messageEvenements.setVisible(false);
}
 
@Override
public void mettreEnValeurEvenementsObs() {
messageEvenements.addStyleName("evenementsNouveaux");
}
}