Subversion Repositories eFlore/Applications.cel

Rev

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

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