Subversion Repositories eFlore/Applications.cel

Rev

Rev 41 | 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
 
4
import java.util.Iterator;
2 aperonnet 5
import org.tela_botanica.client.CarnetEnLigneMediateur;
12 david 6
import org.tela_botanica.client.interfaces.FournisseurListe;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.ListeObservation;
2 aperonnet 9
import org.tela_botanica.client.modeles.Observation;
12 david 10
import org.tela_botanica.client.vues.FormulaireSaisieObservationVue;
11
import org.tela_botanica.client.vues.ListeObservationVue;
2 aperonnet 12
 
47 david 13
import com.google.gwt.user.client.Window;
41 jpm 14
import com.gwtext.client.core.EventObject;
12 david 15
import com.gwtext.client.data.ArrayReader;
16
import com.gwtext.client.data.FieldDef;
17
import com.gwtext.client.data.MemoryProxy;
18
import com.gwtext.client.data.RecordDef;
19
import com.gwtext.client.data.Store;
20
import com.gwtext.client.data.StringFieldDef;
21
import com.gwtext.client.widgets.Panel;
22
import com.gwtext.client.widgets.TabPanel;
2 aperonnet 23
 
12 david 24
/**
25
 * Mediateur gérant les interactions entre vues et les echanges de données
26
 * C'est un singleton.
27
 * @author aurelien
28
 *
29
 */
