Subversion Repositories eFlore/Applications.cel

Rev

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