Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 220 Rev 251
1
package org.tela_botanica.client.observation;
1
package org.tela_botanica.client.observation;
2
 
2
 
3
 
3
 
4
 
4
 
5
// TODO : systematiser les onQuelquechose, appelle depuis les vues
5
// TODO : systematiser les onQuelquechose, appelle depuis les vues
6
 
6
 
7
 
7
 
8
import org.tela_botanica.client.CarnetEnLigneMediateur;
8
import org.tela_botanica.client.CarnetEnLigneMediateur;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
10
import org.tela_botanica.client.modeles.EntiteGeographiqueObservation;
10
import org.tela_botanica.client.modeles.ListeObservation;
11
import org.tela_botanica.client.modeles.ListeObservation;
11
import org.tela_botanica.client.modeles.Observation;
12
import org.tela_botanica.client.modeles.Observation;
-
 
13
import org.tela_botanica.client.vues.observation.CartographieObservationVue;
12
import org.tela_botanica.client.vues.observation.FormulaireSaisieObservationVue;
14
import org.tela_botanica.client.vues.observation.FormulaireSaisieObservationVue;
13
import org.tela_botanica.client.vues.observation.ListeObservationVue;
15
import org.tela_botanica.client.vues.observation.ListeObservationVue;
14
import org.tela_botanica.client.vues.observation.MenuObservationVue;
16
import org.tela_botanica.client.vues.observation.MenuObservationVue;
15
import org.tela_botanica.client.vues.observation.PanneauFiltresObservationVues;
17
import org.tela_botanica.client.vues.observation.PanneauFiltresObservationVues;
16
import org.tela_botanica.client.vues.observation.filtres.ArbreMotsClesObservationVue;
18
import org.tela_botanica.client.vues.observation.filtres.ArbreMotsClesObservationVue;
17
import org.tela_botanica.client.vues.observation.indicateurs.ImageGeneriqueVue;
19
import org.tela_botanica.client.vues.observation.indicateurs.ImageGeneriqueVue;
18
import org.tela_botanica.client.vues.observation.indicateurs.InformationRepartitionVue;
20
import org.tela_botanica.client.vues.observation.indicateurs.InformationRepartitionVue;
19
import org.tela_botanica.client.vues.observation.indicateurs.MiniZoomImageVue;
21
import org.tela_botanica.client.vues.observation.indicateurs.MiniZoomImageVue;
20
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue;
22
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue;
21
 
23
 
22
import com.google.gwt.core.client.GWT;
24
import com.google.gwt.core.client.GWT;
-
 
25
import com.google.gwt.core.client.JavaScriptObject;
-
 
26
import com.google.gwt.maps.client.geom.LatLng;
23
import com.google.gwt.user.client.DOM;
27
import com.google.gwt.user.client.DOM;
24
import com.google.gwt.user.client.Event;
28
import com.google.gwt.user.client.Event;
25
import com.google.gwt.user.client.History;
29
import com.google.gwt.user.client.History;
26
import com.google.gwt.user.client.Window;
30
import com.google.gwt.user.client.Window;
27
import com.gwtext.client.core.EventObject;
31
import com.gwtext.client.core.EventObject;
28
import com.gwtext.client.core.Ext;
32
import com.gwtext.client.core.Ext;
29
import com.gwtext.client.core.ExtElement;
33
import com.gwtext.client.core.ExtElement;
30
import com.gwtext.client.core.RegionPosition;
34
import com.gwtext.client.core.RegionPosition;
31
import com.gwtext.client.data.Record;
35
import com.gwtext.client.data.Record;
32
import com.gwtext.client.data.Tree;
36
import com.gwtext.client.data.Tree;
-
 
37
import com.gwtext.client.widgets.BoxComponent;
33
import com.gwtext.client.widgets.Component;
38
import com.gwtext.client.widgets.Component;
-
 
39
import com.gwtext.client.widgets.Container;
34
import com.gwtext.client.widgets.Panel;
40
import com.gwtext.client.widgets.Panel;
35
import com.gwtext.client.widgets.TabPanel;
41
import com.gwtext.client.widgets.TabPanel;
-
 
42
import com.gwtext.client.widgets.event.ContainerListener;
36
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
43
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
37
import com.gwtext.client.widgets.event.PanelListener;
44
import com.gwtext.client.widgets.event.PanelListener;
38
import com.gwtext.client.widgets.event.PanelListenerAdapter;
45
import com.gwtext.client.widgets.event.PanelListenerAdapter;
-
 
46
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
39
import com.gwtext.client.widgets.layout.BorderLayout;
47
import com.gwtext.client.widgets.layout.BorderLayout;
40
import com.gwtext.client.widgets.layout.BorderLayoutData;
48
import com.gwtext.client.widgets.layout.BorderLayoutData;
41
import com.gwtext.client.widgets.layout.FitLayout;
49
import com.gwtext.client.widgets.layout.FitLayout;
42
import com.gwtext.client.widgets.layout.RowLayout;
50
import com.gwtext.client.widgets.layout.RowLayout;
43
import com.gwtext.client.widgets.layout.RowLayoutData;
51
import com.gwtext.client.widgets.layout.RowLayoutData;
-
 
52
import com.gwtext.client.widgets.map.LatLonPoint;
44
import com.gwtext.client.widgets.menu.BaseItem;
53
import com.gwtext.client.widgets.menu.BaseItem;
45
import com.gwtext.client.widgets.menu.Item;
54
import com.gwtext.client.widgets.menu.Item;
46
import com.gwtext.client.widgets.menu.Menu;
55
import com.gwtext.client.widgets.menu.Menu;
47
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
56
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
48
import com.gwtext.client.widgets.tree.TreeEditor;
57
import com.gwtext.client.widgets.tree.TreeEditor;
49
import com.gwtext.client.widgets.tree.TreeNode;
58
import com.gwtext.client.widgets.tree.TreeNode;
50
 
59
 
51
 
60
 
52
/**
61
/**
53
 * Mediateur gérant les interactions entre vues et les echanges de données
62
 * Mediateur gérant les interactions entre vues et les echanges de données
54
 * C'est un singleton. 
63
 * C'est un singleton. 
55
 * @author aurelien
64
 * @author aurelien
56
 *
65
 *
57
 */
66
 */
