/branches/v1.5-carbone/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; |
} |
} |
/branches/v1.5-carbone/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: 75px; |
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; |
} |
/branches/v1.5-carbone/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> |
/branches/v1.5-carbone/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()); |
} |
}); |
} |
}); |
} |
} |