Subversion Repositories eFlore/Archives.cel-v2

Rev

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