New file |
0,0 → 1,93 |
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 getValeurRecevoirMailsMesCom(); |
public String getValeurRecevoirMailsToutesObs(); |
public void setValeurRecevoirMailsMesObs(boolean valeur); |
public void setValeurRecevoirMailsMesCom(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.setValeurRecevoirMailsMesCom(getPreferenceBool(preferences.get("mail_notification_mes_com"))); |
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_mes_com", vue.getValeurRecevoirMailsMesCom()); |
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()); |
} |
}); |
} |
}); |
} |
} |