Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 325 Rev 342
Line 13... Line 13...
13
import org.tela_botanica.client.vues.observation.CartographieObservationVue;
13
import org.tela_botanica.client.vues.observation.CartographieObservationVue;
14
import org.tela_botanica.client.vues.observation.FormulaireSaisieObservationVue;
14
import org.tela_botanica.client.vues.observation.FormulaireSaisieObservationVue;
15
import org.tela_botanica.client.vues.observation.ListeObservationVue;
15
import org.tela_botanica.client.vues.observation.ListeObservationVue;
16
import org.tela_botanica.client.vues.observation.MenuObservationVue;
16
import org.tela_botanica.client.vues.observation.MenuObservationVue;
17
import org.tela_botanica.client.vues.observation.PanneauFiltresObservationVues;
17
import org.tela_botanica.client.vues.observation.PanneauFiltresObservationVues;
18
import org.tela_botanica.client.vues.observation.filtres.ArbreMotsClesObservationVue;
-
 
19
import org.tela_botanica.client.vues.observation.indicateurs.ImageGeneriqueVue;
18
import org.tela_botanica.client.vues.observation.indicateurs.ImageGeneriqueVue;
20
import org.tela_botanica.client.vues.observation.indicateurs.InformationRepartitionVue;
19
import org.tela_botanica.client.vues.observation.indicateurs.InformationRepartitionVue;
21
import org.tela_botanica.client.vues.observation.indicateurs.LienExterneVue;
20
import org.tela_botanica.client.vues.observation.indicateurs.LienExterneVue;
22
import org.tela_botanica.client.vues.observation.indicateurs.MiniZoomImageVue;
21
import org.tela_botanica.client.vues.observation.indicateurs.MiniZoomImageVue;
23
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue;
22
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue;
Line 24... Line 23...
24
 
23
 
25
import com.google.gwt.core.client.GWT;
-
 
26
import com.google.gwt.core.client.JavaScriptObject;
24
import com.google.gwt.core.client.GWT;
27
import com.google.gwt.maps.client.geom.LatLng;
-
 
28
import com.google.gwt.user.client.DOM;
-
 
29
import com.google.gwt.user.client.Event;
25
import com.google.gwt.maps.client.geom.LatLng;
30
import com.google.gwt.user.client.History;
26
import com.google.gwt.user.client.History;
31
import com.google.gwt.user.client.Window;
-
 
32
import com.google.gwt.user.client.ui.RootPanel;
27
import com.google.gwt.user.client.Window;
33
import com.gwtext.client.core.EventObject;
28
import com.gwtext.client.core.EventObject;
34
import com.gwtext.client.core.Ext;
29
import com.gwtext.client.core.Ext;
35
import com.gwtext.client.core.ExtElement;
30
import com.gwtext.client.core.ExtElement;
36
import com.gwtext.client.core.RegionPosition;
31
import com.gwtext.client.core.RegionPosition;
37
import com.gwtext.client.data.Record;
32
import com.gwtext.client.data.Record;
-
 
33
import com.gwtext.client.data.Tree;
38
import com.gwtext.client.data.Tree;
34
import com.gwtext.client.dd.DragData;
39
import com.gwtext.client.widgets.BoxComponent;
35
import com.gwtext.client.widgets.BoxComponent;
40
import com.gwtext.client.widgets.Component;
36
import com.gwtext.client.widgets.Component;
41
import com.gwtext.client.widgets.Container;
37
import com.gwtext.client.widgets.Container;
42
import com.gwtext.client.widgets.Panel;
38
import com.gwtext.client.widgets.Panel;
43
import com.gwtext.client.widgets.TabPanel;
-
 
44
import com.gwtext.client.widgets.event.ContainerListener;
39
import com.gwtext.client.widgets.TabPanel;
45
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
-
 
46
import com.gwtext.client.widgets.event.PanelListener;
40
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
47
import com.gwtext.client.widgets.event.PanelListenerAdapter;
41
import com.gwtext.client.widgets.event.PanelListenerAdapter;
-
 