58
public class ObservationMediateur {
67
public class ObservationMediateur {
59
	
68
	
60
	/**
69
	/**
61
	 * booleen qui verifie l'unicite de l'instance (donc static)
70
	 * booleen qui verifie l'unicite de l'instance (donc static)
62
	 */
71
	 */
63
	private static boolean estInstancie = false ;
72
	private static boolean estInstancie = false ;
64
 
73
 
65
	/**
74
	/**
66
	 * pointeur sur le médiateur (pour le pattern singleton)
75
	 * pointeur sur le médiateur (pour le pattern singleton)
67
	 */
76
	 */
68
	private static ObservationMediateur thisMediateur = null ;  
77
	private static ObservationMediateur thisMediateur = null ;  
69
	
78
	
70
	/** Mediateur general de l'application carnet en ligne
79
	/** Mediateur general de l'application carnet en ligne
71
	 * 
80
	 * 
72
	 * 
81
	 * 
73
	 */
82
	 */
74
	
83
	
75
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
84
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
76
	
85
	
77
	
86
	
78
	/**
87
	/**
79
	 * modele de données
88
	 * modele de données
80
	 */
89
	 */
81
	private ObservationModele observationModele = null ;
90
	private ObservationModele observationModele = null ;
82
	
91
	
83
	
92
	
84
	/**
93
	/**
85
	 * panneau principal des Observation (onglet "observation")
94
	 * panneau principal des Observation (onglet "observation")
86
	 */
95
	 */
87
	private final Panel panneauPrincipalObservation = new Panel("Observations");
96
	private final Panel panneauPrincipalObservation = new Panel("Observations");
88
	
97
	
89
	
98
	
90
	/**
99
	/**
91
	 * liste détaillée des Observations
100
	 * liste détaillée des Observations
92
	 */
101
	 */
93
	private ListeObservationVue listeObservation = null ;
102
	private ListeObservationVue listeObservation = null ;
94
	
103
	
95
	/**
104
	/**
96
	 * Saisie des Observations
105
	 * Saisie des Observations
97
	 */
106
	 */
98
	
107
	
99
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
108
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
-
 
109
	
-
 
110
	/**
-
 
111
	 * Cartographie
-
 
112
	 */
-
 
113
	private CartographieObservationVue cartoObservationVue = null;
100
	
114
	
101
	
115
	
102
 
116
 
103
	/**
117
	/**
104
	 * booleen explicitant s'il y a une selection en cours
118
	 * booleen explicitant s'il y a une selection en cours
105
	 */
119
	 */
106
	private boolean selection = false ;		
120
	private boolean selection = false ;		
107
	/**
121
	/**
108
	 * panneau conteneur pour le panneau  des informations lies à l'observation
122
	 * panneau conteneur pour le panneau  des informations lies à l'observation
109
	 */
123
	 */
110
	
124
	
111
  	private Panel details = new Panel("Détails");
125
  	private Panel details = new Panel("Détails");
112
 
126
 
113
  	private Panel panelMotsCles = new Panel("Mots Clés");
127
  	private Panel panelMotsCles = new Panel("Mots Clés");
114
  	
128
  	
115
  	private ArbreMotsClesObservationVue arbreMotsClesVue = null ;
129
  	private ArbreMotsClesObservationVue arbreMotsClesVue = null ;
116
  	
130
  	
117
  	private TabPanel detailsEtMotsCles = new TabPanel();
131
  	private TabPanel detailsEtMotsCles = new TabPanel();
118
 
132
 
119
 
133
 
120
	/**
134
	/**
121
	 * panneau conteneur pour le panneau des filtres
135
	 * panneau conteneur pour le panneau des filtres
122
	 */
136
	 */
123
	
137
	
124
  	private PanneauFiltresObservationVues filtres = null;
138
  	private PanneauFiltresObservationVues filtres = null;
125
 
139
 
126
	
140
	
127
  	
141
  	
128
  	/** 
142
  	/** 
129
  	 * panneau d'information de repartition sur le nom selectionné 
143
  	 * panneau d'information de repartition sur le nom selectionné 
130
  	 * 
144
  	 * 
131
  	 */
145
  	 */
132
  	
146
  	
133
  	private InformationRepartitionVue informationRepartitionVue=null;
147
  	private InformationRepartitionVue informationRepartitionVue=null;
134
  	
148
  	
135
  	
149
  	
136
  	/** 
150
  	/** 
137
  	 * panneau d'affichage d'une image generique associe au nom selectionne 
151
  	 * panneau d'affichage d'une image generique associe au nom selectionne 
138
  	 * 
152
  	 * 
139
  	 */
153
  	 */
140
  	
154
  	
141
  	private ImageGeneriqueVue imageGeneriqueVue=null;
155
  	private ImageGeneriqueVue imageGeneriqueVue=null;
142
  	
156
  	
143
  	private MiniZoomImageVue mvz = null ;
157
  	private MiniZoomImageVue mvz = null ;
144
  	
158
  	
145
  	private NuageMotsClesVue nuaMC = null;
159
  	private NuageMotsClesVue nuaMC = null;
146
  	
160
  	
147
  	private Panel conteneurFormulaire = null ;
161
  	private Panel conteneurFormulaire = null ;
148
  	
162
  	
149
  	private boolean importerObservations = false ;
163
  	private boolean importerObservations = false ;
-
 
164
 
-
 
165
	private TabPanel ongletsSaisieCarto;
-
 
166
 
-
 
167
	private Panel centre;
150
  	
168
  	
151
	/**
169
	/**
152
	 * constructeur privé (on accède a la classe par la méthode getInstance
170
	 * constructeur privé (on accède a la classe par la méthode getInstance
153
	 */
171
	 */
154
	
172
	
155
	
173
	
156
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
174
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
157
	{
175
	{
158
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
176
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
159
		
-
 
160
		
177
				
161
		// on crée un modèle
178
		// on crée un modèle
162
		observationModele = ObservationModele.Instance(this);
179
		observationModele = ObservationModele.Instance(this);
163
		
180
		
164
	
181
	
165
		listeObservation = new ListeObservationVue(this);
182
		listeObservation = new ListeObservationVue(this);
166
		listeObservation.setTitle("Observations");
183
		listeObservation.setTitle("Observations");
167
		
-
 
168
		listeObservation.addListener(
-
 
169
				new PanelListenerAdapter() {
-
 
170
							public void onCollapse(Panel panel)  {
-
 
171
								ObservationMediateur.fireResize();
-
 
172
							}
-
 
173
						    public void onExpand(Panel panel) {
-
 
174
						    	ObservationMediateur.fireResize();
-
 
175
						    }
-
 
176
		});
-
 
177
				
-
 
178
		
184
		
179
		// quelques variables de position pour les borderlayouts
185
		// quelques variables de position pour les borderlayouts
180
		final BorderLayoutData regionNord = new BorderLayoutData(
186
		final BorderLayoutData regionNord = new BorderLayoutData(
181
				RegionPosition.NORTH);
187
				RegionPosition.NORTH);
182
 
188
 
183
		final BorderLayoutData regionCentre = new BorderLayoutData(
189
		final BorderLayoutData regionCentre = new BorderLayoutData(
184
				RegionPosition.CENTER);
190
				RegionPosition.CENTER);
185
 
191
 
186
		  
192
		  
187
		final BorderLayoutData regionEst = new BorderLayoutData(
193
		final BorderLayoutData regionEst = new BorderLayoutData(
188
				RegionPosition.EAST);
194
				RegionPosition.EAST);
189
	
195
	
190
			
196
			
191
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted
197
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted
192
			regionEst.setSplit(true);
198
			regionEst.setSplit(true);
193
		}
199
		}
194
 
200
 
195
		final BorderLayoutData regionOuest = new BorderLayoutData(
201
		final BorderLayoutData regionOuest = new BorderLayoutData(
196
				RegionPosition.WEST);
202
				RegionPosition.WEST);
197
		
203
		
198
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted			
204
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted			
199
			regionOuest.setSplit(true);
205
			regionOuest.setSplit(true);
200
		}
206
		}
201
		
207
		
202
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
208
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
203
		
209
		
204
		// on ajoute un panneau supplémentaire pour contenir le formulaire, pour éviter un bug de taille
210
		// on ajoute un panneau supplémentaire pour contenir le formulaire, pour éviter un bug de taille
205
		// des panneaux
211
		// des panneaux
206
		conteneurFormulaire = new Panel();
212
		conteneurFormulaire = new Panel();
-
 
213
		cartoObservationVue = new CartographieObservationVue(this);
-
 
214
		cartoObservationVue.setLayout(new FitLayout());
207
		
215
		
208
		// Le formulaire de saisie / modification d'observation
216
		// Le formulaire de saisie / modification d'observation
209
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
217
		formulaireSaisieObservationVue = new FormulaireSaisieObservationVue(this);
210
		formulaireSaisieObservationVue.setHeader(false);
218
		formulaireSaisieObservationVue.setHeader(false);
211
		conteneurFormulaire.setTitle("Saisie");
219
		conteneurFormulaire.setTitle("Saisie");
212
		conteneurFormulaire.setTitleCollapse(true);
220
		conteneurFormulaire.setTitleCollapse(true);
213
		conteneurFormulaire.setCollapsible(true) ;
221
		conteneurFormulaire.setCollapsible(true) ;
214
		conteneurFormulaire.setAutoScroll(true) ;
222
		conteneurFormulaire.setAutoScroll(true) ;
215
		// Redimensionnement global sur collapse/expand
223
		// Redimensionnement global sur collapse/expand
-
 
224
		
-
 
225
		
-
 
226
		ongletsSaisieCarto = new TabPanel();
-
 
227
		
216
		conteneurFormulaire.addListener(
228
		conteneurFormulaire.addListener(
217
		new PanelListenerAdapter() {
229
		new PanelListenerAdapter() {
218
					public void onCollapse(Panel panel)  {
230
			public void onCollapse(Panel panel)  {
219
						ObservationMediateur.fireResize();
231
				ObservationMediateur.fireResize();
220
					}
232
			}
221
				    public void onExpand(Panel panel) {
233
		    public void onExpand(Panel panel) {
222
				    	ObservationMediateur.fireResize();
234
		    	ObservationMediateur.fireResize();
223
				    }
235
		    }
224
		});
236
		});
-
 
237
		
-
 
238
		ongletsSaisieCarto.addListener(new TabPanelListenerAdapter() {
-
 
239
 
-
 
240
			public void onActivate(Panel panel) {
-
 
241
 
-
 
242
				if (panel.equals(conteneurFormulaire)) {
-
 
243
					if (!cartoObservationVue.isCarteAjoutee()) {
-
 
244
						cartoObservationVue.initialiserCarte();
-
 
245
					}
-
 
246
				} else {
-
 
247
						cartoObservationVue.recentrerCarte();
-
 
248
				}
-
 
249
			}
-
 
250
 
-
 
251
			public boolean doBeforeTabChange(TabPanel source, Panel newPanel,
-
 
252
					Panel oldPanel) {
-
 
253
				if (newPanel.equals(cartoObservationVue)) {
-
 
254
					if (!cartoObservationVue.isCarteAjoutee()) {
-
 
255
						cartoObservationVue.initialiserCarte();
-
 
256
					}
-
 
257
				}
-
 
258
				return true;
-
 
259
			}
225
		
-
 
226
		
-
 
227
		
260
		});
228
		
261
		
229
		final Panel centre = new Panel();
262
		centre = new Panel();
230
		centre.setLayout(new RowLayout());
263
		centre.setLayout(new BorderLayout());
231
		centre.setAutoScroll(true);
264
		centre.setAutoScroll(true);
232
		centre.setBorder(false);
265
		centre.setBorder(false);
-
 
266
		
-
 
267
		centre.addListener(
-
 
268
			new PanelListenerAdapter() {
-
 
269
				public void onCollapse(Panel panel)  {
-
 
270
					ObservationMediateur.fireResize();
-
 
271
				}
-
 
272
			    public void onExpand(Panel panel) {
-
 
273
			    	ObservationMediateur.fireResize();
-
 
274
			    }
-
 
275
			    
-
 
276
				public void onResize(BoxComponent component, int adjWidth,
-
 
277
						int adjHeight, int rawWidth, int rawHeight) {
-
 
278
			    	ObservationMediateur.fireResize();				
-
 
279
				}
-
 
280
				
-
 
281
				public void onAfterLayout(Container self) {
-
 
282
					if(!listeObservation.getTailleInitialisee()) {
-
 
283
						if((int)Math.round(centre.getHeight() * 0.6) != 0) {
-
 
284
							listeObservation.setHeight((int)Math.round(centre.getHeight() * 0.6));
-
 
285
							listeObservation.setTailleInitialisee();
-
 
286
						}
-
 
287
					}
-
 
288
				}
-
 
289
		});
