Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 7 → Rev 8

/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
New file
0,0 → 1,259
package org.tela_botanica.client.observation;
 
 
 
import net.mygwt.ui.client.event.BaseEvent;
import net.mygwt.ui.client.event.Listener;
import net.mygwt.ui.client.util.Observable;
 
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.interfaces.iMediateur;
import org.tela_botanica.client.interfaces.iRetourObservation;
import org.tela_botanica.client.modeles.Observation;
 
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
 
public class ObservationMediateur extends Observable implements iMediateur, Listener {
 
 
// Evenenements
final static public int NOMBRE_OBSERVATION=1;
 
final static public int LISTE_OBSERVATION=2;
private CarnetEnLigneMediateur carnetEnLigneMediateur=null; // Mediateur General
private final ObservationModele observationModele=new ObservationModele();
 
private Observation observation=null;
 
// Variable interne
private final String texteDeconnexion="Utilisez ce carnet en ligne pour saisir vos observations, <u>identifiez-vous</u> pour les transmettre à Tela Botanica";
 
// Composants graphiques
private EtatConnexionVue etatConnexionVue=null; // Vue Etat de la connexion utilisateur
private FormulaireDeConnexionVue formulaireDeConnexionVue=null; // Formulaire de connexion utilisateur
private ListeObservationsVue listeObservationsVue = null; // Liste de releves
 
//
public ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur) {
 
this.carnetEnLigneMediateur=carnetEnLigneMediateur;
etatConnexionVue=new EtatConnexionVue(this);
listeObservationsVue=new ListeObservationsVue(this);
VerticalPanel panel=new VerticalPanel();
panel.add(etatConnexionVue);
panel.add(listeObservationsVue);
 
RootPanel.get().add(panel);
onInitialisation();
}
 
/// Methodes privees
 
/**
*
* Initialisations
*
*/
private void onInitialisation() {
afficheEtatConnexion();
onFiltrageListeObservation("all","all","all");
}
// Filtre selection lieu
/**
* Action sur selection d'un lieu : affichage de la liste des taxons correspondants au filtrage
*/
public void onFiltrageListeObservation(String id_loc, String loc,String lieu) {
 
// Positionnement Filtre affichage
listeObservationsVue.setIdLocation(id_loc);
listeObservationsVue.setLocalite(loc);
listeObservationsVue.setLieudit(lieu);
listeObservationsVue.initialiser();
 
// Affichage des filtres
listeObservationsVue.displayFilter();
 
}
 
 
 
/// UTILISATEUR
 
/**
* Affichage etat de la connexion
*/
private void afficheEtatConnexion() {
if (!carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
etatConnexionVue.setEtat(texteDeconnexion,false);
}
else {
etatConnexionVue.setEtat(carnetEnLigneMediateur.getUtilisateur().getIdentifiant()+ " (deconnexion)",true);
}
}
 
/**
*
* Affichage boite de connexion
*
*/
public void afficherDialogueConnexion() {
// TODO : singleton ?
formulaireDeConnexionVue = new FormulaireDeConnexionVue(this);
 
// Position it roughly in the middle of the screen.
int left = (Window.getClientWidth() - 512) / 2;
int top = (Window.getClientHeight() - 256) / 2;
formulaireDeConnexionVue.setPopupPosition(left, top);
formulaireDeConnexionVue.show();
}
 
/**
* Deconnexion de l'utilisateur en cours
*/
public void deconnecterUtilisateur() {
carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.DECONNEXION,this);
carnetEnLigneMediateur.deconnecterUtilisateur();
}
 
 
/**
* Tentative de connexion utilisateur
* @param login
* @param password
*/
public void connecterUtilisateur(String login, String password) {
carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.CONNEXION,this);
carnetEnLigneMediateur.connecterUtilisateur(login, password);
 
}
 
 
/// OBSERVATION
/**
* Recherche nombre d'enregistrement pour l'utilisateur et la localite en cours
*
*/
public void getNombreObservation (String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre ) {
 
observationModele.getNombreObservation(
new iRetourObservation() {
public void onRetour(Observation obs) {
observation=obs;
fireEvent(NOMBRE_OBSERVATION);
}
 
}, carnetEnLigneMediateur.getUtilisateur().getIdentifiant(), identifiantLocalite, localite , annee, mois, jour, lieudit ,rechercheLibre
);
}
 
public void getListeObservation (String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre, int debut, int longueur) {
 
observationModele.getListeObservation(
new iRetourObservation() {
public void onRetour(Observation obs) {
observation=obs;
fireEvent(LISTE_OBSERVATION);
}
 
}, carnetEnLigneMediateur.getUtilisateur().getIdentifiant(), identifiantLocalite, localite , annee, mois, jour, lieudit ,rechercheLibre, debut, longueur
);
 
}
 
 
public Observation getObservation() {
return observation;
}
 
 
 
/// EVENEMENTS
/**
* Evenements
*
*/
public void handleEvent(BaseEvent be) {
switch (be.type) {
case CarnetEnLigneMediateur.DECONNEXION:
afficheEtatConnexion();
break;
case CarnetEnLigneMediateur.CONNEXION:
if (carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
formulaireDeConnexionVue.hide();
afficheEtatConnexion();
}
else {
formulaireDeConnexionVue.afficherMessageAlerte(); // Erreur identification
}
break;
}
}
 
 
 
 
 
 
 
 
}