Subversion Repositories eFlore/Applications.cel

Rev

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

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