Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2053 → Rev 2054

/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;
}
}
/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/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/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/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/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/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
}
}
 
}