Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1174 → Rev 1175

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