Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 8 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8 ddelon 1
package org.tela_botanica.client.observation;
2
 
3
 
4
 
49 ddelon 5
import org.tela_botanica.client.interfaces.FournisseurListe;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.modeles.Configuration;
8
import org.tela_botanica.client.modeles.ListeObservationAsynchroneDAO;
9
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO;
10
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO;
8 ddelon 11
 
12
 
49 ddelon 13
public class ObservationModele  {
14
 
8 ddelon 15
 
16
 
49 ddelon 17
	/**
18
	 * Booleen indiquant si le médiateur est instancié (l'instance doit être unique donc le booleen est static)
19
	 */
20
	private static boolean estInstancie = false ;
8 ddelon 21
 
49 ddelon 22
 
23
	/**
24
	 * La configuration en cours
25
	 */
26
	private Configuration config = null;
27
 
28
 
29
	/**
30
	 * Le médiateur associé au modèle
31
	 */
32
 
33
	private ObservationMediateur observationMediateur = null ;
34
 
35
 
36
 
37
 
38
	/**
39
	 * Retourne une instance de manière unique
40
	 * @param im le médiateur à associer
41
	 * @return l'instance du modèle
42
	 */
43
 
44
	static ObservationModele Instance(ObservationMediateur observationMediateur)
45
	{
46
		// si le modèle n'est pas encore instancié
47
		if(!estInstancie)
48
		{
49
			// on en crée un nouveau
50
			estInstancie = true ;
51
			return new ObservationModele(observationMediateur);
52
		}
53
		else
54
		{
55
			// sinon on renvoit null, interdisant explicitement la création d'un autre exemplaire
56
			return null ;
57
		}
58
	}
59
 
60
 
61
 
62
	private ObservationModele(ObservationMediateur observationMediateur) {
8 ddelon 63
 
49 ddelon 64
		this.observationMediateur=observationMediateur;
8 ddelon 65
 
49 ddelon 66
		config = new Configuration();
67
 
68
 
8 ddelon 69
	}
70
 
71
 
49 ddelon 72
 
73
	/**
74
	 * Appelle le DAO asynchrone pour obtenir le nombre d'observation
75
	 * @param r le rafraichissable auxquel on enverra les données
76
	 * @param taillePage
77
	 */
78
	public void obtenirNombreObservation(Rafraichissable r) {
8 ddelon 79
 
49 ddelon 80
		 	String motsClesFiltres[][] = observationMediateur.renvoyerFiltres() ;
81
 
82
			// on rassemble les critères
83
			String[][] criteres = {{motsClesFiltres[0][0], motsClesFiltres[0][1]} } ;
84
 
85
 
86
			// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
87
 
88
			NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ;
89
			noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ;
90
 
8 ddelon 91
	}
49 ddelon 92
 
93
 
94
	/**
95
	 * Appelle le DAO asynchrone pour obtenir la liste des images
96
	 * @param r le rafraichissable auxquel on enverra les données
97
	 * @param taillePage
98
	 */
99
	public void obtenirListeObservation(Rafraichissable r, int taillePage, int pageEncours) {
100
 
101
		 	String motsClesFiltres[][] = observationMediateur.renvoyerFiltres() ;
102
 
103
 
104
			// ensuite on demande la page correspondante avec les mêmes critères
105
			String[][] criteres2 = { {"limite" ,""+taillePage },{"numero_page",""+pageEncours}, {motsClesFiltres[0][0], motsClesFiltres[0][1]}} ;
106
 
107
			// et on crée un DAO auquel on les transmet et qui envoie une requete pour recevoir les images
108
 
109
			ListeObservationAsynchroneDAO loaDAO = new ListeObservationAsynchroneDAO(this);
110
			loaDAO.obtenirListeObservation(r, observationMediateur.getIdentifiant(), criteres2);
111
	}
112
 
8 ddelon 113
 
49 ddelon 114
 
115
	public FournisseurListe obtenirFournisseurReferentielCommune() {
8 ddelon 116
 
49 ddelon 117
		return new ListeReferentielCommuneAsynchroneDAO(this);
8 ddelon 118
 
119
	}
120
 
121
 
49 ddelon 122
	/**
123
	 * Accesseur pour la configuration en cours d'utilisation
124
	 *
125
	 * @return la configuration
126
	 */
127
	public Configuration getConfig() {
128
 
129
		return config;
130
	}
131
 
132
 
8 ddelon 133
 
49 ddelon 134
 
135
 
136
 
8 ddelon 137
}