Subversion Repositories eFlore/Applications.cel

Rev

Rev 26 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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