233
		
290
		
234
		formulaireSaisieObservationVue.setBorder(false);
291
		formulaireSaisieObservationVue.setBorder(false);
235
		conteneurFormulaire.add(formulaireSaisieObservationVue);
292
		conteneurFormulaire.add(formulaireSaisieObservationVue);
-
 
293
		
-
 
294
		ongletsSaisieCarto.add(conteneurFormulaire);
-
 
295
		ongletsSaisieCarto.add(cartoObservationVue);
-
 
296
		
-
 
297
		BorderLayoutData listeLayoutData = new BorderLayoutData(RegionPosition.SOUTH);
-
 
298
		listeLayoutData.setSplit(true);
236
		
299
		
-
 
300
		BorderLayoutData formLayoutData = new BorderLayoutData(RegionPosition.CENTER);
-
 
301
		listeLayoutData.setSplit(true);
237
		centre.add(conteneurFormulaire, new RowLayoutData("40%"));
302
		
-
 
303
		centre.add(listeObservation, listeLayoutData);
238
		centre.add(listeObservation, new RowLayoutData("60%"));
304
		centre.add(ongletsSaisieCarto, formLayoutData);
239
		
305
		
240
		Panel conteneurDetailsMotsCles = new Panel("Détails");
306
		Panel conteneurDetailsMotsCles = new Panel("Détails");
241
 
307
 
242
		// Redimensionnement global sur collapse/expand
308
		// Redimensionnement global sur collapse/expand
243
		conteneurDetailsMotsCles.addListener(
309
		conteneurDetailsMotsCles.addListener(
244
		new PanelListenerAdapter() {
310
		new PanelListenerAdapter() {
245
					public void onCollapse(Panel panel)  {
311
			public void onCollapse(Panel panel)  {
246
						ObservationMediateur.fireResize();
312
				ObservationMediateur.fireResize();
247
					}
313
			}
248
				    public void onExpand(Panel panel) {
314
		    public void onExpand(Panel panel) {
249
				    	ObservationMediateur.fireResize();
315
		    	ObservationMediateur.fireResize();
250
				    }
316
		    }
251
		});
317
		});
252
		
-
 
253
		
318
					
254
				
-
 
255
		// on initialise le volet qui contient les details
319
		// on initialise le volet qui contient les details
256
		conteneurDetailsMotsCles.setWidth("10%");
320
		conteneurDetailsMotsCles.setWidth("10%");
257
		conteneurDetailsMotsCles.setTitleCollapse(true);
321
		conteneurDetailsMotsCles.setTitleCollapse(true);
258
		conteneurDetailsMotsCles.setCollapsible(true);
322
		conteneurDetailsMotsCles.setCollapsible(true);
259
		
323
		
260
		conteneurDetailsMotsCles.add(detailsEtMotsCles);
324
		conteneurDetailsMotsCles.add(detailsEtMotsCles);
261
		
325
		
262
		conteneurDetailsMotsCles.setLayout(new FitLayout());
326
		conteneurDetailsMotsCles.setLayout(new FitLayout());
263
		
327
		
264
		
328
		
265
		details.setAutoScroll(true);
329
		details.setAutoScroll(true);
266
		details.setLayout(new RowLayout());
330
		details.setLayout(new RowLayout());
267
		details.setWidth("100%");
331
		details.setWidth("100%");
268
		
332
		
269
		arbreMotsClesVue = new ArbreMotsClesObservationVue(this) ;
333
		arbreMotsClesVue = new ArbreMotsClesObservationVue(this) ;
270
		panelMotsCles.add(arbreMotsClesVue);
334
		panelMotsCles.add(arbreMotsClesVue);
271
		
335
		
272
		// Information de repartition
336
		// Information de repartition
273
		informationRepartitionVue=new InformationRepartitionVue(this);
337
		informationRepartitionVue=new InformationRepartitionVue(this);
274
		details.add(informationRepartitionVue, new RowLayoutData("33%"));
338
		details.add(informationRepartitionVue, new RowLayoutData("33%"));
275
		
339
		
276
		
340
		
277
		// Image generique
341
		// Image generique
278
		imageGeneriqueVue=new ImageGeneriqueVue(this);
342
		imageGeneriqueVue=new ImageGeneriqueVue(this);
279
		details.add(imageGeneriqueVue, new RowLayoutData("33%"));
343
		details.add(imageGeneriqueVue, new RowLayoutData("33%"));
280
		
344
		
281
		mvz = new MiniZoomImageVue(this) ; 
345
		mvz = new MiniZoomImageVue(this) ; 
282
		
346
		
283
		details.add(mvz, new RowLayoutData("34%")) ;	
347
		details.add(mvz, new RowLayoutData("34%")) ;	
284
		
348
		
285
		// on crée le panneau des filtres
349
		// on crée le panneau des filtres
286
		filtres = new PanneauFiltresObservationVues(this);
350
		filtres = new PanneauFiltresObservationVues(this);
287
		
351
		
288
		// on initialise le volet qui contient les filtres
352
		// on initialise le volet qui contient les filtres
289
		filtres.setWidth("10%");
353
		filtres.setWidth("10%");
290
		filtres.setTitleCollapse(true);
354
		filtres.setTitleCollapse(true);
291
		filtres.setCollapsible(true);
355
		filtres.setCollapsible(true);
292
		
356
		
293
		
357
		
294
		filtres.addListener(
358
		filtres.addListener(
295
				new PanelListenerAdapter() {
359
			new PanelListenerAdapter() {
296
							public void onCollapse(Panel panel)  {
360
				public void onCollapse(Panel panel)  {
297
								ObservationMediateur.fireResize();
361
					ObservationMediateur.fireResize();
298
							}
362
				}
299
						    public void onExpand(Panel panel) {
363
			    public void onExpand(Panel panel) {
300
						    	ObservationMediateur.fireResize();
364
			    	ObservationMediateur.fireResize();
301
						    }
365
			    }
302
		});
366
		});
303
				
367
				
304
		
368
		
305
		detailsEtMotsCles.add(details);
369
		detailsEtMotsCles.add(details);
306
		//detailsEtMotsCles.add(panelMotsCles);
370
		//detailsEtMotsCles.add(panelMotsCles);
307
		
371
		
308
		panelMotsCles.hide();
372
		panelMotsCles.hide();
309
		
-
 
310
		
373
		
311
		panneauPrincipalObservation.add(conteneurDetailsMotsCles,regionEst);
-
 
312
		
-
 
313
	
374
		panneauPrincipalObservation.add(conteneurDetailsMotsCles,regionEst);
314
		
375
		
315
		panneauPrincipalObservation.add(filtres,regionOuest);
376
		panneauPrincipalObservation.add(filtres,regionOuest);
316
		panneauPrincipalObservation.add(centre,regionCentre);
377
		panneauPrincipalObservation.add(centre,regionCentre);
317
		
378
		
318
	}
379
	}
319
 
380
 
320
	public static native void fireResize() /*-{
381
	public static native void fireResize() /*-{
321
		 $wnd.Ext.EventManager.fireResize();
382
		 $wnd.Ext.EventManager.fireResize();
322
	}-*/;
383
	}-*/;
323
	
384
	
324
	
385
	
325
	/**
386
	/**
326
	 * Retourne une instance de manière unique
387
	 * Retourne une instance de manière unique
327
	 * @return l'instance unique du médiateur
388
	 * @return l'instance unique du médiateur
328
	 */
389
	 */
329
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
390
	public static ObservationMediateur Instance(CarnetEnLigneMediateur carnetEnLigneMediateur)
330
	{
391
	{
331
			if(!estInstancie || thisMediateur == null)
392
			if(!estInstancie || thisMediateur == null)
332
			{
393
			{
333
				estInstancie = true ;
394
				estInstancie = true ;
334
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
395
				thisMediateur = new ObservationMediateur(carnetEnLigneMediateur) ;
335
			}
396
			}
336
			
397
			
337
			return thisMediateur ;	
398
			return thisMediateur ;	
338
	}
399
	}
339
	
400
	
340
	
401
	
341
	public void connecterUtilisateur() {
402
	public void connecterUtilisateur() {
342
		
403
		
343
		if(importerObservations) {
404
		if(importerObservations) {
344
			
405
			
345
			observationModele.importerObservations();
406
			observationModele.importerObservations();
346
		}
407
		}
347
		
408
		
348
		if(panneauPrincipalObservation == null || !panneauPrincipalObservation.isCreated()) 
409
		if(panneauPrincipalObservation == null || !panneauPrincipalObservation.isCreated()) 
349
		{
410
		{
350
			panneauPrincipalObservation.addListener(new ContainerListenerAdapter()
411
			panneauPrincipalObservation.addListener(new ContainerListenerAdapter()
351
			{
412
			{
352
				public void onRender(Component c)
413
				public void onRender(Component c)
353
				{
414
				{
354
					panneauPrincipalObservation.purgeListeners() ;
415
					panneauPrincipalObservation.purgeListeners() ;
355
					obtenirNombreObservation();
416
					obtenirNombreObservation();
356
					initialiserArbres();
417
					initialiserArbres();
357
					analyserHistorique();
418
					analyserHistorique();
358
				}
419
				}
359
				
420
				
360
			}) ;
421
			}) ;
361
		}
422
		}
362
		else
423
		else
363
		{
424
		{
364
			obtenirNombreObservation();
425
			obtenirNombreObservation();
365
			initialiserArbres();
426
			initialiserArbres();
366
			analyserHistorique();
427
			analyserHistorique();
367
		}
428
		}
368
	}
429
	}
