Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client;import net.mygwt.ui.client.event.BaseEvent;import net.mygwt.ui.client.event.Listener;import net.mygwt.ui.client.util.Observable;import org.tela_botanica.client.image.ImageMediateur;import org.tela_botanica.client.interfaces.iMediateur;import org.tela_botanica.client.interfaces.iRetourUtilisateur;import org.tela_botanica.client.modeles.Utilisateur;import org.tela_botanica.client.observation.ObservationMediateur;public class CarnetEnLigneMediateur extends Observable implements iMediateur, Listener {// Evenenementsfinal static public int ETAT_CONNEXION=1;final static public int DECONNEXION=2;final static public int CONNEXION = 3;private final CarnetEnLigneModele carnetEnLigneModele;private Utilisateur utilisateur=null;// Fonctionnement servicecsprivate boolean async=true;public CarnetEnLigneMediateur() {carnetEnLigneModele=new CarnetEnLigneModele();addListener(ETAT_CONNEXION,this);getEtatUtilisateur(); // Alimente Objet Utilisateur}/*** Fin construction (est appelle sur reception evenement Applicatif ETAT_CONNEXION)**/private void _CarnetEnLigneMediateur() {new ImageMediateur(this);new ObservationMediateur(this);}private void getEtatUtilisateur() { // Pourrait devenir publique ...// TODO : utiliser une factory ici : Avec Modele synchrone ou non, ou au niveau methode comme dans cette exemple// Pas possible de traiter dans Modele car retour asynchrone devant etre traité ici.// if asynchroneif (async) {carnetEnLigneModele.getUtilisateurAsynchroneDAO(new iRetourUtilisateur() {public void onRetour(Utilisateur uti) {utilisateur=uti;fireEvent(ETAT_CONNEXION);}});}// else if synchroneelse {utilisateur= carnetEnLigneModele.getUtilisateurSynchroneDAO();_CarnetEnLigneMediateur();}}// Evenenements Applicatifspublic void handleEvent(BaseEvent be) {if (be.type==CarnetEnLigneMediateur.ETAT_CONNEXION) {_CarnetEnLigneMediateur(); // Fin initialisation}}// Methode publiques/*** Recherche Identifiant utilisateur en cours et etat de connection* @return Utilisateur*/public Utilisateur getUtilisateur() {return utilisateur;}/*** Deconnecte l'utilisateur passe en parametre* @param String uti (utilisateur connecte)*/public void deconnecterUtilisateur() {carnetEnLigneModele.deconnecterUtilisateur(new iRetourUtilisateur() {public void onRetour(Utilisateur uti) {utilisateur=uti;fireEvent(DECONNEXION);}}, utilisateur.getIdentifiant());}public void connecterUtilisateur(String login, String password) {carnetEnLigneModele.connecterUtilisateur(new iRetourUtilisateur() {public void onRetour(Utilisateur uti) {utilisateur=uti;fireEvent(CONNEXION);}}, login, password);}}