/trunk/src/org/tela_botanica/del/client/navigation/evenement/activiteutilisateur/GestionnaireEvenementActiviteUtilisateur.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.navigation.evenement.activiteutilisateur; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementActiviteUtilisateur extends EventHandler { |
public void onActiviteUtilisateur(EvenementActiviteUtilisateur event); |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/activiteutilisateur/EvenementActiviteUtilisateur.java |
---|
New file |
0,0 → 1,30 |
package org.tela_botanica.del.client.navigation.evenement.activiteutilisateur; |
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementActiviteUtilisateur extends GwtEvent<GestionnaireEvenementActiviteUtilisateur> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementActiviteUtilisateur> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementActiviteUtilisateur>(); |
private ActiviteUtilisateur activiteUtilisateur; |
public EvenementActiviteUtilisateur(ActiviteUtilisateur activiteUtilisateur) { |
this.activiteUtilisateur = activiteUtilisateur; |
} |
@Override |
protected void dispatch(GestionnaireEvenementActiviteUtilisateur handler) { |
handler.onActiviteUtilisateur(this); |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementActiviteUtilisateur> getAssociatedType() { |
return TYPE; |
} |
public ActiviteUtilisateur getActiviteUtilisateur() { |
return activiteUtilisateur; |
} |
} |
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
11,6 → 11,7 |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.Contributeur; |
import org.tela_botanica.del.client.modeles.Image; |
499,8 → 500,11 |
utilisateur = new Utilisateur(sessionId, idUtilisateur, prenomUtilisateur, nomUtilisateur, |
courrielUtilisateur, mdpHashUtilisateur, adminNiveau); |
utilisateur.setNbEvenements(nbEvtsUtilisateur); |
utilisateur.setDateDerniereConsultationEvenements(dateDerniereConsultationEvts); |
ActiviteUtilisateur activite = new ActiviteUtilisateur(); |
activite.setNbEvenements(nbEvtsUtilisateur); |
activite.setDateDerniereConsultationEvenements(dateDerniereConsultationEvts); |
utilisateur.setActivite(activite); |
} else { |
utilisateur = new Utilisateur(sessionId, idUtilisateur); |
} |
737,4 → 741,18 |
} |
return listePays; |
} |
public static ActiviteUtilisateur parserActiviteUtilisateurJson(JSONValue valeurJson) { |
JSONObject activiteJson = valeurJson.isObject(); |
String nbEvtsUtilisateur = activiteJson.get("nb_evenements").isString().stringValue(); |
String dateDerniereConsultationEvts = activiteJson.get("date_derniere_consultation_evenements").isString().stringValue(); |
ActiviteUtilisateur activite = new ActiviteUtilisateur(); |
activite.setNbEvenements(nbEvtsUtilisateur); |
activite.setDateDerniereConsultationEvenements(dateDerniereConsultationEvts); |
return activite; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/ResultatsIdentiplantePresenteur.java |
---|
7,6 → 7,7 |
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.ActiviteUtilisateur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.ModeTri; |
14,6 → 15,8 |
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.UtilisateurServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback; |
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; |
22,6 → 25,7 |
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.Timer; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
372,7 → 376,7 |
// 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(); |
int nbEvents = CacheClient.getInstance().getUtilisateur().getActivite().getNbEvenementsInt(); |
for (Observation observation : resultats.getObservations()) { |
List<Image> listeImagesObs = observation.getImages(); |
383,7 → 387,9 |
ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation, imagePrincipale); |
presenteur.go(vue.getZoneObservations()); |
if(nbEvents != 0 && i <= nbEvents) { |
// La taille de la page s'étant adaptée au nombre de nouveaux évènements, on applique |
// uniquement la mise en valeur sur la premiere |
if(nbEvents != 0 && i < nbEvents && cache.getPageCouranteRechercheObservations() == 1) { |
presenteur.mettreEnValeurEvenementsObs(); |
} |
i++; |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/moteur/MoteurIdentiplantePresenteur.java |
---|
7,6 → 7,8 |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation; |
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur; |
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; |
14,6 → 16,8 |
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.services.rest.UtilisateurServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback; |
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur; |
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue; |
20,6 → 24,7 |
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.Timer; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
62,6 → 67,7 |
} |
private Vue vue; |
private Timer timerRequeteActiviteUtilisateur = null; |
public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
73,7 → 79,7 |
ajouterMoteurRechercheAvancee(); |
gererEvenements(); |
gererAffichageOngletMonActivite(); |
gererTimerRequeteActiviteUtilisateur(); |
} |
private void gererAffichageOngletMonActivite() { |
87,8 → 93,9 |
if(!utilisateur.estIdentifie()) { |
activerOnglet("tous"); |
} else { |
if(utilisateur.getNbEvenementsInt() > 0) { |
vue.afficherNbEvenements(utilisateur.getNbEvenements()); |
if(utilisateur.getActivite().getNbEvenementsInt() > 0) { |
vue.afficherNbEvenements(utilisateur.getActivite().getNbEvenements()); |
CacheClient.ajouterAuTitreOngletNavigateur(" ("+utilisateur.getActivite().getNbEvenements()+")"); |
} |
} |
} |
147,7 → 154,7 |
@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(); |
int nbEvents = CacheClient.getInstance().getUtilisateur().getActivite().getNbEvenementsInt(); |
if(CacheClient.getInstance().getPasPagination() < nbEvents) { |
CacheClient.getInstance().setPasPagination(nbEvents); |
} |
154,10 → 161,36 |
activerOnglet("monactivite"); |
vue.cacherNbEvenements(); |
CacheClient.reinitialiserTitreOngletNavigateur(); |
} |
}); |
} |
public void gererTimerRequeteActiviteUtilisateur() { |
timerRequeteActiviteUtilisateur = new Timer() { |
@Override |
public void run() { |
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur(); |
if(utilisateur.estIdentifie()) { |
UtilisateurServiceConcret serviceUtilisateur = new UtilisateurServiceConcret(); |
serviceUtilisateur.obtenirActiviteUtilisateur(utilisateur.getId(), new ActiviteUtilisateurCallback() { |
@Override |
public void surRetour(ActiviteUtilisateur activite) { |
CacheClient.getInstance().getUtilisateur().setActivite(activite); |
if(activite.getNbEvenementsInt() > 0) { |
vue.afficherNbEvenements(activite.getNbEvenements()); |
CacheClient.ajouterAuTitreOngletNavigateur(" ("+activite.getNbEvenements()+")"); |
} |
} |
}); |
} |
} |
}; |
timerRequeteActiviteUtilisateur.scheduleRepeating(30000); |
} |
protected void activerOnglet(String onglet) { |
CacheClient.getInstance().setFiltreStatut(onglet); |
CacheClient.getInstance().setPageCouranteRechercheObservations(1); |
/trunk/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
16,6 → 16,7 |
import org.tela_botanica.del.client.utils.URLUtils; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.dom.client.Document; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.Window.Location; |
51,6 → 52,8 |
}; |
private ModeTri modeTri = ModeTri.TRI_ASCENDANT; |
private static String titreOngletNavigateur = ""; |
// Pour plus de simplicité on stocke une liste de pays où |
// la clé est le code iso et la valeur le pays |
// et une autre ou c'est l'inverse |
470,4 → 473,25 |
} |
} |
}-*/; |
public static void remplacerTitreOngletNavigateur(String titre) { |
if (Document.get() != null) { |
titreOngletNavigateur = Document.get().getTitle(); |
Document.get().setTitle(titre); |
} |
} |
public static void ajouterAuTitreOngletNavigateur(String titreSupplementaire) { |
if (Document.get() != null) { |
titreOngletNavigateur = titreOngletNavigateur.isEmpty() ? Document.get().getTitle() : titreOngletNavigateur; |
Document.get().setTitle(titreOngletNavigateur+titreSupplementaire); |
} |
} |
public static void reinitialiserTitreOngletNavigateur() { |
if (Document.get() != null) { |
titreOngletNavigateur = titreOngletNavigateur.isEmpty() ? Document.get().getTitle() : titreOngletNavigateur; |
Document.get().setTitle(titreOngletNavigateur); |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/UtilisateurService.java |
---|
1,5 → 1,6 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback; |
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback; |
public interface UtilisateurService { |
7,5 → 8,5 |
public void connecterUtilisateur(String login, String motDePasse, UtilisateurCallback callback); |
public void deconnecterUtilisateur(UtilisateurCallback callback); |
public void obtenirUtilisateur(UtilisateurCallback callback); |
public void obtenirActiviteUtilisateur(String idUtilisateur, ActiviteUtilisateurCallback callback); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ActiviteUtilisateurCallback.java |
---|
New file |
0,0 → 1,23 |
package org.tela_botanica.del.client.services.rest.async; |
import java.util.Map; |
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.json.client.JSONParser; |
/** |
* Objet passé en paramètre d'un service de recuperation d'un utilisateur |
* @author LIENS |
* |
*/ |
public abstract class ActiviteUtilisateurCallback extends PHPCallback<ActiviteUtilisateur> { |
@Override |
public ActiviteUtilisateur parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserActiviteUtilisateurJson(JSONParser.parseStrict(retourService)); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/UtilisateurServiceConcret.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.ActiviteUtilisateurCallback; |
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
51,4 → 52,15 |
} |
} |
@Override |
public void obtenirActiviteUtilisateur(String idUtilisateur, ActiviteUtilisateurCallback callback) { |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "utilisateurs/"+idUtilisateur+"/activite"); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
// TODO: handle exception |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/modeles/ActiviteUtilisateur.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.modeles; |
public class ActiviteUtilisateur { |
private String nbEvenements = "0"; |
private String dateDerniereConsultationEvenements = null; |
public String getNbEvenements() { |
return nbEvenements; |
} |
public int getNbEvenementsInt() { |
int nbEvents = 0; |
try { |
nbEvents = Integer.parseInt(nbEvenements); |
} catch (Exception e) { |
nbEvents = 0; |
} |
return nbEvents; |
} |
public void setNbEvenements(String nbEvenements) { |
this.nbEvenements = nbEvenements; |
} |
public String getDateDerniereConsultationEvenements() { |
return dateDerniereConsultationEvenements; |
} |
public void setDateDerniereConsultationEvenements(String dateDerniereConsultationEvenements) { |
this.dateDerniereConsultationEvenements = dateDerniereConsultationEvenements; |
} |
} |
/trunk/src/org/tela_botanica/del/client/modeles/Utilisateur.java |
---|
20,9 → 20,9 |
private boolean identifie = false; |
private HashMap<String, String> preferences = null; |
private String nbEvenements = "0"; |
private String dateDerniereConsultationEvenements = null; |
// TODO: avoir une liste d'activités avec des types différents |
private ActiviteUtilisateur activiteUtilisateur = new ActiviteUtilisateur(); |
public Utilisateur(String sessionId, String id) { |
this.id = id; |
this.sessionId = sessionId; |
103,30 → 103,12 |
sessionId + "\n" + adminNiveau + "\n"; |
return utilisateur; |
} |
public String getNbEvenements() { |
return nbEvenements; |
public void setActivite(ActiviteUtilisateur activite) { |
this.activiteUtilisateur = activite; |
} |
public int getNbEvenementsInt() { |
int nbEvents = 0; |
try { |
nbEvents = Integer.parseInt(nbEvenements); |
} catch (Exception e) { |
nbEvents = 0; |
} |
return nbEvents; |
public ActiviteUtilisateur getActivite() { |
return this.activiteUtilisateur; |
} |
public void setNbEvenements(String nbEvenements) { |
this.nbEvenements = nbEvenements; |
} |
public String getDateDerniereConsultationEvenements() { |
return dateDerniereConsultationEvenements; |
} |
public void setDateDerniereConsultationEvenements(String dateDerniereConsultationEvenements) { |
this.dateDerniereConsultationEvenements = dateDerniereConsultationEvenements; |
} |
} |