369
	
430
	
370
	private void initialiserArbres() {
431
	private void initialiserArbres() {
371
		getPanneauFiltres().getArbreDateObservationFiltreVue().initialiser();
432
		getPanneauFiltres().getArbreDateObservationFiltreVue().initialiser();
372
		getPanneauFiltres().getArbreEntiteGeographiqueObservationFiltreVue().initialiser();
433
		getPanneauFiltres().getArbreEntiteGeographiqueObservationFiltreVue().initialiser();
373
		
434
		
374
		
435
		
375
	}
436
	}
376
 
437
 
377
	
438
	
378
	
439
	
379
	// ACTIONS  a entreprendre lors d'un evenement particulier 
440
	// ACTIONS  a entreprendre lors d'un evenement particulier 
380
	
441
	
381
	
442
	
382
	/**
443
	/**
383
	 * Lors du raffraichissement de la liste d'observation  
444
	 * Lors du raffraichissement de la liste d'observation  
384
	 */
445
	 */
385
	
446
	
386
	
447
	
387
	public void onRafraichissementListeObservations() {
448
	public void onRafraichissementListeObservations() {
388
		
449
		
389
		carnetEnLigneMediateur.donneesObsVersImages(listeObservation.getCacheListeObservation());
450
		carnetEnLigneMediateur.donneesObsVersImages(listeObservation.getCacheListeObservation());
390
		observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation());
451
		observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation());
391
	}
452
	}
392
	
453
	
393
	/**
454
	/**
394
	 * 
455
	 * 
395
	 * TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation 
456
	 * TODO : fonction plus generique, appelle sur un clic ou une selection de ligne, a appeller : SelectionnerObservation 
396
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste le
457
	 * est appelé lors d'un clic de souris sur un enregistrement de la liste le
397
	 * médiateur gère alors les conséquences
458
	 * médiateur gère alors les conséquences
398
	 * 
459
	 * 
399
	 * @param rowIndex
460
	 * @param rowIndex
400
	 *            le numéro de ligne selectionné
461
	 *            le numéro de ligne selectionné
401
	 */
462
	 */
402
	
463
	
403
	public void onClicListeObservation(int rowIndex, String ordreObservation) {
464
	public void onClicListeObservation(int rowIndex, String ordreObservation) {
404
	
465
	
405
		Observation obs = obtenirCacheObservation().get(ordreObservation) ;
466
		Observation obs = obtenirCacheObservation().get(ordreObservation) ;
406
		
467
		
407
		if(GWT.isScript()) {
468
		if(GWT.isScript()) {
408
			masquerChargementInfosObservations() ;
469
			masquerChargementInfosObservations() ;
409
		}
470
		}
410
		
471
		
411
		// Affichage de la carte de repartition correspondante
472
		// Affichage de la carte de repartition correspondante
412
		String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
473
		String numeroNomenclaturalSaisiObservation = obs.getNumeroNomenclaturalSaisi() ;
413
		
474
		
414
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
475
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
415
		
476
		
416
		if(formulaireSaisieObservationVue.getModification()) {
477
		if(formulaireSaisieObservationVue.getModification()) {
417
			String[] ids = listeObservation.getIdSelectionnees();
478
			String[] ids = listeObservation.getIdSelectionnees();
418
			if(ids.length > 1) {
479
			if(ids.length > 1) {
419
				formulaireSaisieObservationVue.setMasseModification(true);
480
				formulaireSaisieObservationVue.setMasseModification(true);
420
				ListeObservation listeObs = new ListeObservation();
481
				ListeObservation listeObs = new ListeObservation();
421
				for(int i=0; i < ids.length;i++) {
482
				for(int i=0; i < ids.length;i++) {
422
					Observation obsAjout = observationModele.getCacheObservation().get(ids[i]);
483
					Observation obsAjout = observationModele.getCacheObservation().get(ids[i]);
423
					listeObs.ajouterObservation(obsAjout);
484
					listeObs.ajouterObservation(obsAjout);
424
				}
485
				}
425
				formulaireSaisieObservationVue.rafraichir(listeObs, false);
486
				formulaireSaisieObservationVue.rafraichir(listeObs, false);
426
			} else {
487
			} else {
427
				formulaireSaisieObservationVue.setMasseModification(false);
488
				formulaireSaisieObservationVue.setMasseModification(false);
428
				// affichage des détails dans le formulaire d'observation
489
				// affichage des détails dans le formulaire d'observation
429
				formulaireSaisieObservationVue.rafraichir(obs, false) ;
490
				formulaireSaisieObservationVue.rafraichir(obs, false) ;
430
			}
491
			}
431
		} else {
492
		} else {
432
			formulaireSaisieObservationVue.rafraichir(obs, false) ;
493
			formulaireSaisieObservationVue.rafraichir(obs, false) ;
433
		}
494
		}
434
		// Affichage de l'image correspondante
495
		// Affichage de l'image correspondante
435
				
496
				
436
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
497
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
437
		
498
		
438
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
499
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
439
		
500
		
440
		observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation);
501
		observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation);
-
 
502
		
-
 
503
		observationModele.obtenirInformationCommune(cartoObservationVue, obs.getLocalite(), obs.getIdentifiantLocalite());
441
		//arbreMotsClesVue.cocherMotsCles(motsClesIds);
504
		//arbreMotsClesVue.cocherMotsCles(motsClesIds);
442
 
505
 
443
 
506
 
444
	}
507
	}
445
	
508
	
446
	public void obtenirImageInformationExternes(String numeroNomenclaturalSaisiObservation) {
509
	public void obtenirImageInformationExternes(String numeroNomenclaturalSaisiObservation) {
447
		if(GWT.isScript()) {
510
		if(GWT.isScript()) {
448
			masquerChargementInfosObservations() ;
511
			masquerChargementInfosObservations() ;
449
		}
512
		}
450
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
513
		observationModele.obtenirImageInformationRepartition(informationRepartitionVue,numeroNomenclaturalSaisiObservation) ;
451
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
514
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
452
	}
515
	}
453
	
516
	
454
	public int getTaillePage() {
517
	public int getTaillePage() {
455
		return listeObservation.getTaillePage();
518
		return listeObservation.getTaillePage();
456
	}
519
	}
457
	
520
	
458
	public int getPageEnCours() {
521
	public int getPageEnCours() {
459
		return listeObservation.getPageEncours();
522
		return listeObservation.getPageEncours();
460
	}
523
	}
461
	
524
	
462
	
525
	
463
	// ACCES au Modèle 
526
	// ACCES au Modèle 
464
	
527
	
465
	
528
	
466
	// C du CRUD 
529
	// C du CRUD 
467
	
530
	
468
	
531
	
469
	
532
	
470
	/**
533
	/**
471
	 * TODO : afficher un message du type "observation ajouté".  
534
	 * TODO : afficher un message du type "observation ajouté".  
472
	 * Lance la creation d'une observation
535
	 * Lance la creation d'une observation
473
	 * @param obs : l'observation saisie
536
	 * @param obs : l'observation saisie
474
	 */	
537
	 */	
475
	public void ajouterObservation(Observation obs) {
538
	public void ajouterObservation(Observation obs) {
476
			
539
			
477
	  // On raffraichi la liste d'observation 
540
	  // On raffraichi la liste d'observation 
478
	  observationModele.ajouterObservation(listeObservation, obs) ;
541
	  observationModele.ajouterObservation(listeObservation, obs) ;
479
	  filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
542
	  filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
480
	  filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
543
	  filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
481
		
544
		
482
	}
545
	}
483
	
546
	
484
	
547
	
485
	
548
	
486
	// R du CRUD 
549
	// R du CRUD 
487
	
550
	
488
	/**
551
	/**
489
	 * Demande au modele le nombre d'Observation à afficher
552
	 * Demande au modele le nombre d'Observation à afficher
490
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
553
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
491
	 */
554
	 */
492
 
555
 
493
	public void obtenirNombreObservation() {
556
	public void obtenirNombreObservation() {
494
		
557
		
495
		listeObservation.masquerChargement() ;
558
		listeObservation.masquerChargement() ;
496
		mvz.raz() ;
559
		mvz.raz() ;
497
		imageGeneriqueVue.raz() ;
560
		imageGeneriqueVue.raz() ;
498
		informationRepartitionVue.raz() ;
561
		informationRepartitionVue.raz() ;
499
		observationModele.obtenirNombreObservation(listeObservation) ;
562
		observationModele.obtenirNombreObservation(listeObservation) ;
500
		
563
		
501
	}
564
	}
502
 
565
 
