Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev Author Line No. Line
8 ddelon 1
package org.tela_botanica.client.observation;
2
 
3
 
4
 
5
 
6
import org.tela_botanica.client.CarnetEnLigneMediateur;
7
import org.tela_botanica.client.interfaces.iMediateur;
8
import org.tela_botanica.client.interfaces.iRetourObservation;
9
import org.tela_botanica.client.modeles.Observation;
10
 
11
import com.google.gwt.user.client.Window;
12
import com.google.gwt.user.client.ui.RootPanel;
13
import com.google.gwt.user.client.ui.VerticalPanel;
14
 
9 ddelon 15
public class ObservationMediateur implements iMediateur{
8 ddelon 16
 
17
 
18
	// Evenenements
19
	final static public  int NOMBRE_OBSERVATION=1;
20
 
21
	final static public  int LISTE_OBSERVATION=2;
22
 
23
 
24
	private CarnetEnLigneMediateur carnetEnLigneMediateur=null;  // Mediateur General
25
	private final ObservationModele observationModele=new ObservationModele();
26
 
27
	private Observation observation=null;
28
 
29
	// Variable interne
30
	private final String texteDeconnexion="Utilisez ce carnet en ligne pour saisir vos observations, <u>identifiez-vous</u> pour les transmettre à Tela Botanica";
31
 
32
	// Composants graphiques
33
 
34
	private EtatConnexionVue etatConnexionVue=null; // Vue Etat de la connexion utilisateur
35
	private FormulaireDeConnexionVue formulaireDeConnexionVue=null; // Formulaire de connexion utilisateur
36
	private ListeObservationsVue listeObservationsVue = null;  // Liste de releves
37
 
38
    //
39
 
40
 
41
	public ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur) {
42
 
43
 
44
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
45
 
46
		etatConnexionVue=new EtatConnexionVue(this);
47
		listeObservationsVue=new ListeObservationsVue(this);
48
 
49
		VerticalPanel panel=new VerticalPanel();
50
 
51
		panel.add(etatConnexionVue);
52
 
53
		panel.add(listeObservationsVue);
54
 
55
 
56
		RootPanel.get().add(panel);
57
 
58
		onInitialisation();
59
 
60
	}
61
 
62
 
63
	/// Methodes privees
64
 
65
	/**
66
	 *
67
	 * Initialisations
68
	 *
69
	 */
70
 
71
	private void onInitialisation() {
72
 
73
 
74
		afficheEtatConnexion();
75
		onFiltrageListeObservation("all","all","all");
76
 
77
 
78
	}
79
 
80
	// Filtre  selection lieu
81
 
82
	/**
83
	 * Action sur selection d'un lieu : affichage de la liste des taxons correspondants au filtrage
84
	 */
85
 
86
	public void onFiltrageListeObservation(String id_loc, String loc,String lieu) {
87
 
88
		// Positionnement Filtre affichage
89
		listeObservationsVue.setIdLocation(id_loc);
90
		listeObservationsVue.setLocalite(loc);
91
		listeObservationsVue.setLieudit(lieu);
92
		listeObservationsVue.initialiser();
93
 
94
		// Affichage des filtres
95
		listeObservationsVue.displayFilter();
96
 
97
 
98
	}
99
 
100
 
101
 
102
 
103
 
104
	/// UTILISATEUR
105
 
106
 
107
	/**
108
	 *  Affichage etat de la connexion
109
	 */
110
 
111
 
112
	private void afficheEtatConnexion() {
113
		 if (!carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
114
			    etatConnexionVue.setEtat(texteDeconnexion,false);
115
		 }
116
		 else {
117
		    etatConnexionVue.setEtat(carnetEnLigneMediateur.getUtilisateur().getIdentifiant()+ " (deconnexion)",true);
118
		 }
119
 
120
	}
121
 
122
 
123
	/**
124
	 *
125
	 * Affichage boite de connexion
126
	 *
127
	 */
