Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1174 → Rev 1175

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