/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/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/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/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"); |
} |
} |
/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(); |
} |
} |