1,37 → 1,137 |
package org.tela_botanica.client.observation; |
|
|
import org.tela_botanica.client.interfaces.iRetourObservation; |
import org.tela_botanica.client.modeles.ObservationAsynchroneDAO; |
|
import com.google.gwt.i18n.client.Dictionary; |
import org.tela_botanica.client.interfaces.FournisseurListe; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Configuration; |
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO; |
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO; |
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO; |
|
public class ObservationModele { |
|
public class ObservationModele { |
|
|
private final String baseURL; |
|
/** |
* Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static) |
*/ |
private static boolean estInstancie = false ; |
|
public ObservationModele() { |
|
/** |
* La configuration en cours |
*/ |
private Configuration config = null; |
|
|
/** |
* Le médiateur associé au modèle |
*/ |
|
private ObservationMediateur observationMediateur = null ; |
|
|
|
|
/** |
* Retourne une instance de manière unique |
* @param im le médiateur à associer |
* @return l'instance du modèle |
*/ |
|
static ObservationModele Instance(ObservationMediateur observationMediateur) |
{ |
// si le modèle n'est pas encore instancié |
if(!estInstancie) |
{ |
// on en crée un nouveau |
estInstancie = true ; |
return new ObservationModele(observationMediateur); |
} |
else |
{ |
// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire |
return null ; |
} |
} |
|
|
|
private ObservationModele(ObservationMediateur observationMediateur) { |
|
baseURL=Dictionary.getDictionary("Parameters").get("serviceBaseUrl"); |
this.observationMediateur=observationMediateur; |
|
config = new Configuration(); |
|
|
} |
|
|
public void getNombreObservation(final iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre) { |
|
new ObservationAsynchroneDAO().getNombreObservation(baseURL, retour, identifiant, identifiantLocalite, localite, annee, mois, jour, lieudit, rechercheLibre ); |
|
/** |
* Appelle le DAO asynchrone pour obtenir le nombre d'observation |
* @param r le rafraichissable auxquel on enverra les données |
* @param taillePage |
*/ |
public void obtenirNombreObservation(Rafraichissable r) { |
|
String motsClesFiltres[][] = observationMediateur.renvoyerFiltres() ; |
|
// on rassemble les critères |
String[][] criteres = {{motsClesFiltres[0][0], motsClesFiltres[0][1]} } ; |
|
|
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages) |
|
NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ; |
noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ; |
|
} |
|
|
/** |
* Appelle le DAO asynchrone pour obtenir la liste des images |
* @param r le rafraichissable auxquel on enverra les données |
* @param taillePage |
*/ |
public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) { |
|
String motsClesFiltres[][] = observationMediateur.renvoyerFiltres() ; |
|
|
// ensuite on demande la page correspondante avec les mêmes critères |
String[][] criteres2 = { {"limite" ,""+taillePage },{"numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}} ; |
|
// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images |
|
ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this); |
loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2); |
} |
|
|
|
public void getListeObservation(iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre, int debut, int longueur) { |
|
public FournisseurListe obtenirFournisseurReferentielCommune() { |
|
new ObservationAsynchroneDAO().getListeObservation(baseURL, retour, identifiant, identifiantLocalite, localite, annee, mois, jour, lieudit, rechercheLibre, debut, longueur ); |
return new ListeReferentielCommuneAsynchroneDAO(this); |
|
} |
|
|
/** |
* Accesseur pour la configuration en cours d'utilisation |
* |
* @return la configuration |
*/ |
public Configuration getConfig() { |
|
return config; |
} |
|
|
|
|
|
|
} |