42
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
48
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
43
import com.gwtext.client.widgets.grid.GridDragData;
49
import com.gwtext.client.widgets.layout.BorderLayout;
44
import com.gwtext.client.widgets.layout.BorderLayout;
50
import com.gwtext.client.widgets.layout.BorderLayoutData;
45
import com.gwtext.client.widgets.layout.BorderLayoutData;
51
import com.gwtext.client.widgets.layout.FitLayout;
46
import com.gwtext.client.widgets.layout.FitLayout;
52
import com.gwtext.client.widgets.layout.RowLayout;
47
import com.gwtext.client.widgets.layout.RowLayout;
53
import com.gwtext.client.widgets.layout.RowLayoutData;
-
 
54
import com.gwtext.client.widgets.map.LatLonPoint;
-
 
55
import com.gwtext.client.widgets.menu.BaseItem;
-
 
56
import com.gwtext.client.widgets.menu.Item;
-
 
57
import com.gwtext.client.widgets.menu.Menu;
-
 
58
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
-
 
59
import com.gwtext.client.widgets.tree.TreeEditor;
48
import com.gwtext.client.widgets.layout.RowLayoutData;
Line 60... Line 49...
60
import com.gwtext.client.widgets.tree.TreeNode;
49
import com.gwtext.client.widgets.tree.TreeNode;
61
 
50
 
Line 80... Line 69...
80
	
69
	
81
	/** Mediateur general de l'application carnet en ligne
70
	/** Mediateur general de l'application carnet en ligne
82
	 * 
71
	 * 
83
	 * 
72
	 * 
84
	 */
-
 
85
	
73
	 */
Line 86... Line 74...
86
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
74
	private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
87
	
75
	
Line 125... Line 113...
125
	 */
113
	 */
Line 126... Line 114...
126
	
114
	
Line 127... Line 115...
127
  	private Panel details = new Panel("Details");
115
  	private Panel details = new Panel("Details");
128
 
-
 
129
  	private LienExterneVue liExtVue = null;
-
 
Line 130... Line 116...
130
  	
116
 
131
  	private ArbreMotsClesObservationVue arbreMotsClesVue = null ;
117
  	private LienExterneVue liExtVue = null;
132
 
118
 
Line 185... Line 171...
185
		final BorderLayoutData regionNord = new BorderLayoutData(
171
		final BorderLayoutData regionNord = new BorderLayoutData(
186
				RegionPosition.NORTH);
172
				RegionPosition.NORTH);
Line 187... Line 173...
187
 
173
 
188
		final BorderLayoutData regionCentre = new BorderLayoutData(
174
		final BorderLayoutData regionCentre = new BorderLayoutData(
-
 
175
				RegionPosition.CENTER);
Line 189... Line 176...
189
				RegionPosition.CENTER);
176
		regionCentre.setSplit(true);
190
 
177
 
-
 
178
		  
Line 191... Line -...
191
		  
-
 
192
		final BorderLayoutData regionEst = new BorderLayoutData(
-
 
193
				RegionPosition.EAST);
-
 
194
	
-
 
Line 195... Line 179...
195
			
179
		final BorderLayoutData regionEst = new BorderLayoutData(
196
		if (GWT.isScript()) {  // FIXME : ne fonctionne pas en mode hosted
180
				RegionPosition.EAST);
-
 
181
		regionEst.setSplit(true);
Line 197... Line -...
197
			regionEst.setSplit(true);
-
 
198
		}
-
 
199
 
-
 
Line 200... Line 182...
200
		final BorderLayoutData regionOuest = new BorderLayoutData(
182
	
Line 201... Line 183...
201
				RegionPosition.WEST);
183
 
202
		
184
		final BorderLayoutData regionOuest = new BorderLayoutData(
Line 420... Line 402...
420
	}
402
	}
Line 421... Line 403...
421
	
403
	
422
	private void initialiserArbres() {
404
	private void initialiserArbres() {
423
		getPanneauFiltres().getArbreDateObservationFiltreVue().initialiser();
405
		getPanneauFiltres().getArbreDateObservationFiltreVue().initialiser();
-
 
406
		getPanneauFiltres().getArbreEntiteGeographiqueObservationFiltreVue().initialiser();		
424
		getPanneauFiltres().getArbreEntiteGeographiqueObservationFiltreVue().initialiser();		
407
		getPanneauFiltres().getArbreMotsClesObservationVue().initialiser();	
Line 425... Line 408...
425
	}
408
	}
Line 436... Line 419...
436
	
419
	
