Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 10 | Rev 43 | 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
 
11 aperonnet 41
		ImageMediateur.Instance() ;
10 ddelon 42
		//new ImageMediateur(this);
9 ddelon 43
		new ObservationMediateur(this);
44
 
45
	}
46
 
47
 
48
	private void getEtatUtilisateur() {  // Pourrait devenir publique ...
49
 
50
// TODO : utiliser une factory ici : Avec Modele synchrone ou non, ou au niveau methode comme dans cette exemple
51
 
52
 
53
// Pas possible de traiter dans Modele car retour asynchrone devant etre traité ici.
54
 
55
		// if asynchrone
56
 
57
		if (async) {
58
		carnetEnLigneModele.getUtilisateurAsynchroneDAO(
59
				new iRetourUtilisateur() {
60
					public void onRetour(Utilisateur uti) {
61
						utilisateur=uti;
10 ddelon 62
					//	fireEvent(ETAT_CONNEXION);
9 ddelon 63
					}
64
 
65
 
66
				}
67
 
68
		);
69
 
70
		}
71
		// else if synchrone
72
		else {
73
 
74
		utilisateur= carnetEnLigneModele.getUtilisateurSynchroneDAO();
75
		_CarnetEnLigneMediateur();
76
 
77
		}
78
 
79
 
80
 
81
 
82
	}
83
 
84
 
85
	// Evenenements Applicatifs
10 ddelon 86
	/*
9 ddelon 87
	public void handleEvent(BaseEvent be) {
88
		if (be.type==CarnetEnLigneMediateur.ETAT_CONNEXION) {
89
		 _CarnetEnLigneMediateur(); // Fin initialisation
90
		}
91
	}
10 ddelon 92
	*/
9 ddelon 93
 
94
	// Methode publiques
95
 
96
	/**
97
	 * Recherche Identifiant utilisateur en cours et etat de connection
98
	 * @return Utilisateur
99
	 */
100
 
101
 
102
	public Utilisateur getUtilisateur() {
103
		return utilisateur;
104
	}
105
 
106
	/**
107
	 * Deconnecte l'utilisateur passe en parametre
108
	 * @param String uti (utilisateur connecte)
109
	 */
110
 
111
 
112
    public void deconnecterUtilisateur() {
113
 
114
 
115
			carnetEnLigneModele.deconnecterUtilisateur(
116
					new iRetourUtilisateur() {
117
						public void onRetour(Utilisateur uti) {
118
							utilisateur=uti;
10 ddelon 119
							//fireEvent(DECONNEXION);
9 ddelon 120
						}
121
 
122
 
123
					}, utilisateur.getIdentifiant()
124
 
125
			);
126
 
127
 
128
 
129
	}
130
 
131
	public void connecterUtilisateur(String login, String password) {
132
 
133
		carnetEnLigneModele.connecterUtilisateur(
134
				new iRetourUtilisateur() {
135
					public void onRetour(Utilisateur uti) {
136
						utilisateur=uti;
10 ddelon 137
						//fireEvent(CONNEXION);
9 ddelon 138
					}
139
 
140
 
141
				}, login, password
142
 
143
		);
144
 
145
 
146
	}
147
 
148
 
149
}
150