128
 
129
	public void afficherDialogueConnexion() {
130
 
131
		  // TODO : singleton ?
132
		  formulaireDeConnexionVue = new FormulaireDeConnexionVue(this);
133
 
134
		  // Position it roughly in the middle of the screen.
135
		  int left = (Window.getClientWidth() - 512) / 2;
136
		  int top = (Window.getClientHeight() - 256) / 2;
137
		  formulaireDeConnexionVue.setPopupPosition(left, top);
138
		  formulaireDeConnexionVue.show();
139
 
140
	}
141
 
142
 
143
	/**
144
	 * Deconnexion de l'utilisateur en cours
145
	 */
146
 
147
	public void deconnecterUtilisateur() {
148
 
9 ddelon 149
	//	carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.DECONNEXION,this);
8 ddelon 150
		carnetEnLigneMediateur.deconnecterUtilisateur();
151
 
152
	}
153
 
154
 
155
	/**
156
	 * Tentative de connexion utilisateur
157
	 * @param login
158
	 * @param password
159
	 */
160
 
161
 
162
	public void connecterUtilisateur(String login, String password) {
163
 
9 ddelon 164
	//	carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.CONNEXION,this);
8 ddelon 165
		carnetEnLigneMediateur.connecterUtilisateur(login, password);
166
 
167
	}
168
 
169
 
170
 
171
	/// OBSERVATION
172
 
173
	/**
174
	 * Recherche nombre d'enregistrement pour l'utilisateur et la localite en cours
175
	 *
176
	 */
177
 
178
 
179
	public void getNombreObservation (String identifiantLocalite, String localite, String annee,  String mois,  String jour, String lieudit, String rechercheLibre ) {
180
 
181
 
182
		observationModele.getNombreObservation(
183
				new iRetourObservation() {
184
					public void onRetour(Observation obs) {
185
						observation=obs;
9 ddelon 186
						//fireEvent(NOMBRE_OBSERVATION);
8 ddelon 187
					}
188
 
189
 
190
				}, carnetEnLigneMediateur.getUtilisateur().getIdentifiant(), identifiantLocalite, localite , annee, mois, jour, lieudit ,rechercheLibre
191
 
192
		);
193
 
194
 
195
 
196
	}
197
 
198
	 public void getListeObservation (String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre, int debut, int longueur) {
199
 
200
 
201
			observationModele.getListeObservation(
202
					new iRetourObservation() {
203
						public void onRetour(Observation obs) {
204
							observation=obs;
9 ddelon 205
							//fireEvent(LISTE_OBSERVATION);
8 ddelon 206
						}
207
 
208
 
209
					}, carnetEnLigneMediateur.getUtilisateur().getIdentifiant(), identifiantLocalite, localite , annee, mois, jour, lieudit ,rechercheLibre, debut, longueur
210
 
211
			);
212
 
213
	}
214
 
215
 
216
 
217
	 public Observation getObservation() {
218
			return observation;
219
	}
220
 
221
 
222
 
223
 
224
	/// EVENEMENTS
225
 
226
/**
227
 * Evenements
228
 *
229
 */
9 ddelon 230
	/*
8 ddelon 231
	public void handleEvent(BaseEvent be) {
232
		switch (be.type) {
233
			case CarnetEnLigneMediateur.DECONNEXION:
234
				afficheEtatConnexion();
235
				break;
236
			case CarnetEnLigneMediateur.CONNEXION:
237
				if (carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
238
					formulaireDeConnexionVue.hide();
239
					afficheEtatConnexion();
240
				}
241
				else {
242
					formulaireDeConnexionVue.afficherMessageAlerte(); // Erreur identification
243
				}
244
				break;
245
		}
246
	}
247
 
9 ddelon 248
*/
8 ddelon 249
 
250
 
251
 
252
 
253
 
254
 
255
 
256
}