Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1170 → Rev 1175

/trunk/src/org/tela_botanica/del/client/services/rest/async/ModificationPreferencesCallback.java
New file
0,0 → 1,15
package org.tela_botanica.del.client.services.rest.async;
 
/**
* Objet passé en paramètre d'un service de modification des préférences utilisateur
* @author LIENS
*
*/
public abstract class ModificationPreferencesCallback extends PHPCallback<String>{
 
@Override
public String parserJSON(String retourService) {
return null;
}
 
}
/trunk/src/org/tela_botanica/del/client/services/rest/async/ListePreferencesCallback.java
New file
0,0 → 1,19
package org.tela_botanica.del.client.services.rest.async;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.json.client.JSONParser;
 
/**
* Objet passé en paramètre d'un service de chargement des préférences utilisateur
*
*/
public abstract class ListePreferencesCallback extends PHPCallback<HashMap<String, String>>{
 
@Override
public HashMap<String, String> parserJSON(String retourService) {
return UtilitairesServiceResultat.parserPreferencesUtilisateur(JSONParser.parseStrict(retourService));
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/PreferencesServiceConcret.java
New file
0,0 → 1,72
package org.tela_botanica.del.client.services.rest;
 
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
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;
 
public class PreferencesServiceConcret implements PreferencesService {
private String baseUrl;
 
public PreferencesServiceConcret() {
Config config = new Config();
this.baseUrl = config.getServiceBaseUrl();
}
public PreferencesServiceConcret(Config config) {
this.baseUrl = config.getServiceBaseUrl();
}
 
@Override
public void modifierPreferences(Utilisateur utilisateur, HashMap<String, String> preferences, ModificationPreferencesCallback callback) {
String idUtilisateur = utilisateur.getId();
String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, urlService);
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = assemblerRequeteModification(preferences);
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
private String assemblerRequeteModification(HashMap<String, String> preferences) {
Window.alert(""+preferences.size());
String chaine = "";
Iterator<String> it = preferences.keySet().iterator();
while (it.hasNext()) {
String cle = it.next();
if(!chaine.equals("")) {
chaine += "&";
}
chaine += cle+"="+preferences.get(cle);
}
return chaine;
}
 
@Override
public void chargerPreferences(Utilisateur utilisateur,
ListePreferencesCallback callback) {
String idUtilisateur = utilisateur.getId();
String urlService = baseUrl+"utilisateurs/"+idUtilisateur+"/preferences/";
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlService);
callback.setMode(ModeRequete.LECTURE);
try {
rb.sendRequest(null, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/PreferencesService.java
New file
0,0 → 1,14
package org.tela_botanica.del.client.services.rest;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
 
public interface PreferencesService {
public void modifierPreferences(Utilisateur utilisateur, HashMap<String, String> preferences, ModificationPreferencesCallback modificationPreferencesCallback);
public void chargerPreferences(Utilisateur utilisateur, ListePreferencesCallback listePreferencesCallbackCallback);
 
}
/trunk/src/org/tela_botanica/del/client/composants/preferences/PreferencesPresenteur.java
New file
0,0 → 1,89
package org.tela_botanica.del.client.composants.preferences;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.EvenementChangementPreferences;
import org.tela_botanica.del.client.services.rest.PreferencesService;
import org.tela_botanica.del.client.services.rest.async.ListePreferencesCallback;
import org.tela_botanica.del.client.services.rest.async.ModificationPreferencesCallback;
 
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;
 
public class PreferencesPresenteur extends Presenteur {
private Vue vue;
private PreferencesService preferencesService;
private HashMap<String, String> preferences = null;
public interface Vue extends IsWidget {
public void afficherMessageChargement();
public void cacherMessageChargement();
public String getValeurRecevoirMailsMesObs();
public String getValeurRecevoirMailsToutesObs();
public void setValeurRecevoirMailsMesObs(boolean valeur);
public void setValeurRecevoirMailsToutesObs(boolean valeur);
public HasClickHandlers getBoutonSauvegarder();
}
public PreferencesPresenteur(Vue vue, PreferencesService preferencesService) {
this.vue = vue;
this.preferencesService = preferencesService;
gererEvenements();
}
 
@Override
public void go(HasWidgets composite) {
preferences = CacheClient.getInstance().getUtilisateur().getPreferences();
if (preferences == null) {
preferencesService.chargerPreferences(CacheClient.getInstance().getUtilisateur(), new ListePreferencesCallback() {
@Override
public void surRetour(java.util.HashMap<String, String> objetRetour) {
preferences = objetRetour;
CacheClient.getInstance().getUtilisateur().setPreferences(objetRetour);
affecterValeursChamps(preferences);
vue.cacherMessageChargement();
}
});
} else {
vue.cacherMessageChargement();
affecterValeursChamps(preferences);
}
composite.add(vue.asWidget());
}
private void affecterValeursChamps(HashMap<String, String> preferences) {
vue.setValeurRecevoirMailsMesObs(getPreferenceBool(preferences.get("mail_notification_mes_obs")));
vue.setValeurRecevoirMailsToutesObs(getPreferenceBool(preferences.get("mail_notification_toutes_obs")));
}
private boolean getPreferenceBool(String valeur) {
return (valeur.equals("1")) ? true : false;
}
 
@Override
protected void gererEvenements() {
vue.getBoutonSauvegarder().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
vue.afficherMessageChargement();
preferences.put("mail_notification_mes_obs", vue.getValeurRecevoirMailsMesObs());
preferences.put("mail_notification_toutes_obs", vue.getValeurRecevoirMailsToutesObs());
preferencesService.modifierPreferences(CacheClient.getInstance().getUtilisateur(), preferences, new ModificationPreferencesCallback() {
@Override
public void surRetour(String objetRetour) {
vue.cacherMessageChargement();
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPreferences());
}
});
}
});
}
}
/trunk/src/org/tela_botanica/del/client/composants/preferences/PreferencesVue.java
New file
0,0 → 1,73
package org.tela_botanica.del.client.composants.preferences;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
 
public class PreferencesVue extends Composite implements PreferencesPresenteur.Vue {
@UiField
Panel panneauChargement, conteneurChamps;
@UiField
public CheckBox recevoirMailsMesObs;
@UiField
public CheckBox recevoirMailsToutesObs;
@UiField
public Button boutonSauvegarderPreferences;
 
interface PreferencesVueUIiBinder extends UiBinder<Widget, PreferencesVue> {
};
 
PreferencesVueUIiBinder uiBinder = GWT.create(PreferencesVueUIiBinder.class);
 
public PreferencesVue() {
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public void afficherMessageChargement() {
panneauChargement.setHeight(this.getOffsetHeight()+"px");
panneauChargement.setVisible(true);
conteneurChamps.setVisible(false);
}
 
@Override
public void cacherMessageChargement() {
panneauChargement.setVisible(false);
conteneurChamps.setVisible(true);
}
@Override
public void setValeurRecevoirMailsMesObs(boolean valeur) {
recevoirMailsMesObs.setValue(valeur);
}
@Override
public void setValeurRecevoirMailsToutesObs(boolean valeur) {
recevoirMailsToutesObs.setValue(valeur);
}
@Override
public String getValeurRecevoirMailsMesObs() {
return (recevoirMailsMesObs.getValue()) ? "1" : "0";
}
@Override
public String getValeurRecevoirMailsToutesObs() {
return (recevoirMailsToutesObs.getValue()) ? "1" : "0";
}
 
@Override
public HasClickHandlers getBoutonSauvegarder() {
return boutonSauvegarderPreferences;
}
}
/trunk/src/org/tela_botanica/del/client/composants/preferences/preferences.css
New file
0,0 → 1,57
.conteneurPreferences {
z-index: 1500;
padding: 30px;
padding-right: 21px;
padding-top: 20px;
background: white;
width: 370px;
margin: 0 auto;
margin-top: 5%;
padding-bottom:50px;
}
 
.messageTemporaire {
font-style: italic;
}
 
.boutonSauvegarder:hover {
background-color: #AAA
}
 
.colonneGauche,.colonneDroite {
width: 300px;
}
 
.colonneGauche {
padding-right: 30px
}
 
.colonneGauche select {
width: 100%
}
 
.colonneGauche input {
width: 95%
}
 
.boutonSauvegarder {
border: solid 1px #AAA;
cursor: pointer;
float: left;
margin-top: 10px;
margin-bottom: 5px;
margin-right: 5px;
float: right;
background: url(./img/add.png) no-repeat 5px 7px #DDD;
padding: 5px;
padding-left: 25px;
cursor: pointer
}
 
.zoneMailsMesObs {
margin-bottom: 10px;
}
 
.zoneMailsToutesObs {
margin-bottom: 10px;
}
/trunk/src/org/tela_botanica/del/client/composants/preferences/PreferencesVue.ui.xml
New file
0,0 → 1,29
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/>
<ui:style src="preferences.css" />
<g:HTMLPanel styleName="{style.conteneurPreferences}">
<g:Label text="{constants.preferences}" styleName="titre"/>
<g:Label styleName="petit {style.messageTemporaire}" text="{constants.messageTemporaireMails}" />
<g:HTML><br /></g:HTML>
<g:VerticalPanel ui:field="panneauChargement">
<g:Image url="./img/wait.gif"></g:Image>
</g:VerticalPanel>
<g:HTMLPanel styleName="{style.colonneGauche}" ui:field="conteneurChamps">
<g:HTMLPanel styleName="{style.zoneMailsMesObs}">
<g:Label text="{constants.recevoirMailsMesObs}" styleName="petit" />
<g:CheckBox ui:field="recevoirMailsMesObs"/>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneMailsToutesObs}">
<g:Label text="{constants.recevoirMailsToutesObs}" styleName="petit" />
<g:CheckBox ui:field="recevoirMailsToutesObs"/>
</g:HTMLPanel>
<g:Button text="{constants.sauvegarder}" ui:field="boutonSauvegarderPreferences" styleName="{style.boutonSauvegarder} arrondi"/>
</g:HTMLPanel>
</g:HTMLPanel>
 
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/FormulaireIdentificationVue.ui.xml
10,7 → 10,10
<g:HTMLPanel styleName="{style.zoneIdentification}">
<g:HTMLPanel ui:field="zoneUtilisateur">
<g:Label ui:field="connecter" styleName="{style.connecter}" text="{constants.seConnecter}" />
<g:HorizontalPanel><g:Label ui:field="email" styleName="{style.email}">Email</g:Label><g:Label ui:field="deconnecter" styleName="{style.deconnecter}" text="{constants.seDeconnecter}" /></g:HorizontalPanel>
<g:HorizontalPanel><g:Label ui:field="email" styleName="{style.email}">Email</g:Label>
<g:Label ui:field="preferences" styleName="{style.preferences}" text="{constants.preferences}"></g:Label>
<g:Label ui:field="deconnecter" styleName="{style.deconnecter}" text="{constants.seDeconnecter}" /></g:HorizontalPanel>
</g:HTMLPanel>
<g:HTMLPanel ui:field="zoneFormulaire" styleName="{style.zoneFormulaire} ombre-forte">
<g:Label ui:field="erreurIdentification" styleName="{style.erreur}"></g:Label>
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/FormulaireIdentificationPresenteur.java
1,7 → 1,17
package org.tela_botanica.del.client.composants.formulaires.identification;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur;
import org.tela_botanica.del.client.composants.preferences.PreferencesPresenteur;
import org.tela_botanica.del.client.composants.preferences.PreferencesVue;
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.ajoutdetermination.EvenementAjoutDetermination;
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.EvenementChangementPreferences;
import org.tela_botanica.del.client.navigation.evenement.changementPreferences.GestionnaireEvenementChangementPreferences;
import org.tela_botanica.del.client.services.rest.PreferencesServiceConcret;
import org.tela_botanica.del.client.services.rest.UtilisateurService;
import org.tela_botanica.del.client.services.rest.async.UtilisateurCallback;
 
17,6 → 27,8
import com.google.gwt.user.client.ui.IsWidget;
 
public class FormulaireIdentificationPresenteur {
FenetreOverlaySimplePresenteur fenetreModalePresenteur = null;
 
public abstract interface Vue extends IsWidget {
public void ajouterVue(HasWidgets composite);
48,6 → 60,8
public HasKeyPressHandlers getLoginHasKeyPressHandler();
 
public HasKeyPressHandlers getMotdepasseHasKeyPressHandler();
 
HasClickHandlers getZonePreferencesClickHandler();
}
 
private Vue vue;
100,6 → 114,26
 
vue.getLoginHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
vue.getMotdepasseHasKeyPressHandler().addKeyPressHandler(creerGestionnaireEvenementToucheEntree());
vue.getZonePreferencesClickHandler().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(utilisateur.estIdentifie()) {
PreferencesPresenteur preferencesPresenteur = new PreferencesPresenteur(new PreferencesVue(), new PreferencesServiceConcret());
fenetreModalePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreModalePresenteur.ouvrirFenetreModale(preferencesPresenteur);
}
}
});
BusEvenementiel.getInstance().addHandler(EvenementChangementPreferences.TYPE, new GestionnaireEvenementChangementPreferences() {
@Override
public void onChangementPreferences(EvenementChangementPreferences event) {
if(fenetreModalePresenteur != null && fenetreModalePresenteur.fenetreModaleEstOuverte()) {
fenetreModalePresenteur.fermerFenetreModale();
}
}
});
}
 