503
	
566
	
504
	
567
	
505
	public void obtenirListeObservation() {
568
	public void obtenirListeObservation() {
506
		obtenirListeObservation(listeObservation);
569
		obtenirListeObservation(listeObservation);
507
	}
570
	}
508
	
571
	
509
	/**
572
	/**
510
	 * Demande au modele le detail  des Observations à afficher
573
	 * Demande au modele le detail  des Observations à afficher
511
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
574
	 * TODO : grouper cette demande avec la demande d'affichage de liste ? 
512
	 */
575
	 */
513
 
576
 
514
	
577
	
515
	public void obtenirListeObservation(Rafraichissable r) {
578
	public void obtenirListeObservation(Rafraichissable r) {
516
		
579
		
517
		listeObservation.masquerChargement() ;
580
		listeObservation.masquerChargement() ;
518
 
581
 
519
		observationModele.obtenirListeObservation(r,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
582
		observationModele.obtenirListeObservation(r,listeObservation.getTaillePage(),listeObservation.getPageEncours()) ;
520
	}
583
	}
521
	
584
	
522
	public void obtenirCacheObservation(Rafraichissable r) {
585
	public void obtenirCacheObservation(Rafraichissable r) {
523
		
586
		
524
		r.rafraichir(observationModele.getCacheObservation(), false) ;
587
		r.rafraichir(observationModele.getCacheObservation(), false) ;
525
	}
588
	}
526
	
589
	
527
 
590
 
528
	/**
591
	/**
529
	 * Envoie au modèle une demande pour obtenir l'arbre des localites
592
	 * Envoie au modèle une demande pour obtenir l'arbre des localites
530
	 * 
593
	 * 
531
	 * @param r
594
	 * @param r
532
	 *            le raffraichissable qui a demandé la mise à jour
595
	 *            le raffraichissable qui a demandé la mise à jour
533
	 */
596
	 */
534
	public void obtenirListeEntiteGeographique() {
597
	public void obtenirListeEntiteGeographique() {
535
		
598
		
536
		observationModele.obtenirListeEntiteGeographique(filtres.getArbreEntiteGeographiqueObservationFiltreVue());
599
		observationModele.obtenirListeEntiteGeographique(filtres.getArbreEntiteGeographiqueObservationFiltreVue());
537
		
600
		
538
	}
601
	}
539
	
602
	
540
	
603
	
541
	// U du CRUD
604
	// U du CRUD
542
	public void modifierObservation(Observation obs) {
605
	public void modifierObservation(Observation obs) {
543
	
606
	
544
		
607
		
545
	  // On rafraichit la liste d'observation 
608
	  // On rafraichit la liste d'observation 
546
	  observationModele.modifierObservation(listeObservation, obs) ;
609
	  observationModele.modifierObservation(listeObservation, obs) ;
547
	  filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
610
	  filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
548
	  filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
611
	  filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
549
		
612
		
550
	}
613
	}
551
	
614
	
552
	public void modifierObservationEnMasse(Observation obs) {
615
	public void modifierObservationEnMasse(Observation obs) {
553
		// On rafraichit la liste d'observation
616
		// On rafraichit la liste d'observation
554
		listeObservation.masquerChargement();
617
		listeObservation.masquerChargement();
555
		observationModele.modifierObservationEnMasse(listeObservation, obs) ;
618
		observationModele.modifierObservationEnMasse(listeObservation, obs) ;
556
	}
619
	}
557
	
620
	
558
	// D du CRUD
621
	// D du CRUD
559
	
622
	
560
	
623
	
561
	
624
	
562
	/**
625
	/**
563
	 * TODO : afficher un message du type "observation modifie".  
626
	 * TODO : afficher un message du type "observation modifie".  
564
	 * Lance la modification d'une observation
627
	 * Lance la modification d'une observation
565
	 * @param obs : l'observation a modifier
628
	 * @param obs : l'observation a modifier
566
	 */
629
	 */
567
	
630
	
568
	
631
	
569
	
632
	
570
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
633
	public void supprimerObservation(Rafraichissable r, String numeroOrdre) {
571
		
634
		
572
		if(listeObservation.getSelectionModel().getCount() > 0)
635
		if(listeObservation.getSelectionModel().getCount() > 0)
573
		{
636
		{
574
			if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
637
			if(Window.confirm("Êtes vous sur de vouloir supprimer cette observation ?")) {
575
			observationModele.supprimerObservation(r,numeroOrdre) ;
638
			observationModele.supprimerObservation(r,numeroOrdre) ;
576
			}
639
			}
577
		}
640
		}
578
		
641
		
579
	}
642
	}
580
	
643
	
581
	// Assistants de saisie
644
	// Assistants de saisie
582
	/**
645
	/**
583
	 *  
646
	 *  
584
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne 
647
	 * Lance un appel de recherche d'une liste de commune correspondant aux criteres de selectionne 
585
	 * @param r : la vue demandeuse de donnee
648
	 * @param r : la vue demandeuse de donnee
586
	 * @param critere : les criteres de selection
649
	 * @param critere : les criteres de selection
587
	 */
650
	 */
588
	
651
	
589
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
652
	public void obtenirListeReferentielCommune(Rafraichissable r, String critere) {
590
		
653
		
591
		observationModele.obtenirListeReferentielCommune(r,critere) ;
654
		observationModele.obtenirListeReferentielCommune(r,critere) ;
592
 
655
 
593
		
656
		
594
	}
657
	}
595
	
658
	
596
	
659
	
597
	
660
	
598
	/**
661
	/**
599
	 *  
662
	 *  
600
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne 
663
	 * Lance un appel de recherche d'une liste de nom scientifique correspondant aux criteres de selectionne 
601
	 * @param r : la vue demandeuse de donnee
664
	 * @param r : la vue demandeuse de donnee
602
	 * @param critere : les criteres de selection
665
	 * @param critere : les criteres de selection
603
	 */
666
	 */
604
	
667
	
605
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
668
	public void obtenirListeReferentielNom(Rafraichissable r, String critere) {
606
 
669
 
607
		observationModele.obtenirListeReferentielNom(r,critere) ;		
670
		observationModele.obtenirListeReferentielNom(r,critere) ;		
608
	}
671
	}
609
	
672
	
610
	// Etat du syteme
673
	// Etat du syteme
611
	
674
	
612
	/**
675
	/**
613
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
676
	 * C'est dans cette fonction que doivent être renvoyé les valeurs des filtres
614
	 * sous forme de tableau [nom, valeur]
677
	 * sous forme de tableau [nom, valeur]
615
	 * @return Les noms et valeurs des filtres
678
	 * @return Les noms et valeurs des filtres
616
	 */
679
	 */
617
	public String[][] renvoyerFiltres()
680
	public String[][] renvoyerFiltres()
618
	{		
681
	{		
619
		int longueur = 0;
682
		int longueur = 0;
620
			/*String[] filtresMotsCles = filtres.getArbreMotsClesFiltreVue().renvoyerValeursAFiltrer();
683
			/*String[] filtresMotsCles = filtres.getArbreMotsClesFiltreVue().renvoyerValeursAFiltrer();
621
			if(filtresMotsCles.length > 0) {
684
			if(filtresMotsCles.length > 0) {
622
				longueur++ ;
685
				longueur++ ;
623
			}*/
686
			}*/
624
		
687
		
625
			String[] filtresEntitesGeo = filtres.getArbreEntiteGeographiqueObservationFiltreVue().renvoyerValeursAFiltrer() ;
688
			String[] filtresEntitesGeo = filtres.getArbreEntiteGeographiqueObservationFiltreVue().renvoyerValeursAFiltrer() ;
626
			String chaineNomsFiltresGeo = filtresEntitesGeo[0] ;
689
			String chaineNomsFiltresGeo = filtresEntitesGeo[0] ;
627
			String chaineValFiltresGeo = filtresEntitesGeo[1] ;
690
			String chaineValFiltresGeo = filtresEntitesGeo[1] ;
628
			
691
			
629
			String[] filtresDate = filtres.getArbreDateObservationFiltreVue().renvoyerValeursAFiltrer() ;
692
			String[] filtresDate = filtres.getArbreDateObservationFiltreVue().renvoyerValeursAFiltrer() ;
630
			String chaineNomsFiltresDate = filtresDate[0] ;
693
			String chaineNomsFiltresDate = filtresDate[0] ;
631
			String chaineValFiltresDate = filtresDate[1] ;
694
			String chaineValFiltresDate = filtresDate[1] ;
-
 
695
			
-
 
696
			String[] filtresTaxon = filtres.getRechercheTaxonVue().renvoyerValeursAFiltrer();
632
			
697
			
633
			String chaineNomsFiltres = chaineNomsFiltresGeo+","+chaineNomsFiltresDate ;
698
			String chaineNomsFiltres = chaineNomsFiltresGeo+","+chaineNomsFiltresDate+","+filtresTaxon[0] ;
634
			String chaineValFiltres = chaineValFiltresGeo+","+chaineValFiltresDate ;
699
			String chaineValFiltres = chaineValFiltresGeo+","+chaineValFiltresDate+","+filtresTaxon[1] ;
635
			
700
			
636
			String[] nomsFiltres = chaineNomsFiltres.split(",") ;
701
			String[] nomsFiltres = chaineNomsFiltres.split(",") ;
637
			String[] valsFiltres = chaineValFiltres.split(",") ;
702
			String[] valsFiltres = chaineValFiltres.split(",") ;
638
			
703
			
639
			longueur += nomsFiltres.length;
704
			longueur += nomsFiltres.length;
640
			
705
			
641
			String [][] valeursFiltres = new String[longueur][2] ;
706
			String [][] valeursFiltres = new String[longueur][2] ;
642
			
707
			
643
			listeObservation.afficherFiltres(chaineValFiltresGeo, chaineValFiltresDate) ;
708
			listeObservation.afficherFiltres(chaineValFiltresGeo, chaineValFiltresDate, filtresTaxon[1]) ;
644
 
709
 
645
			int i = 0;
710
			int i = 0;
646
			
711
			
647
			if(nomsFiltres.length > 0)
712
			if(nomsFiltres.length > 0)
648
			{
713
			{
649
				for(i = 0 ; i < nomsFiltres.length ; i++)
714
				for(i = 0 ; i < nomsFiltres.length ; i++)
650
				{
715
				{
651
					valeursFiltres[i][0] = nomsFiltres[i] ;
716
					valeursFiltres[i][0] = nomsFiltres[i] ;
652
					if(valsFiltres[i].equals("Inconnue")) 
717
					if(valsFiltres[i].equals("Inconnue")) 
653
					{
718
					{
654
						valeursFiltres[i][1] = "000null" ;
719
						valeursFiltres[i][1] = "000null" ;
655
					}
720
					}
656
					else
721
					else
657
					{
722
					{
658
						valeursFiltres[i][1] = valsFiltres[i] ;
723
						valeursFiltres[i][1] = valsFiltres[i] ;
659
					}
724
					}
660
				}
725
				}
661
			}
726
			}
662
			
-
 
663
			/*if(filtresMotsCles.length > 0) {
-
 
664
				valeursFiltres[i][0] = filtresMotsCles[0] ;
-
 
665
				filtresMotsCles[1] = filtresMotsCles[1].replace("\n", " ");
-
 
666
				valeursFiltres[i][1] = filtresMotsCles[1].replace(" ", ";") ;
-
 
667
			}*/
-
 
668
			
727
			
669
			return valeursFiltres ;
728
			return valeursFiltres ;
670
	}
