Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 81 → Rev 82

/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
1,6 → 1,8
package org.tela_botanica.client.observation;
 
 
// TODO : systematiser les onQuelquechose, appelle depuis les vues
 
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ListeObservation;
16,13 → 18,11
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.data.Record;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.layout.VerticalLayout;
 
 
/**
235,12 → 235,97
thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
}
return thisMediateur ;
}
 
// ACTIONS a entreprendre lors d'un evenement particulier
/**
* Lors du raffraichissement de la liste d'observation
*/
public void onRafraichissementListeObservations() {
obtenirListeEntiteGeographique();
cacheObservation = listeObservation.getCacheListeObservation() ;
if(cacheObservation.size() == 0)
{
formulaireSaisieObservationVue.viderChampsObservation() ;
}
carnetEnLigneMediateur.donneesRafraichies(cacheObservation) ;
 
}
/**
*
* TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation
* est appelé lors d'un clic de souris sur un enregistrement de la liste le
* médiateur gère alors les conséquences
*
* @param rowIndex
* le numéro de ligne selectionné
*/
public void onClicListeObservation(int rowIndex, String ordreObservation) {
Observation obs = cacheObservation.get(ordreObservation) ;
// Affichage de la carte de repartition correspondante
String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
 
// affichage des détails dans le formulaire d'observation
formulaireSaisieObservationVue.rafraichir(obs, false) ;
 
// Affichage de l'image correspondante
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
 
 
}
 
 
// ACCES au Modèle
// C du CRUD
/**
* TODO : afficher un message du type "observation ajouté".
* Lance la creation d'une observation
* @param obs : l'observation saisie
*/
public void ajouterObservation(Observation obs) {
// On raffraichi la liste d'observation
observationModele.ajouterObservation(listeObservation, obs) ;
}
// R du CRUD
/**
* Demande au modele le nombre d'Observation à afficher
* TODO : grouper cette demande avec la demande d'affichage de liste ?
*/
253,20 → 338,16
}
 
public void obtenirListeObservation() {
obtenirListeObservation(listeObservation);
}
/**
* Demande au modele le detail dess Observations à afficher
* Demande au modele le detail des Observations à afficher
* TODO : grouper cette demande avec la demande d'affichage de liste ?
* @param r : la vue demandeuse de donnee
*/
 
 
public void obtenirListeObservation() {
listeObservation.masquerChargement() ;
formulaireSaisieObservationVue.viderChampsObservation() ;
observationModele.obtenirListeObservation(listeObservation,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
}
public void obtenirListeObservation(Rafraichissable r) {
275,45 → 356,63
observationModele.obtenirListeObservation(r,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
}
 
/**
* C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
* sous forme de tableau [nom, valeur]
* @return Les noms et valeurs des filtres
* Envoie au modèle une demande pour obtenir l'arbre des localites
*
* @param r
* le raffraichissable qui a demandé la mise à jour
*/
public String[][] renvoyerFiltres()
{
String[][] valeursFiltres = { {"",""} } ;
public void obtenirListeEntiteGeographique() {
observationModele.obtenirListeEntiteGeographique(filtres.getarbreEntiteGeographiqueObservationFiltreVue());
return valeursFiltres ;
}
// U du CRUD
 
 
/**
* Retourne l'identifiant de l'utilisateur connecte
* @return : identifiant de l'utilisateur connecte
*/
public String getIdentifiant() {
public void modifierObservation(Observation obs) {
return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
// On raffraichi la liste d'observation
observationModele.modifierObservation(listeObservation, obs) ;
}
}
 
 
// D du CRUD
/**
*
* @return
*
* TODO : afficher un message du type "observation modifie".
* Lance la modification d'une observation
* @param obs : l'observation a modifier
*/
public Panel getPanneauPrincipalObservation() {
return panneauPrincipalObservation;
public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
if(listeObservation.getSelectionModel().getCount() > 0)
{
if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
observationModele.supprimerObservation(r,numeroOrdre) ;
}
}
}
 
 
 
// Assistants de saisie
/**
*
* Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne
328,6 → 427,8
}
/**
*
* Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne
341,85 → 442,52
 
}
 
 
// Etat du syteme
/**
* TODO : afficher un message du type "observation ajouté".
* Lance la creation d'une observation
* @param obs : l'observation saisie
* C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
* sous forme de tableau [nom, valeur]
* @return Les noms et valeurs des filtres
*/
public void ajouterObservation(Observation obs) {
public String[][] renvoyerFiltres()
{
String[][] valeursFiltres = { {"",""} } ;
// On raffraichi la liste d'observation
observationModele.ajouterObservation(listeObservation, obs) ;
return valeursFiltres ;
}
 
/**
* TODO : afficher un message du type "observation modifie".
* Lance la modification d'une observation
* @param obs : l'observation a modifier
* Retourne l'identifiant de l'utilisateur connecte
* @return : identifiant de l'utilisateur connecte
*/
public void modifierObservation(Observation obs) {
public String getIdentifiant() {
// On raffraichi la liste d'observation
observationModele.modifierObservation(listeObservation, obs) ;
}
return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
if(listeObservation.getSelectionModel().getCount() > 0)
{
if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
observationModele.supprimerObservation(r,numeroOrdre) ;
}
}
}
 
 
/**
*
* TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation
* est appelé lors d'un clic de souris sur un enregistrement de la liste le
* médiateur gère alors les conséquences
* @return
*
* @param rowIndex
* le numéro de ligne selectionné
*/
public void clicListeObservation(int rowIndex, String ordreObservation) {
public Panel getPanneauPrincipalObservation() {
return panneauPrincipalObservation;
}
Observation obs = cacheObservation.get(ordreObservation) ;
// Affichage de la carte de repartition correspondante
String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
 
// affichage des détails dans le formulaire d'observation
formulaireSaisieObservationVue.rafraichir(obs, false) ;
 
// Affichage de l'image correspondante
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
 
 
}
 
 
435,6 → 503,9
}
 
 
// Getters
public PanneauFiltresObservationVues getPanneauFiltres() {
return filtres;
442,36 → 513,9
}
 
 
/**
* Envoie au modèle une demande pour obtenir l'arbre des localites
*
* @param r
* le raffraichissable qui a demandé la mise à jour
*/
public void obtenirListeEntiteGeographique() {
observationModele.obtenirListeEntiteGeographique(filtres.getarbreEntiteGeographiqueObservationFiltreVue());
}
 
 
public void donneesRafraichies(Object nouvelleDonnees) {
carnetEnLigneMediateur.donneesRafraichies(nouvelleDonnees) ;
}
 
 
public void rafraichirCacheObservation(Object nouvelleDonnees) {
if(nouvelleDonnees instanceof ListeObservation) {
cacheObservation = (ListeObservation)nouvelleDonnees ;
if(cacheObservation.size() == 0)
{
formulaireSaisieObservationVue.viderChampsObservation() ;
}
donneesRafraichies(nouvelleDonnees) ;
}
}
}
/trunk/src/org/tela_botanica/client/vues/ListeObservationVue.java
76,6 → 76,7
*/
private ColumnModel modeleColonnes;
 
