Subversion Repositories eFlore/Applications.cel

Rev

Rev 220 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 220 Rev 251
Line 5... Line 5...
5
// TODO : systematiser les onQuelquechose, appelle depuis les vues
5
// TODO : systematiser les onQuelquechose, appelle depuis les vues
Line 6... Line 6...
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;
-
 
11
import org.tela_botanica.client.modeles.ListeObservation;
10
import org.tela_botanica.client.modeles.ListeObservation;
12
import org.tela_botanica.client.modeles.Observation;
11
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;
Line 18... Line 20...
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;
Line 21... Line 23...
21
 
23
 
-
 
24
import com.google.gwt.core.client.GWT;
-
 
25
import com.google.gwt.core.client.JavaScriptObject;
22
import com.google.gwt.core.client.GWT;
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;
-
 
36
import com.gwtext.client.data.Tree;
32
import com.gwtext.client.data.Tree;
37
import com.gwtext.client.widgets.BoxComponent;
-
 
38
import com.gwtext.client.widgets.Component;
33
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;
-
 
41
import com.gwtext.client.widgets.TabPanel;
35
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;
-
 
45
import com.gwtext.client.widgets.event.PanelListenerAdapter;
38
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;
-
 
51
import com.gwtext.client.widgets.layout.RowLayoutData;
43
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;
Line 96... Line 105...
96
	 * Saisie des Observations
105
	 * Saisie des Observations
97
	 */
106
	 */
Line 98... Line 107...
98
	
107
	
Line -... Line 108...
-
 
108
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
-
 
109
	
-
 
110
	/**
-
 
111
	 * Cartographie
-
 
112
	 */
Line 99... Line 113...
99
	private FormulaireSaisieObservationVue formulaireSaisieObservationVue=null;
113
	private CartographieObservationVue cartoObservationVue = null;
100
	
114
	
101
	
115
	
Line 145... Line 159...
145
  	private NuageMotsClesVue nuaMC = null;
159
  	private NuageMotsClesVue nuaMC = null;
Line 146... Line 160...
146
  	
160
  	
Line 147... Line 161...
147
  	private Panel conteneurFormulaire = null ;
161
  	private Panel conteneurFormulaire = null ;
-
 
162
  	
-
 
163
  	private boolean importerObservations = false ;
-
 
164
 
-
 
165
	private TabPanel ongletsSaisieCarto;
Line 148... Line 166...
148
  	
166
 
149
  	private boolean importerObservations = false ;
167
	private Panel centre;
150
  	
168
  	
Line 151... Line 169...
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
	
-
 
155
	
172
	
156
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
173
	
157
	{
174
	private ObservationMediateur(CarnetEnLigneMediateur carnetEnLigneMediateur )
Line 158... Line 175...
158
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
175
	{
159
		
176
		this.carnetEnLigneMediateur=carnetEnLigneMediateur;
Line 160... Line -...
160
		
-
 
161
		// on crée un modèle
-
 
162
		observationModele = ObservationModele.Instance(this);
-
 
163
		
-
 
164
	
-
 
165
		listeObservation = new ListeObservationVue(this);
-
 
166
		listeObservation.setTitle("Observations");
-
 
167
		
-
 
168
		listeObservation.addListener(
-
 
169
				new PanelListenerAdapter() {
-
 
170
							public void onCollapse(Panel panel)  {
-
 
171
								ObservationMediateur.fireResize();
177
				
172
							}
178
		// on crée un modèle
173
						    public void onExpand(Panel panel) {
179
		observationModele = ObservationModele.Instance(this);
Line 174... Line 180...
174
						    	ObservationMediateur.fireResize();
180
		
Line 202... Line 208...
202
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
208
		panneauPrincipalObservation.setLayout(new BorderLayout()) ;
Line 203... Line 209...
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
-
 
212
		conteneurFormulaire = new Panel();
-
 
213
		cartoObservationVue = new CartographieObservationVue(this);
Line 206... Line 214...
206
		conteneurFormulaire = new Panel();
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) ;
-
 
222
		conteneurFormulaire.setAutoScroll(true) ;
-
 
223
		// Redimensionnement global sur collapse/expand
-
 
224
		
-
 
225
		
214
		conteneurFormulaire.setAutoScroll(true) ;
226
		ongletsSaisieCarto = new TabPanel();
215
		// Redimensionnement global sur collapse/expand
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();
Line -... Line 235...
-
 
235
		    }
-
 
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
				}
Line 223... Line -...
223
				    }
-
 
224
		});
-
 
225
		
258
				return true;
226
		
259
			}
227
		
260
		});
228
		
261
		
Line -... Line 262...
-
 
262
		centre = new Panel();
-
 
263
		centre.setLayout(new BorderLayout());
-
 
264
		centre.setAutoScroll(true);
-
 
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();
229
		final Panel centre = new Panel();
286
						}
230
		centre.setLayout(new RowLayout());
287
					}
Line -... Line 288...
-
 
288
				}
-
 
289
		});
-
 
290
		
-
 
291
		formulaireSaisieObservationVue.setBorder(false);
-
 