729
	}
671
 
730
 
672
	
731
	
673
	/**
732
	/**
674
	 * Retourne l'identifiant de l'utilisateur connecte
733
	 * Retourne l'identifiant de l'utilisateur connecte
675
	 * @return : identifiant de l'utilisateur connecte
734
	 * @return : identifiant de l'utilisateur connecte
676
	 */
735
	 */
677
	public String getIdentifiant() {
736
	public String getIdentifiant() {
678
		
737
		
679
		return carnetEnLigneMediateur.getUtilisateur().getIdentite();
738
		return carnetEnLigneMediateur.getUtilisateur().getIdentite();
680
	
739
	
681
	}
740
	}
682
 
741
 
683
 
742
 
684
	/**
743
	/**
685
	 * 
744
	 * 
686
	 * @return
745
	 * @return
687
	 * 
746
	 * 
688
	 */
747
	 */
689
	
748
	
690
	public Panel getPanneauPrincipalObservation() {
749
	public Panel getPanneauPrincipalObservation() {
691
		return panneauPrincipalObservation;
750
		return panneauPrincipalObservation;
692
	}
751
	}
693
 
752
 
694
 
753
 
695
	public void montrerContextMenu(EventObject e) {
754
	public void montrerContextMenu(EventObject e) {
696
		
755
		
697
		MenuObservationVue mvo = new MenuObservationVue(this) ;
756
		MenuObservationVue mvo = new MenuObservationVue(this) ;
698
		mvo.showAt(e.getXY()) ;
757
		mvo.showAt(e.getXY()) ;
699
		
758
		
700
	}
759
	}
701
 
760
 
702
	public void doubleClicListeObservation(int rowIndex) {
761
	public void doubleClicListeObservation(int rowIndex) {
703
		
762
		
704
		
763
		
705
	}
764
	}
706
	
765
	
707
	// Getters 
766
	// Getters 
708
	
767
	
709
	public PanneauFiltresObservationVues getPanneauFiltres() {
768
	public PanneauFiltresObservationVues getPanneauFiltres() {
710
		
769
		
711
		return filtres;
770
		return filtres;
712
		
771
		
713
	}
772
	}
714
	
773
	
715
	public void masquerChargementInfosObservations()
774
	public void masquerChargementInfosObservations()
716
	{
775
	{
717
		ExtElement masked = Ext.get(detailsEtMotsCles.getId());
776
		ExtElement masked = Ext.get(detailsEtMotsCles.getId());
718
 
777
 
719
		if (details.isVisible() && masked != null && !masked.isMasked()) {
778
		if (details.isVisible() && masked != null && !masked.isMasked()) {
720
			informationRepartitionVue.raz() ;
779
			informationRepartitionVue.raz() ;
721
			imageGeneriqueVue.raz() ;
780
			imageGeneriqueVue.raz() ;
722
			masked.mask("Chargement", true);
781
			masked.mask("Chargement", true);
723
		}
782
		}
-
 
783
 
-
 
784
		cartoObservationVue.masquerChargement(true);
724
	}
785
	}
725
	
786
	
726
	public void deMasquerChargementInfosObservations()
787
	public void deMasquerChargementInfosObservations()
727
	{
788
	{
728
		ExtElement masked = Ext.get(detailsEtMotsCles.getId());
789
		ExtElement masked = Ext.get(detailsEtMotsCles.getId());
729
 
790
 
730
		if (details.isVisible() && masked != null && masked.isMasked()) {
791
		if (details.isVisible() && masked != null && masked.isMasked()) {
731
			masked.unmask() ;
792
			masked.unmask() ;
732
		}	
793
		}	
733
	}
794
	}
734
 
795
 
735
 
796
 
736
	public void obtenirDatesObservation() {
797
	public void obtenirDatesObservation() {
737
		
798
		
738
		observationModele.obtenirDatesObservation(filtres.getArbreDateObservationFiltreVue()) ;
799
		observationModele.obtenirDatesObservation(filtres.getArbreDateObservationFiltreVue()) ;
739
	}
800
	}
740
 
801
 
741
 
802
 
742
	public void exporterObservations() {
803
	public void exporterObservations() {
743
		
804
		
744
			observationModele.exporterObservations() ;
805
			observationModele.exporterObservations() ;
745
	}
806
	}
746
 
807
 
747
 
808
 
748
	public void deconnecterUtilisateur() {
809
	public void deconnecterUtilisateur() {
749
		
810
		
750
		if(panneauPrincipalObservation == null || panneauPrincipalObservation.isCreated() || !panneauPrincipalObservation.isVisible())
811
		if(panneauPrincipalObservation == null || panneauPrincipalObservation.isCreated() || !panneauPrincipalObservation.isVisible())
751
		{
812
		{
752
			panneauPrincipalObservation.addListener(new ContainerListenerAdapter()
813
			panneauPrincipalObservation.addListener(new ContainerListenerAdapter()
753
			{
814
			{
754
				public void onShow(Component component)
815
				public void onShow(Component component)
755
				{
816
				{
756
					deconnecterUtilisateur();
817
					deconnecterUtilisateur();
757
					panneauPrincipalObservation.purgeListeners();
818
					panneauPrincipalObservation.purgeListeners();
758
				}
819
				}
759
			});
820
			});
760
		}
821
		}
761
		else
822
		else
762
		{
823
		{
763
			listeObservation.raz() ;
824
			listeObservation.raz() ;
764
			formulaireSaisieObservationVue.raz() ;
825
			formulaireSaisieObservationVue.raz() ;
765
			filtres.getArbreDateObservationFiltreVue().raz() ;
826
			filtres.getArbreDateObservationFiltreVue().raz() ;
766
			filtres.getArbreEntiteGeographiqueObservationFiltreVue().raz() ;
827
			filtres.getArbreEntiteGeographiqueObservationFiltreVue().raz() ;
767
			filtres.getArbreMotsClesFiltreVue().raz();
828
			filtres.getArbreMotsClesFiltreVue().raz();
768
			informationRepartitionVue.raz() ;
829
			informationRepartitionVue.raz() ;
769
			imageGeneriqueVue.raz() ;
830
			imageGeneriqueVue.raz() ;
770
			mvz.raz() ;
831
			mvz.raz() ;
771
		}
832
		}
772
	}
833
	}
773
 
834
 
774
 
835
 
775
	public void supprimerLiaisonObsImage() {
836
	public void supprimerLiaisonObsImage() {
776
		
837
		
777
		String idObs = listeObservation.getIdSelectionnees()[0] ;
838
		String idObs = listeObservation.getIdSelectionnees()[0] ;
778
		String idImg = mvz.getIdImage() ;
839
		String idImg = mvz.getIdImage() ;
779
		
840
		
780
		if(Window.confirm("Supprimer le lien entre l'image "+idImg+" et l'observations "+idObs+" ?"))
841
		if(Window.confirm("Supprimer le lien entre l'image "+idImg+" et l'observations "+idObs+" ?"))
781
		{
842
		{
782
			mvz.supprimerLiaisonImage() ;
843
			mvz.supprimerLiaisonImage() ;
783
			observationModele.supprimerLiaisonImages(idImg,idObs) ;
844
			observationModele.supprimerLiaisonImages(idImg,idObs) ;
784
		}
845
		}
785
		
846
		
786
	}
847
	}