/**
* Store qui contient les données à afficher
*/
105,6 → 106,7
private int nbElements = 0 ;
private ListeObservation cacheListeObservation = null;
/**
* Constructeur sans arguments (privé car ne doit pas être utilisé)
257,7 → 259,7
// on notifie le médiateur et on lui passe le nuémro de ligne
Record rd = getSelectionModel().getSelected();
String ordreObservation = rd.getAsString("ordre_observation") ;
observationMediateur.clicListeObservation(rowIndex,ordreObservation);
observationMediateur.onClicListeObservation(rowIndex,ordreObservation);
}
 
455,13 → 457,11
demasquerChargement();
observationMediateur.rafraichirCacheObservation(nouvelleDonnees) ;
cacheListeObservation=data;
observationMediateur.onRafraichissementListeObservations();
//TODO : a ce niveau ?
if (repandreRafraichissement) {
observationMediateur.obtenirListeEntiteGeographique();
}
 
}
480,11 → 480,11
changerPageMaxEtCourante(pageMax,pageEncours,taillePage,pages[0]) ;
masquerChargement();
observationMediateur.obtenirListeObservation();
observationMediateur.obtenirListeObservation(this);
}
// si l'on a reçu une Observation FIXME : avoir ici une observation telle que cree ....
// si l'on a reçu une Observation
if(nouvelleDonnees instanceof Observation) {
500,14 → 500,19
}
else { // Modification d'une observation
masquerChargement();
 
observationMediateur.obtenirNombreObservation();
/*
Record rd = getSelectionModel().getSelected();
rd.set("nomSaisi_observation",obs.getNomSaisi());
// FIXME : nom retenu vide !!!!
rd.set("nomRetenu_observation",obs.getNomRetenu());
rd.set("lieu_observation",obs.getLieudit());
rd.set("date_observation",obs.getDate());
*/
526,6 → 531,10
// GESTION DE LA PAGINATION
 
public ListeObservation getCacheListeObservation() {
return cacheListeObservation;
}
 
/**
* Calcule le nombre de pages nécessaires pour afficher un nombre d'élements donnés en fonction de la taille de page
* en cours
/trunk/src/org/tela_botanica/client/vues/FormulaireSaisieObservationVue.java
563,6 → 563,8
}
// On recoit une observation dont on veut afficher le detail
if(nouvelleDonnees instanceof Observation)
{
Observation obs = (Observation)nouvelleDonnees ;
569,6 → 571,8
afficherDetailsObservation(obs) ;
}
// Sur Mise à jour ou suppression d'une suppression ?
if(nouvelleDonnees instanceof String)
{
String str = (String)nouvelleDonnees ;