Subversion Repositories eFlore/Applications.cel

Rev

Rev 47 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.observation;
2
 
12 david 3
 
2 aperonnet 4
import org.tela_botanica.client.CarnetEnLigneMediateur;
12 david 5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.modeles.ListeObservation;
2 aperonnet 7
import org.tela_botanica.client.modeles.Observation;
12 david 8
import org.tela_botanica.client.vues.FormulaireSaisieObservationVue;
9
import org.tela_botanica.client.vues.ListeObservationVue;
41 jpm 10
import com.gwtext.client.core.EventObject;
12 david 11
import com.gwtext.client.widgets.Panel;
2 aperonnet 12
 
48 david 13
 
12 david 14
/**
15
 * Mediateur gérant les interactions entre vues et les echanges de données
16
 * C'est un singleton.
17
 * @author aurelien
18
 *
19
 */
47 david 20
public class ObservationMediateur {
12 david 21
 
22
	/**
23
	 * booleen qui verifie l'unicite de l'instance (donc static)
24
	 */
31 jpm 25
	private static boolean estInstancie = false ;
26
 
27
	/**
28
	 * pointeur sur le médiateur (pour le pattern singleton)
29
	 */
30
	private static ObservationMediateur thisMediateur = null ;
12 david 31
 
32
	/** Mediateur general de l'application carnet en ligne
33
	 *
34
	 *
35
	 */
36
 
37
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
38
 
39
 
40
	/**
41
	 * modele de données
42
	 */
43
	private ObservationModele observationModele = null ;
44
 
45
 
46
	/**
47
	 * panneau principal des Observation (onglet "observation")
48
	 */
49
	private final Panel panneauPrincipalObservation = new Panel("Observation");
50
 
51
 
52
	/**
53
	 * liste détaillée des Observations
54
	 */
55
	private ListeObservationVue listeObservation = null ;
56
 
57
	/**
58
	 * Saisie des Observations
59
	 */
60
 
61
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
62
 
48 david 63
 
64
 
12 david 65
	/**
66
	 * booleen explicitant s'il y a une selection en cours
67
	 */
68
	private boolean selection = false ;
47 david 69
 
12 david 70
 
71
 
72
	/**
73
	 * La liste des observations affichées en cours (verifier utilité)
74
	 */
75
 
76
	private ListeObservation cacheObservation = new ListeObservation(0) ;
77
	/**
78
 
79
 
80
 
81
	/**
82
	 * constructeur privé (on accède a la classe par la méthode getInstance
83
	 */
84
 
85
 
86
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
87
	{
88
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
89
 
90
		// on crée un modèle
91
		observationModele = ObservationModele.Instance(this);
92
 
93
 
48 david 94
 
12 david 95
		listeObservation = new ListeObservationVue(this);
96
 
97
 
98
		// Le formulaire de saisie / modification d'observation
99
 
100
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
2 aperonnet 101
 
12 david 102
 
103
		panneauPrincipalObservation.add(formulaireSaisieObservationVue);
104
 
105
		panneauPrincipalObservation.add(listeObservation);
106
 
107
 
108
 
2 aperonnet 109
 
12 david 110
	}
2 aperonnet 111
 
7 aperonnet 112
 
12 david 113
	/**
114
	 * Retourne une instance de manière unique
115
	 * @return l'instance unique du médiateur
116
	 */
117
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
118
	{
31 jpm 119
			if(!estInstancie || thisMediateur == null)
12 david 120
			{
121
				estInstancie = true ;
31 jpm 122
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
12 david 123
			}
31 jpm 124
 
125
			return thisMediateur ;
12 david 126
	}
127
 
128
 
129
 
130
	/**
131
	 * envoie au modèle une demande de mise a jour
132
	 */
2 aperonnet 133
 
7 aperonnet 134
 
12 david 135
	public void obtenirNombreObservation() {
136
 
137
 
138
			listeObservation.masquerChargement();
47 david 139
		    observationModele.obtenirNombreObservation(listeObservation) ;
12 david 140
 
2 aperonnet 141
	}
12 david 142
 
2 aperonnet 143
	/**
12 david 144
	 * envoie au modèle une demande de mise a jour
2 aperonnet 145
	 */
7 aperonnet 146
 
147
 
12 david 148
	public void obtenirListeObservation() {
149
 
7 aperonnet 150
 
47 david 151
			observationModele.obtenirListeObservation(listeObservation,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
152
 
153
 
31 jpm 154
	}
12 david 155
 
2 aperonnet 156
	/**
12 david 157
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
158
	 * sous forme de tableau [nom, valeur]
159
	 * @return Les noms et valeurs des filtres
2 aperonnet 160
	 */
12 david 161
	public String[][] renvoyerFiltres()
162
	{
41 jpm 163
		String[][] valeursFiltres = { {"",""} } ;
12 david 164
 
165
 
166
		return valeursFiltres ;
167
	}
2 aperonnet 168
 
7 aperonnet 169
 
12 david 170
	public String getIdentifiant() {
171
 
172
		return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
173
 
174
	}
2 aperonnet 175
 
176
 
12 david 177
	public Panel getPanneauPrincipalObservation() {
178
		return panneauPrincipalObservation;
2 aperonnet 179
	}
12 david 180
 
2 aperonnet 181
 
182
 
48 david 183
 
2 aperonnet 184
	/**
13 david 185
	 *
186
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne
187
	 * @param r : la vue demandeuse de donnee
188
	 * @param critere : les criteres de selection
189
	 */
12 david 190
 
13 david 191
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
12 david 192
 
13 david 193
		observationModele.obtenirListeReferentielCommune(r,critere) ;
2 aperonnet 194
 
12 david 195
 
2 aperonnet 196
	}
20 david 197
 
198
	/**
199
	 *
200
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne
201
	 * @param r : la vue demandeuse de donnee
202
	 * @param critere : les criteres de selection
203
	 */
204
 
205
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
206
 
207
		observationModele.obtenirListeReferentielNom(r,critere) ;
2 aperonnet 208
 
20 david 209
 
210
	}
2 aperonnet 211
 
12 david 212
 
20 david 213
	/**
214
	 *
215
	 * Lance la creation d'une observation
216
	 * @param r : la vue demandeuse de donnee
217
	 * @param critere : les criteres de selection
218
	 */
219
 
47 david 220
	public void ajouterObservation(Observation obs) {
20 david 221
 
47 david 222
	//	observationModele.ajouterObservation(this, obs) ;
20 david 223
 
224
	}
41 jpm 225
 
226
	public void clicListeObservation(int rowIndex) {
227
 
228
	}
2 aperonnet 229
 
41 jpm 230
 
231
	public void montrerContextMenu(EventObject e) {
232
 
233
 
234
 
235
	}
236
 
237
	public void doubleClicListeObservation(int rowIndex) {
238
 
239
 
240
	}
241
 
12 david 242
 
243
 
20 david 244
 
245
 
246
 
2 aperonnet 247
}