Line 437... Line 420...
437
	public void onRafraichissementListeObservations() {
420
	public void onRafraichissementListeObservations() {
438
		
421
		
-
 
422
		carnetEnLigneMediateur.donneesObsVersImages(listeObservation.getCacheListeObservation());
-
 
423
		observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation());
439
		carnetEnLigneMediateur.donneesObsVersImages(listeObservation.getCacheListeObservation());
424
		
Line 440... Line 425...
440
		observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation());
425
		filtres.getArbreMotsClesObservationVue().cocherMotsCles(new String[0]);
441
	}
426
	}
442
	
427
	
Line 487... Line 472...
487
				
472
				
Line 488... Line 473...
488
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
473
		observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ;
Line 489... Line 474...
489
		
474
		
Line 490... Line 475...
490
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
475
		observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
Line 491... Line 476...
491
		
476
		
Line 591... Line 576...
591
	}
576
	}
Line 592... Line 577...
592
	
577
	
593
	
578
	
594
	// U du CRUD
-
 
Line -... Line 579...
-
 
579
	// U du CRUD
-
 
580
	public void modifierObservation(Observation obs) {
-
 
581
		
-
 
582
		// On prend soin de récupérer les mots clés de l'observation
595
	public void modifierObservation(Observation obs) {
583
		Observation obsMod = obtenirCacheObservation().get(obs.getNumeroOrdre());
596
	
584
		obs.setMotsCles(obsMod.getMotsCles());
597
		
585
		
598
	  // On rafraichit la liste d'observation 
586
		// On rafraichit la liste d'observation
Line 599... Line 587...
599
	  observationModele.modifierObservation(listeObservation, obs) ;
587
		observationModele.modifierObservation(listeObservation, obs) ;
Line 600... Line 588...
600
	  filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
588
		filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
601
	  filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
589
		filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
Line 679... Line 667...
679
		String chaineNomsFiltresDate = filtresDate[0] ;
667
		String chaineNomsFiltresDate = filtresDate[0] ;
680
		String chaineValFiltresDate = filtresDate[1] ;
668
		String chaineValFiltresDate = filtresDate[1] ;
Line 681... Line 669...
681
		
669
		
Line -... Line 670...
-
 
670
		String[] filtresTaxon = filtres.getRechercheLibreVue().renvoyerValeursAFiltrer();
-
 
671
		
682
		String[] filtresTaxon = filtres.getRechercheLibreVue().renvoyerValeursAFiltrer();
672
		String[] filtresMotsCles = filtres.getArbreMotsClesObservationVue().renvoyerValeursAFiltrer();
683
		
673
		
Line 684... Line 674...
684
		String chaineNomsFiltres = "" ;
674
		String chaineNomsFiltres = "" ;
685
		String chaineValFiltres = "" ;
675
		String chaineValFiltres = "" ;
Line 697... Line 687...
697
		if(!filtresTaxon[0].trim().equals("") && !filtresTaxon[1].trim().equals("")) {
687
		if(!filtresTaxon[0].trim().equals("") && !filtresTaxon[1].trim().equals("")) {
698
			chaineNomsFiltres += filtresTaxon[0];
688
			chaineNomsFiltres += filtresTaxon[0];
699
			chaineValFiltres += filtresTaxon[1];
689
			chaineValFiltres += filtresTaxon[1];
700
		}
690
		}
Line -... Line 691...
-
 
691
		
-
 
692
		if(!filtresMotsCles[0].trim().equals("") && !filtresMotsCles[1].trim().equals("")) {
-
 
693
			chaineNomsFiltres += filtresMotsCles[0];
-
 
694
			chaineValFiltres += filtresMotsCles[1];
-
 
695
		}
701
		
696
		
702
		String[] nomsFiltres = chaineNomsFiltres.split(",") ;
697
		String[] nomsFiltres = chaineNomsFiltres.split(",") ;
Line 703... Line 698...
703
		String[] valsFiltres = chaineValFiltres.split(",") ;
698
		String[] valsFiltres = chaineValFiltres.split(",") ;
Line 774... Line 769...
774
	
769
	
775
	public void masquerChargementInfosObservations()
770
	public void masquerChargementInfosObservations()
776
	{
771
	{
Line 777... Line 772...
777
		ExtElement masked = Ext.get(details.getId());
772
		ExtElement masked = Ext.get(details.getId());
778
 
773
 
779
		if (details.isVisible() && masked != null && !masked.isMasked()) {
774
		if (details.isVisible() && masked != null) {
780
			informationRepartitionVue.raz() ;
775
			informationRepartitionVue.raz() ;
781
			imageGeneriqueVue.raz() ;
776
			imageGeneriqueVue.raz() ;
Line 787... Line 782...
787
	
782
	
788
	public void deMasquerChargementInfosObservations()
783
	public void deMasquerChargementInfosObservations()
789
	{
784
	{
Line 790... Line 785...
790
		ExtElement masked = Ext.get(details.getId());
785
		ExtElement masked = Ext.get(details.getId());
791
 
786
 
792
		if (details.isVisible() && masked != null && masked.isMasked()) {
787
		if (details.isVisible() && masked != null) {
793
			masked.unmask() ;
788
			masked.unmask() ;
Line 916... Line 911...
916
	        final String anum=History.getToken();
911
	        final String anum=History.getToken();
917
	        observationModele.analyserHistorique(formulaireSaisieObservationVue,anum);
912
	        observationModele.analyserHistorique(formulaireSaisieObservationVue,anum);
918
		}
913
		}
919
	}
914
	}
Line 920... Line -...
920
 
-
 
921
 
-
 
922
	public void montrerContextMenuArbre(final TreeNode n, EventObject e,
-
 
923
			TreeEditor te) {
-
 
924
			Menu mn = new Menu();
-
 
925
			final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
-
 
926
					"Ajouter mot cle");
-
 
927
			final com.gwtext.client.widgets.menu.Item suppN = new Item(
-
 
928
					"Supprimer mot cle");
-
 
929
 
-
 
930
			mn.addItem(ajoutN);
-
 
931
			mn.addItem(suppN);
-
 
932
 
-
 
933
			mn.addListener(new MenuListenerAdapter() {
-
 
934
 
-
 
935
				public void onItemClick(BaseItem item, EventObject e) {
-
 
936
					if (item.equals(suppN)) {
-
 
937
						arbreMotsClesVue
-
 
938
								.supprimerNoeud(n);
-
 
939
					}
-
 
940
					if (item.equals(ajoutN)) {
-
 
941
						arbreMotsClesVue.ajouterNoeud(
-
 
942
								n);
-
 
943
					}
-
 
944
				}
-
 
945
			});
-
 
946
 
-
 
947
			mn.showAt(e.getXY());
-
 
948
		
-
 
949
	}
-
 
950
 
-
 
951
 
915
 
952
	/**
916
	/**
953
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
917
	 * Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
954
	 * mot clé
918
	 * mot clé
955
	 * 
919
	 * 
Line 961... Line 925...
961
	public void mettreAjourMotsClesId(String text, String id) {
925
	public void mettreAjourMotsClesId(String text, String id) {
Line 962... Line 926...
962
 
926
 
Line 963... Line 927...
963
		observationModele.mettreAjourMotsClesId(text, id);
927
		observationModele.mettreAjourMotsClesId(text, id);
-
 
928
 
-
 
929
	}
-
 
930
	
-
 
931
	public boolean gererDDObsSurMotCle(TreeNode NoeudMotCle, DragData dragData) {
-
 
932
		
-
 
933
		if(dragData instanceof GridDragData) {
-
 
934
			// TODO : reporter cette logique dans le médiateur !
-
 
935
			GridDragData gdd = ((GridDragData)dragData);
-
 
936
			
-
 
937
			String idMotCle = ((String[])NoeudMotCle.getUserObject())[1];
-
 
938
			
-
 
939
			Record[] obsALier = gdd.getSelections();
-
 
940
			
-
 
941
			String idObsALier[] = new String[obsALier.length];
-
 
942
			String idObsALierString = "";
-
 
943
			
-
 
944
			for(int i = 0; i < obsALier.length; i++) {
-
 
945
				if(i != 0) {
-
 
946
					idObsALierString += ", ";
-
 
947
				}
-
 
948
				idObsALierString += obsALier[i].getAsString("ordre_observation");
-
 
949
				idObsALier[i] = obsALier[i].getAsString("ordre_observation");
-
 
950
				
-
 
951
			}
-
 
952
			
-
 
953
			String message = "Lier les observations "; 
-
 
954
			
-
 
955
			if(idObsALier.length == 1) {
-
 
956
				message = "Lier l'observation "; 
-
 
957
			}
-
 
958
			
-
 
959
			if(Window.confirm(message+idObsALierString+" au projet "+NoeudMotCle.getText()+" ?")) {
-
 
960
				mettreAjourMotsCles(idMotCle, idObsALier);
-
 
961
				
-
 
962
				return true;
-
 
963
			} else {
-
 
964
				return false;
-
 
965
			}
-
 
966
		} else {
-
 
967
			return false;
-
 
968
		}
-
 
969
	}
-
 
970
	
-
 
971
	public void gererDDMotCleSurObs(String idObs, String IdMC) {
-
 
972
		
-
 
973
		Observation obs = obtenirCacheObservation().get(idObs);
-
 
974
		
-
 
975
		if(obs == null) {
-
 
976
			return;
-
 
977
		}
-
 
978
		
-
 
979
		if(observationAvoirMotCle(IdMC, idObs)) {
-
 
980
			if(Window.confirm("Voulez vous supprimer la liaison entre l'observation et le mot clé ?")) {
-
 
981
				String nouveauMotsCles = obs.getMotsCles().replace(IdMC, "");
-
 
982
				nouveauMotsCles = nouveauMotsCles.replace(";;", ";");
-
 
983
				
-
 
984
				obs.setMotsCles(nouveauMotsCles);
-
 
985
				
-
 
986
				observationModele.modifierObservation(listeObservation, obs);
-
 
987
			}
Line -... Line 988...
-
 
988
		}
-
 
989
	}
-
 
990
 
-
 
991
	public String gererOverDDMotCleSurObs(String idObs, String IdMC) {
-
 
992
		
-
 
993
		if(observationAvoirMotCle(IdMC, idObs)) {
-
 
994
		    return "x-dd-drop-unlink";
-
 
995
		} else {
964
 
996
			return "x-dd-drop-nodrop";
965
	}
997
		}
966
 
998
	}
967
	/**
999
	/**
968
	 * Récupère les identifiants des images selectionnés et appelle le modèle
1000
	 * Récupère les identifiants des obs selectionnézs et appelle le modèle
969
	 * pour qu'il mette à jour les associations mots clés/images
1001
	 * pour qu'il mette à jour les associations mots clés/obs
970
	 * 
1002
	 * 
971
	 * @param motsClesEnCours
1003
	 * @param motsClesEnCours
972
	 *            les mots clés à associer aux images selectionnés séparés par
1004
	 *            les mots clés à associer aux images selectionnés séparés par
973
	 *            une ','
1005
	 *            un ';'
974
	 * @param arbreMC
1006
	 * @param arbreMC
Line 1046... Line 1078...
1046
	public void rafraichirArbreMotsCles(Tree arbreMotsCles) {
1078
	public void rafraichirArbreMotsCles(Tree arbreMotsCles) {
Line 1047... Line 1079...
1047
		
1079
		
Line 1048... Line 1080...
1048
		getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(arbreMotsCles, false);
1080
		getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(arbreMotsCles, false);
-
 
1081
		
-
 
1082
	}
-
 
1083
	
-
 
1084
	public boolean observationAvoirMotCle(String idMotCle, String idObs) {
-
 
1085
		Observation obs = obtenirCacheObservation().get(idObs);
-
 
1086
		if(obs == null) {
-
 
1087
			return false;
-
 
1088
		}
-
 
1089
		
-
 
1090
		if(obs.getMotsCles().contains(idMotCle)) {
-
 
1091
			return true;
-
 
1092
		}
-
 
1093
		
Line 1049... Line 1094...
1049
		
1094
		return false;
Line 1050... Line 1095...
1050
	}
1095
	}
Line 1142... Line 1187...
1142
		return listeObservation;
1187
		return listeObservation;
1143
	}
1188
	}
Line 1144... Line 1189...
1144
 
1189
 
Line -... Line 1190...
-
 
1190
	public void redimensionnerPanneaux(int adjHeight, int adjWidth) {
-
 
1191
		
-
 
1192
		formulaireSaisieObservationVue.setHeight(300);
1145
	public void redimensionnerPanneaux(int adjHeight, int adjWidth) {
1193
		
-
 
1194
		//if(listeObservation.getHeight() > centre.getHeight()) {
1146
		
1195
			listeObservation.setHeight(adjHeight/2);
Line 1147... Line 1196...
1147
		listeObservation.doLayout();
1196
		//}
Line 1148... Line 1197...
1148
		centre.doLayout();
1197
		centre.doLayout();