787
 
848
 
788
	public void supprimerObservations() {
849
	public void supprimerObservations() {
789
		
850
		
790
		if(listeObservation.getIdSelectionnees().length > 0) {
851
		if(listeObservation.getIdSelectionnees().length > 0) {
791
			if(Window.confirm("Êtes vous sur de vouloir supprimer les observations sélectionnées ?")) { 
852
			if(Window.confirm("Êtes vous sur de vouloir supprimer les observations sélectionnées ?")) { 
792
					String[] numObs = listeObservation.getIdSelectionnees();
853
					String[] numObs = listeObservation.getIdSelectionnees();
793
					String numObsapl = "" ;
854
					String numObsapl = "" ;
794
					for(int i = 0 ; i < numObs.length ; i++) {
855
					for(int i = 0 ; i < numObs.length ; i++) {
795
						numObsapl += numObs[i]+"," ; 
856
						numObsapl += numObs[i]+"," ; 
796
					}
857
					}
797
					
858
					
798
					observationModele.supprimerListeObservation(listeObservation,numObsapl) ;
859
					observationModele.supprimerListeObservation(listeObservation,numObsapl) ;
799
			}
860
			}
800
		}
861
		}
801
		else
862
		else
802
		{
863
		{
803
			Window.alert("Aucune observation sélectionnée");
864
			Window.alert("Aucune observation sélectionnée");
804
		}
865
		}
805
	}
866
	}
806
 
867
 
807
 
868
 
808
	public void transmettreObservations(boolean publier) {
869
	public void transmettreObservations(boolean publier) {
809
		
870
		
810
		if(carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
871
		if(carnetEnLigneMediateur.getUtilisateur().isIdentifie()) {
811
			if(listeObservation.getIdSelectionnees().length > 0) {
872
			if(listeObservation.getIdSelectionnees().length > 0) {
812
				
873
				
813
				String action = "" ;
874
				String action = "" ;
814
				
875
				
815
				if(publier) {
876
				if(publier) {
816
					action = "rendre publiques" ;
877
					action = "rendre publiques" ;
817
				}
878
				}
818
				else {
879
				else {
819
					action = "rendre privées" ;
880
					action = "rendre privées" ;
820
				}
881
				}
821
				
882
				
822
				if(Window.confirm("Êtes vous sur de vouloir "+action+" les observations sélectionnées ?")) { 
883
				if(Window.confirm("Êtes vous sur de vouloir "+action+" les observations sélectionnées ?")) { 
823
					String[] numObs = listeObservation.getIdSelectionnees();
884
					String[] numObs = listeObservation.getIdSelectionnees();
824
					String numObsApl = "" ;
885
					String numObsApl = "" ;
825
					for(int i = 0 ; i < numObs.length ; i++) {
886
					for(int i = 0 ; i < numObs.length ; i++) {
826
						numObsApl += numObs[i] ;
887
						numObsApl += numObs[i] ;
827
						if(i != numObs.length - 1) {
888
						if(i != numObs.length - 1) {
828
							numObsApl +="," ;
889
							numObsApl +="," ;
829
						}
890
						}
830
					}
891
					}
831
					
892
					
832
					observationModele.transmettreListeObservation(listeObservation,numObsApl, publier) ;
893
					observationModele.transmettreListeObservation(listeObservation,numObsApl, publier) ;
833
				}
894
				}
834
			}
895
			}
835
			else
896
			else
836
			{
897
			{
837
				Window.alert("Aucune observation sélectionnée");
898
				Window.alert("Aucune observation sélectionnée");
838
			}
899
			}
839
		}
900
		}
840
		else
901
		else
841
		{
902
		{
842
			if(publier) {
903
			if(publier) {
843
				if(Window.confirm("La publication des observations nécessite d'être identifié, voulez-vous vous identifier ? (toutes vos observations saisies seront conservées)")) {
904
				if(Window.confirm("La publication des observations nécessite d'être identifié, voulez-vous vous identifier ? (toutes vos observations saisies seront conservées)")) {
844
					importerObservations = true ;
905
					importerObservations = true ;
845
					carnetEnLigneMediateur.afficherDialogueConnexion();
906
					carnetEnLigneMediateur.afficherDialogueConnexion();
846
				}
907
				}
847
			}
908
			}
848
		}
909
		}
849
		
910
		
850
	}
911
	}
851
	
912
	
852
	public void analyserHistorique() {
913
	public void analyserHistorique() {
853
		
914
		
854
		if (History.getToken().length()>0) {
915
		if (History.getToken().length()>0) {
855
 
916
 
856
	        final String anum=History.getToken();
917
	        final String anum=History.getToken();
857
	        observationModele.analyserHistorique(formulaireSaisieObservationVue,anum);
918
	        observationModele.analyserHistorique(formulaireSaisieObservationVue,anum);
858
		}
919
		}
859
	}
920
	}
860
 
921
 
861
 
922
 
862
	public void montrerContextMenuArbre(final TreeNode n, EventObject e,
923
	public void montrerContextMenuArbre(final TreeNode n, EventObject e,
863
			TreeEditor te) {
924
			TreeEditor te) {
864
			Menu mn = new Menu();
925
			Menu mn = new Menu();
865
			final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
926
			final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
866
					"Ajouter mot cle");
927
					"Ajouter mot cle");
867
			final com.gwtext.client.widgets.menu.Item suppN = new Item(
928
			final com.gwtext.client.widgets.menu.Item suppN = new Item(
868
					"Supprimer mot cle");
929
					"Supprimer mot cle");
869
 
930
 
870
			mn.addItem(ajoutN);
931
			mn.addItem(ajoutN);
871
			mn.addItem(suppN);
932
			mn.addItem(suppN);
872
 
933
 
873
			mn.addListener(new MenuListenerAdapter() {
934
			mn.addListener(new MenuListenerAdapter() {
874
 
935
 
875
				public void onItemClick(BaseItem item, EventObject e) {
936
				public void onItemClick(BaseItem item, EventObject e) {
876
					if (item.equals(suppN)) {
937
					if (item.equals(suppN)) {
877
						arbreMotsClesVue
938
						arbreMotsClesVue
878
								.supprimerNoeud(n);
939
								.supprimerNoeud(n);
879
					}
940
					}
880
					if (item.equals(ajoutN)) {
941
					if (item.equals(ajoutN)) {
881
						arbreMotsClesVue.ajouterNoeud(
942
						arbreMotsClesVue.ajouterNoeud(
882
								n);
943
								n);
883
					}
944
					}
884
				}
945
				}
885
			});
946
			});
886
 
947
 
887
			mn.showAt(e.getXY());
948
			mn.showAt(e.getXY());
888
		
949
		
889
	}
950
	}
890
 
951
 
891
 
952
 
892
	/**
953
	/**
893
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
954
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
894
	 * mot clé
955
	 * mot clé
895
	 * 
956
	 * 
896
	 * @param text
957
	 * @param text
897
	 *            le texte du mot clé
958
	 *            le texte du mot clé
898
	 * @param id
959
	 * @param id
899
	 *            l'identifiant du mot clé
960
	 *            l'identifiant du mot clé
900
	 */
961
	 */
901
	public void mettreAjourMotsClesId(String text, String id) {
962
	public void mettreAjourMotsClesId(String text, String id) {
902
 
963
 
903
		observationModele.mettreAjourMotsClesId(text, id);
964
		observationModele.mettreAjourMotsClesId(text, id);
904
 
965
 
905
	}
966
	}
906
 
967
 
907
	/**
968
	/**
908
	 * Récupère les identifiants des images selectionnés et appelle le modèle
969
	 * Récupère les identifiants des images selectionnés et appelle le modèle
909
	 * pour qu'il mette à jour les associations mots clés/images
970
	 * pour qu'il mette à jour les associations mots clés/images
910
	 * 
971
	 * 
911
	 * @param motsClesEnCours
972
	 * @param motsClesEnCours
912
	 *            les mots clés à associer aux images selectionnés séparés par
973
	 *            les mots clés à associer aux images selectionnés séparés par
913
	 *            une ','
974
	 *            une ','
914
	 * @param arbreMC
975
	 * @param arbreMC
915
	 *            l'arbre des mots clés à mettre à jour
976
	 *            l'arbre des mots clés à mettre à jour
916
	 */
977
	 */
917
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
978
	public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) {
918
 
979
 
919
		String[] ids = listeObservation.getIdSelectionnees();
980
		String[] ids = listeObservation.getIdSelectionnees();
920
		observationModele.mettreAjourMotsCles(ids, motsClesEnCours, arbreMC);
981
		observationModele.mettreAjourMotsCles(ids, motsClesEnCours, arbreMC);
921
 
982
 
922
	}
983
	}
923
 
984
 
924
	/**
985
	/**
925
	 * Appelle le médiateur pour qu'il ajoute un mot clé dans l'arbre des mots
986
	 * Appelle le médiateur pour qu'il ajoute un mot clé dans l'arbre des mots
926
	 * clés
987
	 * clés
927
	 * 
988
	 * 
928
	 * @param n
989
	 * @param n
929
	 *            le noeud à ajouter à l'arbre
990
	 *            le noeud à ajouter à l'arbre
930
	 * @param arbreMC
991
	 * @param arbreMC
931
	 *            le nouvel arbre de mots clés à mettre à jour
992
	 *            le nouvel arbre de mots clés à mettre à jour
932
	 */
