Subversion Repositories eFlore/Archives.cel-v2

Rev

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

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