private void surTentativeLogin() {
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/FormulaireIdentificationVue.java
7,9 → 7,9
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
24,7 → 24,7
private static Binder uiBinder = GWT.create(Binder.class);
@UiField
Label connecter, deconnecter, email, erreurIdentification;
Label connecter, deconnecter, email, erreurIdentification, preferences;
@UiField Panel zoneFormulaire;
59,6 → 59,7
boolean estConnecte = utilisateur.estIdentifie();
connecter.setVisible(!estConnecte);
deconnecter.setVisible(estConnecte);
preferences.setVisible(estConnecte);
email.setText(utilisateur.getNomPrenomFormate());
email.setVisible(estConnecte);
124,4 → 125,9
public HasKeyPressHandlers getMotdepasseHasKeyPressHandler() {
return motdepasse;
}
@Override
public HasClickHandlers getZonePreferencesClickHandler() {
return preferences;
}
}
/trunk/src/org/tela_botanica/del/client/composants/formulaires/identification/identification.css
9,13 → 9,13
cursor: pointer
}
 
.deconnecter {
.deconnecter, .preferences {
text-decoration: underline;
color: blue;
cursor: pointer
}
 
.email {
.email, .preferences {
padding-right: 10px
}
 
/trunk/src/org/tela_botanica/del/client/modeles/Utilisateur.java
1,5 → 1,7
package org.tela_botanica.del.client.modeles;
 
import java.util.HashMap;
 
import org.tela_botanica.del.client.i18n.I18n;
 
public class Utilisateur {
9,6 → 11,7
private String courriel = "";
private String id = "0";
private boolean identifie = false;
private HashMap<String, String> preferences = null;
public Utilisateur(String id) {
this.id = id;
56,4 → 59,12
public String getNomPrenomFormate() {
return identifie ? prenom+" "+nom : I18n.getVocabulary().anonyme();
}
public HashMap<String, String> getPreferences() {
return preferences;
}
public void setPreferences(HashMap<String, String> preferences) {
this.preferences = preferences;
}
}
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
166,4 → 166,11
prenom = Prénom
courriel = Courriel
anonyme = Anonyme
identifie = Identifié
identifie = Identifié
 
#preferences utilisateur
messageTemporaireMails = Identiplante permettra bientôt de recevoir des courriels journaliers récapitulant les propositions, commentaires et observations nouvellement ajoutés. En cochant ces cases vous avez la possibilité de recevoir ces courriels dès qu'il seront mis en service (vous pouvez changer cela à tout moment en revenant sur cette interface)
recevoirMailsMesObs = Recevoir le mail récapitulant les commentaires et propositions faits sur mes observations (1 fois par jour)
recevoirMailsToutesObs = Recevoir le mail récapitulant les nouvelles observations proposées à la détermination (1 fois par jour)
sauvegarder = Sauvegarder
preferences = Préférences
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java
619,6 → 619,15
String login();
 
/**
* Translated "Identiplante permettra bientôt de recevoir des courriels journaliers récapitulant les propositions, commentaires et observations nouvellement ajoutés. En cochant ces cases vous avez la possibilité de recevoir ces courriels dès qu'il seront mis en service (vous pouvez changer cela à tout moment en revenant sur cette interface)".
*
* @return translated "Identiplante permettra bientôt de recevoir des courriels journaliers récapitulant les propositions, commentaires et observations nouvellement ajoutés. En cochant ces cases vous avez la possibilité de recevoir ces courriels dès qu'il seront mis en service (vous pouvez changer cela à tout moment en revenant sur cette interface)"
*/
@DefaultStringValue("Identiplante permettra bientôt de recevoir des courriels journaliers récapitulant les propositions, commentaires et observations nouvellement ajoutés. En cochant ces cases vous avez la possibilité de recevoir ces courriels dès qu'il seront mis en service (vous pouvez changer cela à tout moment en revenant sur cette interface)")
@Key("messageTemporaireMails")
String messageTemporaireMails();
 
/**
* Translated "Famille".
*
* @return translated "Famille"
808,6 → 817,15
String par();
 
/**
* Translated "Préférences".
*
* @return translated "Préférences"
*/
@DefaultStringValue("Préférences")
@Key("preferences")
String preferences();
 
/**
* Translated "Prénom".
*
* @return translated "Prénom"
880,6 → 898,24
String publiee();
 
/**
* Translated "Recevoir le mail récapitulant les commentaires et propositions faits sur mes observations (1 fois par jour)".
*
* @return translated "Recevoir le mail récapitulant les commentaires et propositions faits sur mes observations (1 fois par jour)"
*/
@DefaultStringValue("Recevoir le mail récapitulant les commentaires et propositions faits sur mes observations (1 fois par jour)")
@Key("recevoirMailsMesObs")
String recevoirMailsMesObs();
 
/**
* Translated "Recevoir le mail récapitulant les nouvelles observations proposées à la détermination (1 fois par jour)".
*
* @return translated "Recevoir le mail récapitulant les nouvelles observations proposées à la détermination (1 fois par jour)"
*/
@DefaultStringValue("Recevoir le mail récapitulant les nouvelles observations proposées à la détermination (1 fois par jour)")
@Key("recevoirMailsToutesObs")
String recevoirMailsToutesObs();
 
/**
* Translated "Recherche avancée".
*
* @return translated "Recherche avancée"
934,6 → 970,15
String rechercherTaxon();
 
/**
* Translated "Sauvegarder".
*
* @return translated "Sauvegarder"
*/
@DefaultStringValue("Sauvegarder")
@Key("sauvegarder")
String sauvegarder();
 
/**
* Translated "Se connecter".
*
* @return translated "Se connecter"
/trunk/src/org/tela_botanica/del/client/navigation/evenement/changementPreferences/EvenementChangementPreferences.java
New file
0,0 → 1,22
package org.tela_botanica.del.client.navigation.evenement.changementPreferences;
 
import com.google.gwt.event.shared.GwtEvent;
 
public class EvenementChangementPreferences extends GwtEvent<GestionnaireEvenementChangementPreferences> {
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPreferences> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPreferences>();
 
public EvenementChangementPreferences() {
 
}
 
@Override
protected void dispatch(GestionnaireEvenementChangementPreferences handler) {
handler.onChangementPreferences(this);
}
 
@Override
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementChangementPreferences> getAssociatedType() {
return TYPE;
}
}
/trunk/src/org/tela_botanica/del/client/navigation/evenement/changementPreferences/GestionnaireEvenementChangementPreferences.java
New file
0,0 → 1,7
package org.tela_botanica.del.client.navigation.evenement.changementPreferences;
 
import com.google.gwt.event.shared.EventHandler;
 
public interface GestionnaireEvenementChangementPreferences extends EventHandler {
public void onChangementPreferences(EvenementChangementPreferences event);
}
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
432,6 → 432,26
 
return utilisateur;
}
/**
* Recupere un utilisateur à partir du JSON
*
* @param imageJson
* @return
*/
public static HashMap<String, String> parserPreferencesUtilisateur(JSONValue valeurJson) {
JSONObject utilisateurJson = valeurJson.isObject();
HashMap<String, String> preferences = new HashMap<String, String>();
JSONObject preferencesJson = utilisateurJson.get("preferences").isObject();
java.util.Iterator<String> it = preferencesJson.keySet().iterator();
while (it.hasNext()) {
String cle = it.next();
preferences.put(cle, preferencesJson.get(cle).isString().stringValue());
}
return preferences;
}
 
/**
* Retourne un objet {@link ProtocoleServiceResultat} à partir d'un objet