292
		conteneurFormulaire.add(formulaireSaisieObservationVue);
-
 
293
		
231
		centre.setAutoScroll(true);
294
		ongletsSaisieCarto.add(conteneurFormulaire);
-
 
295
		ongletsSaisieCarto.add(cartoObservationVue);
-
 
296
		
232
		centre.setBorder(false);
297
		BorderLayoutData listeLayoutData = new BorderLayoutData(RegionPosition.SOUTH);
-
 
298
		listeLayoutData.setSplit(true);
Line 233... Line 299...
233
		
299
		
Line 234... Line 300...
234
		formulaireSaisieObservationVue.setBorder(false);
300
		BorderLayoutData formLayoutData = new BorderLayoutData(RegionPosition.CENTER);
235
		conteneurFormulaire.add(formulaireSaisieObservationVue);
301
		listeLayoutData.setSplit(true);
236
		
302
		
237
		centre.add(conteneurFormulaire, new RowLayoutData("40%"));
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() {
-
 
245
					public void onCollapse(Panel panel)  {
310
		new PanelListenerAdapter() {
246
						ObservationMediateur.fireResize();
-
 
247
					}
311
			public void onCollapse(Panel panel)  {
248
				    public void onExpand(Panel panel) {
312
				ObservationMediateur.fireResize();
249
				    	ObservationMediateur.fireResize();
313
			}
250
				    }
314
		    public void onExpand(Panel panel) {
Line 290... Line 354...
290
		filtres.setTitleCollapse(true);
354
		filtres.setTitleCollapse(true);
291
		filtres.setCollapsible(true);
355
		filtres.setCollapsible(true);
Line 292... Line 356...
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();
Line 301... Line 365...
301
						    }
365
			    }
302
		});
366
		});
Line 303... Line 367...
303
				
367
				
Line 304... Line -...
304
		
-
 
305
		detailsEtMotsCles.add(details);
368
		
Line 306... Line -...
306
		//detailsEtMotsCles.add(panelMotsCles);
-
 
307
		
-
 
308
		panelMotsCles.hide();
369
		detailsEtMotsCles.add(details);
309
		
370
		//detailsEtMotsCles.add(panelMotsCles);
Line 310... Line 371...
310
		
371
		
Line 436... Line 497...
436
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
497
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
Line 437... Line 498...
437
		
498
		
Line 438... Line 499...
438
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
499
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
-
 
500
		
-
 
501
		observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation);
439
		
502
		
Line 440... Line 503...
440
		observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation);
503
		observationModele.obtenirInformationCommune(cartoObservationVue, obs.getLocalite(), obs.getIdentifiantLocalite());
Line 628... Line 691...
628
			
691
			
629
			String[] filtresDate = filtres.getArbreDateObservationFiltreVue().renvoyerValeursAFiltrer() ;
692
			String[] filtresDate = filtres.getArbreDateObservationFiltreVue().renvoyerValeursAFiltrer() ;
630
			String chaineNomsFiltresDate = filtresDate[0] ;
693
			String chaineNomsFiltresDate = filtresDate[0] ;
Line -... Line 694...
-
 
694
			String chaineValFiltresDate = filtresDate[1] ;
-
 
695
			
631
			String chaineValFiltresDate = filtresDate[1] ;
696
			String[] filtresTaxon = filtres.getRechercheTaxonVue().renvoyerValeursAFiltrer();
632
			
697
			
Line 633... Line 698...
633
			String chaineNomsFiltres = chaineNomsFiltresGeo+","+chaineNomsFiltresDate ;
698
			String chaineNomsFiltres = chaineNomsFiltresGeo+","+chaineNomsFiltresDate+","+filtresTaxon[0] ;
634
			String chaineValFiltres = chaineValFiltresGeo+","+chaineValFiltresDate ;
699
			String chaineValFiltres = chaineValFiltresGeo+","+chaineValFiltresDate+","+filtresTaxon[1] ;
Line 635... Line 700...
635
			
700
			
Line 636... Line 701...
636
			String[] nomsFiltres = chaineNomsFiltres.split(",") ;
701
			String[] nomsFiltres = chaineNomsFiltres.split(",") ;
Line 637... Line 702...
637
			String[] valsFiltres = chaineValFiltres.split(",") ;
702
			String[] valsFiltres = chaineValFiltres.split(",") ;
Line 638... Line 703...
638
			
703
			
Line 639... Line 704...
639
			longueur += nomsFiltres.length;
704
			longueur += nomsFiltres.length;
640
			
705
			
Line 658... Line 723...
658
						valeursFiltres[i][1] = valsFiltres[i] ;
723
						valeursFiltres[i][1] = valsFiltres[i] ;
659
					}
724
					}
660
				}
725
				}
661
			}
726
			}
Line 662... Line -...
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 ;
Line 670... Line 729...
670
	}
729
	}
Line 719... Line 778...
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
	}
Line 725... Line 786...
725
	
786
	
726
	public void deMasquerChargementInfosObservations()
787
	public void deMasquerChargementInfosObservations()
727
	{
788
	{
Line 1029... Line 1090...
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
}