Subversion Repositories eFlore/Applications.cel

Rev

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

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