Subversion Repositories eFlore/Applications.cel

Rev

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

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