Subversion Repositories eFlore/Applications.cel

Rev

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