Subversion Repositories eFlore/Applications.cel

Rev

Rev 13 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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