Subversion Repositories eFlore/Applications.cel

Rev

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

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