New file |
0,0 → 1,256 |
package org.tela_botanica.client.observation; |
|
|
|
|
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 implements iMediateur{ |
|
|
// 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; |
} |
} |
|
*/ |
|
|
|
|
|
|
|
} |