993
	 */
933
	public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) {
994
	public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) {
934
		observationModele.ajouterMotCleDansArbre(n, arbreMC);
995
		observationModele.ajouterMotCleDansArbre(n, arbreMC);
935
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
996
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
936
 
997
 
937
	}
998
	}
938
 
999
 
939
	/**
1000
	/**
940
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre
1001
	 * Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre
941
	 * dans l'arbre des mots clés
1002
	 * dans l'arbre des mots clés
942
	 * 
1003
	 * 
943
	 * @param n
1004
	 * @param n
944
	 *            le noeud à supprimer
1005
	 *            le noeud à supprimer
945
	 * @param arbreMC
1006
	 * @param arbreMC
946
	 *            le nouvel arbre de mots clés à mettre à jour
1007
	 *            le nouvel arbre de mots clés à mettre à jour
947
	 */
1008
	 */
948
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1009
	public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) {
949
 
1010
 
950
		observationModele.supprimerMotCleDansArbre(n, arbreMC);
1011
		observationModele.supprimerMotCleDansArbre(n, arbreMC);
951
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n.getId(), false);
1012
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n.getId(), false);
952
 
1013
 
953
	}
1014
	}
954
 
1015
 
955
	/**
1016
	/**
956
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots
1017
	 * Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots
957
	 * clés
1018
	 * clés
958
	 * 
1019
	 * 
959
	 * @param n
1020
	 * @param n
960
	 *            le noeud à modifier
1021
	 *            le noeud à modifier
961
	 * @param arbreMC
1022
	 * @param arbreMC
962
	 *            le nouvel arbre de mots clés à mettre à jour
1023
	 *            le nouvel arbre de mots clés à mettre à jour
963
	 */
1024
	 */
964
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
1025
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
965
 
1026
 
966
		observationModele.modifierMotCleDansArbre(n, arbreMC);
1027
		observationModele.modifierMotCleDansArbre(n, arbreMC);
967
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
1028
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
968
 
1029
 
969
	}
1030
	}
970
 
1031
 
971
	/**
1032
	/**
972
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans
1033
	 * Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans
973
	 * l'arbre des mots clés
1034
	 * l'arbre des mots clés
974
	 * 
1035
	 * 
975
	 * @param n
1036
	 * @param n
976
	 *            le noeud à déplacer
1037
	 *            le noeud à déplacer
977
	 * @param arbreMC
1038
	 * @param arbreMC
978
	 *            le nouvel arbre de mots clés à mettre à jour
1039
	 *            le nouvel arbre de mots clés à mettre à jour
979
	 */
1040
	 */
980
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
1041
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
981
 
1042
 
982
		observationModele.deplacerMotCleDansArbre(n, arbreMC);
1043
		observationModele.deplacerMotCleDansArbre(n, arbreMC);
983
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
1044
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false);
984
	}
1045
	}
985
 
1046
 
986
 
1047
 
987
	public void rafraichirArbreMotsCles(Tree arbreMotsCles) {
1048
	public void rafraichirArbreMotsCles(Tree arbreMotsCles) {
988
		
1049
		
989
		arbreMotsClesVue.rafraichir(arbreMotsCles, false);
1050
		arbreMotsClesVue.rafraichir(arbreMotsCles, false);
990
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(arbreMotsCles, false);
1051
		getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(arbreMotsCles, false);
991
		
1052
		
992
	}
1053
	}
993
 
1054
 
994
 
1055
 
995
	public void obtenirArbreMotsCles(Rafraichissable r) {
1056
	public void obtenirArbreMotsCles(Rafraichissable r) {
996
		
1057
		
997
		observationModele.obtenirArbreMotsCles(r);
1058
		observationModele.obtenirArbreMotsCles(r);
998
	}
1059
	}
999
	
1060
	
1000
	public ListeObservation obtenirCacheObservation() {
1061
	public ListeObservation obtenirCacheObservation() {
1001
		return observationModele.getCacheObservation();
1062
		return observationModele.getCacheObservation();
1002
	}
1063
	}
1003
 
1064
 
1004
	public void donneesExterieures(Object nouvelleDonnees) {
1065
	public void donneesExterieures(Object nouvelleDonnees) {
1005
		if(nouvelleDonnees instanceof Tree) {
1066
		if(nouvelleDonnees instanceof Tree) {
1006
			
1067
			
1007
			Tree arbreMotsCles = (Tree)nouvelleDonnees ;
1068
			Tree arbreMotsCles = (Tree)nouvelleDonnees ;
1008
			observationModele.rafraichirArbreMotsCles(nouvelleDonnees);
1069
			observationModele.rafraichirArbreMotsCles(nouvelleDonnees);
1009
			rafraichirArbreMotsCles(arbreMotsCles);
1070
			rafraichirArbreMotsCles(arbreMotsCles);
1010
		}
1071
		}
1011
	}
1072
	}
1012
	
1073
	
1013
	public void transmettreDonnees(Object o) {
1074
	public void transmettreDonnees(Object o) {
1014
		carnetEnLigneMediateur.donneesObsVersImages(o);
1075
		carnetEnLigneMediateur.donneesObsVersImages(o);
1015
	}
1076
	}
1016
 
1077
 
1017
	public void onModeModification() {
1078
	public void onModeModification() {
1018
		
1079
		
1019
		String[] ids = listeObservation.getIdSelectionnees();
1080
		String[] ids = listeObservation.getIdSelectionnees();
1020
		Observation obs = listeObservation.getCacheListeObservation().get(ids[ids.length]);
1081
		Observation obs = listeObservation.getCacheListeObservation().get(ids[ids.length]);
1021
		if(ids.length > 1) {
1082
		if(ids.length > 1) {
1022
			formulaireSaisieObservationVue.setMasseModification(true);
1083
			formulaireSaisieObservationVue.setMasseModification(true);
1023
			ListeObservation listeObs = new ListeObservation();
1084
			ListeObservation listeObs = new ListeObservation();
1024
			for(int i=0; i < ids.length;i++) {
1085
			for(int i=0; i < ids.length;i++) {
1025
				Observation obsAjout = observationModele.getCacheObservation().get(ids[i]);
1086
				Observation obsAjout = observationModele.getCacheObservation().get(ids[i]);
1026
				listeObs.ajouterObservation(obsAjout);
1087
				listeObs.ajouterObservation(obsAjout);
1027
			}
1088
			}
1028
			formulaireSaisieObservationVue.rafraichir(listeObs, false);
1089
			formulaireSaisieObservationVue.rafraichir(listeObs, false);
1029
		} else {
1090
		} else {
1030
			formulaireSaisieObservationVue.setMasseModification(false);
1091
			formulaireSaisieObservationVue.setMasseModification(false);
1031
			// affichage des détails dans le formulaire d'observation
1092
			// affichage des détails dans le formulaire d'observation
1032
			formulaireSaisieObservationVue.rafraichir(obs, false) ;
1093
			formulaireSaisieObservationVue.rafraichir(obs, false) ;
1033
		}
1094
		}
-
 
1095
		
-
 
1096
		conteneurFormulaire.setTitle("Modification");
-
 
1097
	}
-
 
1098
	
-
 
1099
	public void onModeCreation() {
-
 
1100
		conteneurFormulaire.setTitle("Création");
-
 
1101
	}
-
 
1102
 
-
 
1103
	public void obtenirInformationCoord(Rafraichissable r, LatLng coord) {
-
 
1104
		observationModele.obtenirInformationCoord(r,coord);
-
 
1105
	}
-
 
1106
	
-
 
1107
	public void obtenirInformationCommune(Rafraichissable r, String nomCommune, String codePostal) {
-
 
1108
		observationModele.obtenirInformationCommune(r,nomCommune, codePostal);
-
 
1109
	}
-
 
1110
 
-
 
1111
	public void obtenirInformationCoord(LatLng coord) {
-
 
1112
		observationModele.obtenirInformationCoord(cartoObservationVue,coord);
-
 
1113
		if(!cartoObservationVue.isVisible()){
-
 
1114
			cartoObservationVue.masquerChargement(true);
-
 
1115
			ongletsSaisieCarto.activate(1);
-
 
1116
		}
-
 
1117
	}
-
 
1118
 
-
 
1119
	public void obtenirInformationCommune(String nomCommune,
-
 
1120
			String codePostal) {
-
 
1121
		observationModele.obtenirInformationCommune(cartoObservationVue,nomCommune, codePostal);	
-
 
1122
		if(!cartoObservationVue.isVisible()){
-
 
1123
			cartoObservationVue.masquerChargement(true);
-
 
1124
			ongletsSaisieCarto.activate(1);
-
 
1125
		}
-
 
1126
	}
-
 
1127
 
-
 
1128
	public void rafraichirSaisieCommuneObservation(EntiteGeographiqueObservation infosCommune) {
-
 
1129
		formulaireSaisieObservationVue.rafraichir(infosCommune, false);
-
 
1130
		ongletsSaisieCarto.activate(0);
1034
	}
1131
	}
1035
}
1132
}