Rev 2 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.iRetourUtilisateur;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.observation.ObservationMediateur;
public class CarnetEnLigneMediateur {
// Evenenements
final 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 servicecs
private 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() {
ImageMediateur.Instance();
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 asynchrone
if (async) {
carnetEnLigneModele
.getUtilisateurAsynchroneDAO(new iRetourUtilisateur() {
public void onRetour(Utilisateur uti) {
utilisateur = uti;
// fireEvent(ETAT_CONNEXION);
}
}
);
}
// else if synchrone
else {
utilisateur = carnetEnLigneModele.getUtilisateurSynchroneDAO();
_CarnetEnLigneMediateur();
}
}
// Evenenements Applicatifs
/*
* public 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
*/
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
);
}
}