Subversion Repositories eFlore/Applications.cel

Rev

Rev 2 | Rev 12 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client;
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.interfaces.iRetourUtilisateur;
5
import org.tela_botanica.client.modeles.Utilisateur;
6
import org.tela_botanica.client.observation.ObservationMediateur;
7
 
7 aperonnet 8
public class CarnetEnLigneMediateur {
2 aperonnet 9
 
10
	// Evenenements
7 aperonnet 11
	final static public int ETAT_CONNEXION = 1;
12
	final static public int DECONNEXION = 2;
13
	final static public int CONNEXION = 3;
14
 
2 aperonnet 15
	private final CarnetEnLigneModele carnetEnLigneModele;
7 aperonnet 16
	private Utilisateur utilisateur = null;
17
 
2 aperonnet 18
	// Fonctionnement servicecs
7 aperonnet 19
	private boolean async = true;
2 aperonnet 20
 
21
	public CarnetEnLigneMediateur() {
7 aperonnet 22
 
23
		carnetEnLigneModele = new CarnetEnLigneModele();
24
		// addListener(ETAT_CONNEXION,this);
25
		getEtatUtilisateur(); // Alimente Objet Utilisateur
26
 
2 aperonnet 27
	}
7 aperonnet 28
 
2 aperonnet 29
	/**
7 aperonnet 30
	 * Fin construction (est appelle sur reception evenement Applicatif
31
	 * ETAT_CONNEXION)
32
	 *
2 aperonnet 33
	 */
7 aperonnet 34
 
2 aperonnet 35
	private void _CarnetEnLigneMediateur() {
36
 
7 aperonnet 37
		ImageMediateur.Instance();
38
		new ObservationMediateur(this);
39
 
2 aperonnet 40
	}
7 aperonnet 41
 
42
	private void getEtatUtilisateur() { // Pourrait devenir publique ...
43
 
44
		// TODO : utiliser une factory ici : Avec Modele synchrone ou non, ou au
45
		// niveau methode comme dans cette exemple
46
 
47
		// Pas possible de traiter dans Modele car retour asynchrone devant etre
48
		// traité ici.
49
 
50
		// if asynchrone
51
 
2 aperonnet 52
		if (async) {
7 aperonnet 53
			carnetEnLigneModele
54
					.getUtilisateurAsynchroneDAO(new iRetourUtilisateur() {
55
						public void onRetour(Utilisateur uti) {
56
							utilisateur = uti;
57
							// fireEvent(ETAT_CONNEXION);
58
						}
59
 
2 aperonnet 60
					}
61
 
7 aperonnet 62
					);
63
 
2 aperonnet 64
		}
7 aperonnet 65
		// else if synchrone
2 aperonnet 66
		else {
67
 
7 aperonnet 68
			utilisateur = carnetEnLigneModele.getUtilisateurSynchroneDAO();
69
			_CarnetEnLigneMediateur();
2 aperonnet 70
 
71
		}
72
 
73
	}
74
 
75
	// Evenenements Applicatifs
76
	/*
7 aperonnet 77
	 * public void handleEvent(BaseEvent be) { if
78
	 * (be.type==CarnetEnLigneMediateur.ETAT_CONNEXION) {
79
	 * _CarnetEnLigneMediateur(); // Fin initialisation } }
80
	 */
81
 
2 aperonnet 82
	// Methode publiques
83
	/**
84
	 * Recherche Identifiant utilisateur en cours et etat de connection
7 aperonnet 85
	 *
2 aperonnet 86
	 * @return Utilisateur
87
	 */
7 aperonnet 88
 
2 aperonnet 89
	public Utilisateur getUtilisateur() {
90
		return utilisateur;
91
	}
92
 
93
	/**
94
	 * Deconnecte l'utilisateur passe en parametre
95
	 */
7 aperonnet 96
	public void deconnecterUtilisateur() {
2 aperonnet 97
 
7 aperonnet 98
		carnetEnLigneModele.deconnecterUtilisateur(new iRetourUtilisateur() {
99
			public void onRetour(Utilisateur uti) {
100
				utilisateur = uti;
101
				// fireEvent(DECONNEXION);
102
			}
2 aperonnet 103
 
7 aperonnet 104
		}, utilisateur.getIdentifiant()
2 aperonnet 105
 
7 aperonnet 106
		);
107
 
2 aperonnet 108
	}
109
 
110
	public void connecterUtilisateur(String login, String password) {
111
 
7 aperonnet 112
		carnetEnLigneModele.connecterUtilisateur(new iRetourUtilisateur() {
113
			public void onRetour(Utilisateur uti) {
114
				utilisateur = uti;
115
				// fireEvent(CONNEXION);
116
			}
117
 
118
		}, login, password
119
 
2 aperonnet 120
		);
121
 
122
	}
123
 
124
}