47 david 30
public class ObservationMediateur {
12 david 31
 
32
	/**
33
	 * booleen qui verifie l'unicite de l'instance (donc static)
34
	 */
31 jpm 35
	private static boolean estInstancie = false ;
36
 
37
	/**
38
	 * pointeur sur le médiateur (pour le pattern singleton)
39
	 */
40
	private static ObservationMediateur thisMediateur = null ;
12 david 41
 
42
	/** Mediateur general de l'application carnet en ligne
43
	 *
44
	 *
45
	 */
46
 
47
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
48
 
49
 
50
	/**
51
	 * modele de données
52
	 */
53
	private ObservationModele observationModele = null ;
54
 
55
 
56
	/**
57
	 * panneau principal des Observation (onglet "observation")
58
	 */
59
	private final Panel panneauPrincipalObservation = new Panel("Observation");
60
 
61
	/**
62
	 * panneau a onglet pour la liste
63
	 */
64
	private TabPanel ongletsObservation = null ;
65
 
66
	/**
67
	 * conteneur du panneau a onglets
68
	 */
69
	private Panel panneauMenuEtOngletsObservation = null ;
70
 
71
	/**
72
	 * liste détaillée des Observations
73
	 */
74
	private ListeObservationVue listeObservation = null ;
75
 
76
	/**
77
	 * Saisie des Observations
78
	 */
79
 
80
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
81
	/**
82
	 * l'indice du dernier onglet sélectionné
83
	 */
84
	private int dernierIndexOnglet = 0 ;
85
 
86
	/**
87
	 * booleen explicitant s'il y a une selection en cours
88
	 */
89
	private boolean selection = false ;
47 david 90
 
12 david 91
 
92
 
93
	/**
94
	 * Le store contenant les données à afficher, que le modèle transmet au médiateur quand il le demande
95
	 */
96
	private Store st = null ;
97
 
98
 
99
 
100
 
101
	/**
102
	 * La liste des observations affichées en cours (verifier utilité)
103
	 */
104
 
105
	private ListeObservation cacheObservation = new ListeObservation(0) ;
106
	/**
107
 
108
 
109
 
110
	/**
111
	 * constructeur privé (on accède a la classe par la méthode getInstance
112
	 */
113
 
114
 
115
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
116
	{
117
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
118
 
119
		// on crée un modèle
120
		observationModele = ObservationModele.Instance(this);
121
 
122
 
123
		// on gère la mise en page du panneau principal
124
		//panneauPrincipalObservation.setLayout(new BorderLayout());
125
 
126
		// on crée le panneau qui contient les differentes onglets ainsi que le menu supérieur
127
	//	panneauMenuEtOngletsObservation = new Panel("gg") ;
128
	//	panneauMenuEtOngletsObservation.setLayout(new BorderLayout()) ;
129
 
130
		// le panneau à onglet qui contient la vue
131
		//ongletsObservation = new TabPanel();
132
 
133
 
134
		// la liste des observations
135
 
136
		//Panel panneauListeObservation = new Panel("Liste");
137
 
138
		listeObservation = new ListeObservationVue(this);
139
 
140
 
141
		// Le formulaire de saisie / modification d'observation
142
 
143
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
2 aperonnet 144
 
12 david 145
 
146
		//panneauListeObservation.setLayout(new FitLayout());
147
		//panneauListeObservation.setSize(600,600);
148
		//panneauListeObservation.add(listeObservation);
149
 
150
 
151
		// on ajoute les panneaux au panneau à onglets
152
		//ongletsObservation.add(panneauListeObservation);
153
 
154
 
155
		// les onglets au centre
156
//		panneauMenuEtOngletsObservation.add(ongletsObservation,regionCentre);
157
 
158
		// on ajoute le panneau qui contient le menu et les onglets d'images au centre
159
		//panneauPrincipalObservation.add(panneauMenuEtOngletsObservation,regionCentre);
160
 
161
		panneauPrincipalObservation.add(formulaireSaisieObservationVue);
162
 
163
		panneauPrincipalObservation.add(listeObservation);
164
 
165
 
166
 
2 aperonnet 167
 
12 david 168
	}
2 aperonnet 169
 
7 aperonnet 170
 
12 david 171
	/**
172
	 * Retourne une instance de manière unique
173
	 * @return l'instance unique du médiateur
174
	 */
175
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
176
	{
31 jpm 177
			if(!estInstancie || thisMediateur == null)
12 david 178
			{
179
				estInstancie = true ;
31 jpm 180
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
12 david 181
			}
31 jpm 182
 
183
			return thisMediateur ;
12 david 184
	}
185
 
186
 
187
 
188
	/**
189
	 * envoie au modèle une demande de mise a jour
190
	 */
2 aperonnet 191
 
7 aperonnet 192
 
12 david 193
	public void obtenirNombreObservation() {
194
 
195
 
196
			listeObservation.masquerChargement();
47 david 197
		    observationModele.obtenirNombreObservation(listeObservation) ;
12 david 198
 
2 aperonnet 199
	}
12 david 200
 
2 aperonnet 201
	/**
12 david 202
	 * envoie au modèle une demande de mise a jour
2 aperonnet 203
	 */
7 aperonnet 204
 
205
 
12 david 206
	public void obtenirListeObservation() {
207
 
7 aperonnet 208
 
47 david 209
			observationModele.obtenirListeObservation(listeObservation,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
210
 
211
 
31 jpm 212
	}
12 david 213
 
2 aperonnet 214
	/**
12 david 215
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
216
	 * sous forme de tableau [nom, valeur]
217
	 * @return Les noms et valeurs des filtres
2 aperonnet 218
	 */
12 david 219
	public String[][] renvoyerFiltres()
220
	{
41 jpm 221
		String[][] valeursFiltres = { {"",""} } ;
12 david 222
 
223
 
224
		return valeursFiltres ;
225
	}
2 aperonnet 226
 
7 aperonnet 227
 
12 david 228
	public String getIdentifiant() {
229
 
230
		return carnetEnLigneMediateur.getUtilisateur().getIdentifiant();
231
 
232
	}
2 aperonnet 233
 
234
 
12 david 235
	public Panel getPanneauPrincipalObservation() {
236
		return panneauPrincipalObservation;
2 aperonnet 237
	}
12 david 238
 
239
 
240
 
241
 
242
 
2 aperonnet 243
	/**
12 david 244
	 * Met à jour les barre d'outils avec des nouvelles valeurs
245
	 * @param pageMax le nombre de pages
246
	 * @param pageEncours la page en cours
247
	 * @param taillePage la taille de page
248
	 * @param nbElement le nombre d'élements par page
2 aperonnet 249
	 */
12 david 250
	public void changerPageMaxEtCourante(int pageMax, int pageEncours, int taillePage, int nbElement)
251
	{
252
 
253
		int[] pages = {pageMax,pageEncours, taillePage, nbElement} ;
254
		listeObservation.getToolBarVue().rafraichir(pages, false) ;
255
 
2 aperonnet 256
	}
12 david 257
 
258
 
2 aperonnet 259
 
260
 
261
	/**
13 david 262
	 *
263
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne
264
	 * @param r : la vue demandeuse de donnee
265
	 * @param critere : les criteres de selection
266
	 */
12 david 267
 
13 david 268
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
12 david 269
 
13 david 270
		observationModele.obtenirListeReferentielCommune(r,critere) ;
2 aperonnet 271
 
12 david 272
 
2 aperonnet 273
	}
20 david 274
 
275
	/**
276
	 *
277
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne
278
	 * @param r : la vue demandeuse de donnee
279
	 * @param critere : les criteres de selection
280
	 */
281
 
282
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
283
 
284
		observationModele.obtenirListeReferentielNom(r,critere) ;
2 aperonnet 285
 
20 david 286
 
287
	}
2 aperonnet 288
 
12 david 289
 
20 david 290
	/**
291
	 *
292
	 * Lance la creation d'une observation
293
	 * @param r : la vue demandeuse de donnee
294
	 * @param critere : les criteres de selection
295
	 */
296
 
47 david 297
	public void ajouterObservation(Observation obs) {
20 david 298
 
47 david 299
	//	observationModele.ajouterObservation(this, obs) ;
20 david 300
 
301
	}
41 jpm 302
 
303
	public void clicListeObservation(int rowIndex) {
304
 
305
	}
2 aperonnet 306
 
41 jpm 307
 
308
	public void montrerContextMenu(EventObject e) {
309
 
310
 
311
 
312
	}
313
 
314
	public void doubleClicListeObservation(int rowIndex) {
315
 
316
 
317
	}
318
 
12 david 319
 
320
 
20 david 321
 
322
 
323
 
2 aperonnet 324
}