Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2595 Rev 2602
Line 10... Line 10...
10
 
10
 
11
import org.tela_botanica.client.CarnetEnLigneMediateur;
11
import org.tela_botanica.client.CarnetEnLigneMediateur;
12
import org.tela_botanica.client.cel2;
12
import org.tela_botanica.client.cel2;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
14
import org.tela_botanica.client.modeles.dao.ListeReferentielChampsEtendusDAO;
14
import org.tela_botanica.client.modeles.dao.ListeReferentielChampsEtendusDAO;
15
import org.tela_botanica.client.modeles.dao.ListeReferentielPersoAsynchroneDAO;
15
import org.tela_botanica.client.modeles.objets.ChampEtendu;
16
import org.tela_botanica.client.modeles.objets.ChampEtendu;
16
import org.tela_botanica.client.modeles.objets.Configuration;
17
import org.tela_botanica.client.modeles.objets.Configuration;
17
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
18
import org.tela_botanica.client.modeles.objets.EntiteGeographiqueObservation;
18
import org.tela_botanica.client.modeles.objets.ListeObservation;
19
import org.tela_botanica.client.modeles.objets.ListeObservation;
19
import org.tela_botanica.client.modeles.objets.ListeReferentielLocalite;
20
import org.tela_botanica.client.modeles.objets.ListeReferentielLocalite;
-
 
21
import org.tela_botanica.client.modeles.objets.ListeReferentielNom;
20
import org.tela_botanica.client.modeles.objets.ListeReferentielNom;
22
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso;
21
import org.tela_botanica.client.modeles.objets.Observation;
23
import org.tela_botanica.client.modeles.objets.Observation;
22
import org.tela_botanica.client.modeles.objets.Ontologies;
24
import org.tela_botanica.client.modeles.objets.Ontologies;
23
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
25
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
-
 
26
import org.tela_botanica.client.modeles.objets.ReferentielNom;
24
import org.tela_botanica.client.modeles.objets.ReferentielNom;
27
import org.tela_botanica.client.modeles.objets.Utilisateur;
25
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
28
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
26
import org.tela_botanica.client.observation.ObservationMediateur;
29
import org.tela_botanica.client.observation.ObservationMediateur;
27
import org.tela_botanica.client.util.AutoCompletionRefComboBox;
30
import org.tela_botanica.client.util.AutoCompletionRefComboBox;
28
import org.tela_botanica.client.util.ChampSaisieEtendu;
31
import org.tela_botanica.client.util.ChampSaisieEtendu;
29
import org.tela_botanica.client.util.FormulaireSaisieChampEtendu;
32
import org.tela_botanica.client.util.FormulaireSaisieChampEtendu;
-
 
33
import org.tela_botanica.client.util.Util;
Line 30... Line 34...
30
import org.tela_botanica.client.util.Util;
34
import org.tela_botanica.client.util.autocompletion.AutoCompletionComboBox;
31
 
35
 
-
 
36
import com.google.gwt.event.dom.client.ClickEvent;
-
 
37
import com.google.gwt.event.dom.client.ClickHandler;
-
 
38
import com.google.gwt.http.client.Response;
-
 
39
import com.google.gwt.json.client.JSONArray;
-
 
40
import com.google.gwt.json.client.JSONParser;
32
import com.google.gwt.event.dom.client.ClickEvent;
41
import com.google.gwt.json.client.JSONString;
33
import com.google.gwt.event.dom.client.ClickHandler;
42
import com.google.gwt.json.client.JSONValue;
34
import com.google.gwt.user.client.Timer;
43
import com.google.gwt.user.client.Timer;
35
import com.google.gwt.user.client.Window;
44
import com.google.gwt.user.client.Window;
36
import com.google.gwt.user.client.ui.HTML;
45
import com.google.gwt.user.client.ui.HTML;
Line 47... Line 56...
47
import com.gwtext.client.data.RecordDef;
56
import com.gwtext.client.data.RecordDef;
48
import com.gwtext.client.data.Store;
57
import com.gwtext.client.data.Store;
49
import com.gwtext.client.data.StringFieldDef;
58
import com.gwtext.client.data.StringFieldDef;
50
import com.gwtext.client.widgets.BoxComponent;
59
import com.gwtext.client.widgets.BoxComponent;
51
import com.gwtext.client.widgets.Button;
60
import com.gwtext.client.widgets.Button;
-
 
61
import com.gwtext.client.widgets.Component;
52
import com.gwtext.client.widgets.Container;
62
import com.gwtext.client.widgets.Container;
53
import com.gwtext.client.widgets.DatePicker;
63
import com.gwtext.client.widgets.DatePicker;
54
import com.gwtext.client.widgets.Panel;
64
import com.gwtext.client.widgets.Panel;
55
import com.gwtext.client.widgets.ToolTip;
65
import com.gwtext.client.widgets.ToolTip;
56
import com.gwtext.client.widgets.Toolbar;
66
import com.gwtext.client.widgets.Toolbar;
Line 89... Line 99...
89
	private ObservationMediateur	observationMediateur		= null;
99
	private ObservationMediateur	observationMediateur		= null;
Line 90... Line 100...
90
 
100
 
Line 91... Line 101...
91
	FormPanel panneauFormulaire = null;
101
	FormPanel panneauFormulaire = null;
92
 
102
 
93
	private DateField date = null;
103
	private DateField date = null;
94
	private ComboBox lieudit = null;
104
	private AutoCompletionComboBox lieudit = null;
95
	private ComboBox station = null;
105
	private AutoCompletionComboBox station = null;
96
	private ComboBox milieu = null;
106
	private AutoCompletionComboBox milieu = null;
Line 97... Line 107...
97
	private TextField comment = null;
107
	private TextField comment = null;
98
	private ComboBox  localite = null;
108
	private ComboBox  localite = null;
Line 356... Line 366...
356
		htmllocalitePanel.setBorder(false);
366
		htmllocalitePanel.setBorder(false);
357
		htmllocalitePanel.setId("x-localite-panel");
367
		htmllocalitePanel.setId("x-localite-panel");
Line 358... Line 368...
358
 
368
 
Line 359... Line 369...
359
		panneauPremierColonne.add(htmllocalitePanel);
369
		panneauPremierColonne.add(htmllocalitePanel);
360
 
-
 
361
	    station = new AutoCompletionRefComboBox("Station", "station", observationMediateur, TypesReferentiels.REFERENTIEL_STATION) {
370
 
-
 
371
	    station = new AutoCompletionComboBox("Station", ListeReferentielPersoAsynchroneDAO.getUrlReferentielPerso(TypesReferentiels.REFERENTIEL_STATION)) {			
-
 
372
			@Override
-
 
373
			protected Map<String, String> parserResultatRequete(Response response) {
-
 
374
				return Util.parserRetourReferentielPerso(response);
-
 
375
			}
362
 
376
			
363
			@Override
377
			@Override
364
			public void onModificationValeur() {
378
			public void onSelectionValeur() {
-
 
379
				stationModifiee = true;
-
 
380
			}
-
 
381
			
-
 
382
			@Override
-
 
383
			protected void onModificationValeur() {
Line 365... Line 384...
365
				stationModifiee = true;
384
				stationModifiee = true;	
366
			}
385
			}
367
 
386
 
368
			@Override
387
			@Override
369
			public void onValidationSaisie() {
388
			public void onValidationSaisie() {
370
				validerSaisie(Champs.STATION);
389
				validerSaisie(Champs.STATION);
Line 371... Line 390...
371
			}  
390
			}  
372
	    };
391
		};
373
	    panneauPremierColonne.add(station, new AnchorLayoutData("95%"));
392
	    panneauPremierColonne.add(station, new AnchorLayoutData("95%"));
Line 498... Line 517...
498
	    selecteurAbondance.setHideTrigger(false);
517
	    selecteurAbondance.setHideTrigger(false);
499
	    selecteurAbondance.setForceSelection(false);
518
	    selecteurAbondance.setForceSelection(false);
500
	    selecteurAbondance.setTpl(champsListeTpl);
519
	    selecteurAbondance.setTpl(champsListeTpl);
501
	    panneauPremierColonne.add(selecteurAbondance,  new AnchorLayoutData("95%"));
520
	    panneauPremierColonne.add(selecteurAbondance,  new AnchorLayoutData("95%"));
Line 502... Line 521...
502
	    
521
	    
503
	    lieudit = new AutoCompletionRefComboBox("Lieu-dit", "lieudit",observationMediateur,TypesReferentiels.REFERENTIEL_LIEU_DIT) {
-
 
504
 
522
	    lieudit = new AutoCompletionComboBox("Lieu-dit", ListeReferentielPersoAsynchroneDAO.getUrlReferentielPerso(TypesReferentiels.REFERENTIEL_LIEU_DIT)) {			
-
 
523
			@Override
-
 
524
			protected Map<String, String> parserResultatRequete(Response response) {
-
 
525
				return Util.parserRetourReferentielPerso(response);
-
 
526
			}
-
 
527
			
505
			@Override
528
			@Override
506
			public void onModificationValeur() {
529
			public void onSelectionValeur() {
507
				lieuDitModifie = true;
530
				lieuDitModifie = true;
-
 
531
			}
-
 
532
			
-
 
533
			@Override
-
 
534
			protected void onModificationValeur() {
-
 
535
				lieuDitModifie = true;	
Line 508... Line 536...
508
			}
536
			}
509
 
537
 
510
			@Override
538
			@Override
511
			public void onValidationSaisie() {
539
			public void onValidationSaisie() {
512
				validerSaisie(Champs.LIEUDIT);
540
				validerSaisie(Champs.LIEUDIT);
513
			}
541
			}  
Line 514... Line 542...
514
	    };
542
		};
515
	    panneauSecondeColonne.add(lieudit,  new AnchorLayoutData("95%"));
-
 
516
	       
543
	    panneauSecondeColonne.add(lieudit,  new AnchorLayoutData("95%"));
-
 
544
	       
-
 
545
	    milieu = new AutoCompletionComboBox("Milieu", ListeReferentielPersoAsynchroneDAO.getUrlReferentielPerso(TypesReferentiels.REFERENTIEL_MILIEU)) {			
-
 
546
			@Override
-
 
547
			protected Map<String, String> parserResultatRequete(Response response) {
-
 
548
				return Util.parserRetourReferentielPerso(response);
517
	    milieu = new AutoCompletionRefComboBox("Milieu","milieu",observationMediateur,TypesReferentiels.REFERENTIEL_MILIEU) {
549
			}
518
 
550
			
519
			@Override
551
			@Override
-
 
552
			public void onSelectionValeur() {
-
 
553
				milieuModifie = true;
-
 
554
			}
-
 
555
			
-
 
556
			@Override
Line 520... Line 557...
520
			public void onModificationValeur() {
557
			protected void onModificationValeur() {
521
				milieuModifie = true;
558
				milieuModifie = true;	
522
			}
559
			}
523
 
560
 
524
			@Override
-
 
525
			public void onValidationSaisie() {
561
			@Override
526
				validerSaisie(Champs.MILIEU);
562
			public void onValidationSaisie() {
Line 527... Line 563...
527
			}
563
				validerSaisie(Champs.MILIEU);
528
	    
564
			}  
Line 603... Line 639...
603
	        	panneauPremierColonne.doLayout();
639
	        	panneauPremierColonne.doLayout();
604
	        	panneauSecondeColonne.doLayout();
640
	        	panneauSecondeColonne.doLayout();
Line 605... Line 641...
605
	        		        
641
	        		        
606
	        	htmllocalitePanel.doLayout();
642
	        	htmllocalitePanel.doLayout();
-
 
643
	        	htmlPanel.doLayout();
-
 
644
	        	
Line 607... Line 645...
607
	        	htmlPanel.doLayout();
645
	        	redimensionnerChampsEtendus();
608
	        
646
	        
609
	        	doLayout();
647
	        	doLayout();
Line 629... Line 667...
629
				} else {
667
				} else {
630
					afficherChampsEtendus = true;
668
					afficherChampsEtendus = true;
631
					if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) {
669
					if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) {
632
						conteneurChampEtenduGauche.show();
670
						conteneurChampEtenduGauche.show();
633
						conteneurChampEtenduDroite.show();
671
						conteneurChampEtenduDroite.show();
-
 
672
						redimensionnerChampsEtendus();
634
					}
673
					}
635
					lienAfficherChampsEtendus.setText("Cacher les champs étendus");
674
					lienAfficherChampsEtendus.setText("Cacher les champs étendus");
636
				}
675
				}
637
			}
676
			}
638
		});
677
		});
Line 716... Line 755...
716
			}
755
			}
717
		});
756
		});
718
	}
757
	}
Line 719... Line 758...
719
	
758
	
720
	private void ajouterChampEtenduAuFormulaire(ChampSaisieEtendu nChamp, boolean fermerPopup) {
759
	private void ajouterChampEtenduAuFormulaire(ChampSaisieEtendu nChamp, boolean fermerPopup) {
721
		ChampEtendu chet = new ChampEtendu(nChamp.getName(), nChamp.getFieldLabel(), "");
760
		ChampEtendu chet = new ChampEtendu(nChamp.getCle(), nChamp.getLabel(), "");
722
		Map<String, ChampEtendu> champsEt = getValeursChampsEtendus();
761
		Map<String, ChampEtendu> champsEt = getValeursChampsEtendus();
723
		if(!champsEt.containsKey(chet.getCle())) {
762
		if(!champsEt.containsKey(chet.getCle())) {
724
			champsEt.put(chet.getCle(), chet);
763
			champsEt.put(chet.getCle(), chet);
725
			afficherChampsEtendus = true;
764
			afficherChampsEtendus = true;
Line 858... Line 897...
858
 
897
 
859
		boutonModifier.addListener(new ButtonListenerAdapter() {
898
		boutonModifier.addListener(new ButtonListenerAdapter() {
860
			@Override
899
			@Override
861
			public void onClick(Button button, EventObject e) {
900
			public void onClick(Button button, EventObject e) {
862
				if(selectionMultiple) {
901
				if(selectionMultiple) {
863
						modifierObservationEnMasse(null);
902
					modifierObservationEnMasse(null);
864
				} else {
903
				} else {
865
					modifierObservation() ;
904
					modifierObservation() ;
866
				}
905
				}
867
			}
906
			}
Line 1406... Line 1445...
1406
		String referentiel = this.referentielTaxo;
1445
		String referentiel = this.referentielTaxo;
Line 1407... Line 1446...
1407
		
1446
		
1408
		observationMediateur.obtenirListeReferentielNom(this,referentiel ,esp);
1447
		observationMediateur.obtenirListeReferentielNom(this,referentiel ,esp);
Line 1409... Line -...
1409
	}
-
 
1410
 
-
 
1411
	protected void obtenirReferentielStation() {
-
 
1412
		observationMediateur.obtenirListeReferentielPerso(this,TypesReferentiels.REFERENTIEL_STATION,station.getText());
-
 
1413
	}
1448
	}
1414
 
1449
 
1415
	protected void obtenirListeReferentielMilieu() {
1450
	protected void obtenirListeReferentielMilieu() {
Line 1416... Line 1451...
1416
		observationMediateur.obtenirListeReferentielPerso(this,TypesReferentiels.REFERENTIEL_MILIEU,milieu.getText());
1451
		observationMediateur.obtenirListeReferentielPerso(this,TypesReferentiels.REFERENTIEL_MILIEU,milieu.getText());
Line 1791... Line 1826...
1791
	}
1826
	}
Line 1792... Line 1827...
1792
 
1827
 
1793
	private void viderChampsEtendus() {
1828
	private void viderChampsEtendus() {
1794
		if(listeChampsEtendus != null) {
1829
		if(listeChampsEtendus != null) {
1795
			for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) {
1830
			for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) {
1796
				TextField champEtendu = listeChampsEtendus.get(it.next());
1831
				ChampSaisieEtendu champEtendu = listeChampsEtendus.get(it.next());
1797
				champEtendu.destroy();
1832
				champEtendu.destroy();
1798
			}
1833
			}
1799
			if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) {
1834
			if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) {
1800
				conteneurChampEtenduGauche.clear();
1835
				conteneurChampEtenduGauche.clear();
Line 1850... Line 1885...
1850
					label = correspondancesClesLabel.get(id);
1885
					label = correspondancesClesLabel.get(id);
1851
				} else {
1886
				} else {
1852
					label = Util.formaterCleChampsEtenduPourAffichage(label);
1887
					label = Util.formaterCleChampsEtenduPourAffichage(label);
1853
				}
1888
				}
Line 1854... Line 1889...
1854
 
1889
 
1855
				ChampSaisieEtendu champTexteEtendu = new ChampSaisieEtendu(label, id);
1890
				ChampSaisieEtendu champTexteEtendu = new ChampSaisieEtendu(label, id, ListeReferentielChampsEtendusDAO.getUrlRequeteValeursChampEtendu(id));
1856
				if(champ.equals(champsAFocus)) {
1891
				if(champ.equals(champsAFocus)) {
1857
					champTexteEtendu.focus();
1892
					champTexteEtendu.focus();
Line 1858... Line 1893...
1858
				}
1893
				}
Line 1872... Line 1907...
1872
			panneauSecondeColonne.add(conteneurChampEtenduDroite);
1907
			panneauSecondeColonne.add(conteneurChampEtenduDroite);
Line 1873... Line 1908...
1873
 
1908
 
1874
			if(!afficherChampsEtendus) {
1909
			if(!afficherChampsEtendus) {
1875
				conteneurChampEtenduGauche.setVisible(false);
1910
				conteneurChampEtenduGauche.setVisible(false);
-
 
1911
				conteneurChampEtenduDroite.setVisible(false);
-
 
1912
			} else {
1876
				conteneurChampEtenduDroite.setVisible(false);
1913
				redimensionnerChampsEtendus();
1877
			}
1914
			}
1878
		} else {
1915
		} else {
1879
			lienAfficherChampsEtendus.setVisible(false);
1916
			lienAfficherChampsEtendus.setVisible(false);
1880
		}
1917
		}
1881
		doLayout();
1918
		doLayout();
-
 
1919
	}
-
 
1920
	
-
 
1921
	private void redimensionnerChampsEtendus() {
-
 
1922
		int largeur = conteneurChampEtenduGauche.getWidth();
-
 
1923
		if(largeur <= 0) {
-
 
1924
			Timer t = new Timer() {		
-
 
1925
				@Override
-
 
1926
				public void run() {
-
 
1927
					redimensionnerChampsEtendus();
-
 
1928
				}
-
 
1929
			};
-
 
1930
			t.schedule(150);
-
 
1931
		} else {
-
 
1932
			for (Iterator<String> iterator = listeChampsEtendus.keySet().iterator(); iterator
-
 
1933
					.hasNext();) {
-
 
1934
				ChampSaisieEtendu ch = listeChampsEtendus.get(iterator.next());
-
 
1935
				ch.redimensionner(largeur - 15);		
-
 
1936
			}
-
 
1937
		}
Line 1882... Line 1938...
1882
	}
1938
	}
1883
 
1939
 
1884
	private Map<String, ChampEtendu> getValeursChampsEtendus() {
1940
	private Map<String, ChampEtendu> getValeursChampsEtendus() {
1885
		Map<String, ChampEtendu> valeursChampsEtendus = new HashMap<String, ChampEtendu>();
1941
		Map<String, ChampEtendu> valeursChampsEtendus = new HashMap<String, ChampEtendu>();
1886
		if(listeChampsEtendus != null) {
1942
		if(listeChampsEtendus != null) {
1887
			for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) {
1943
			for (Iterator<String> it = listeChampsEtendus.keySet().iterator(); it.hasNext();) {
1888
				String cle = it.next();
1944
				String cle = it.next();
1889
				TextField champTexteEtendu = listeChampsEtendus.get(cle);
1945
				ChampSaisieEtendu champTexteEtendu = listeChampsEtendus.get(cle);
1890
				String label = champTexteEtendu.getFieldLabel();
1946
				String label = champTexteEtendu.getLabel();
1891
				String valeur = champTexteEtendu.getValueAsString();
1947
				String valeur = champTexteEtendu.getRawValue();
1892
				ChampEtendu champEtendu = new ChampEtendu(cle, label, valeur);
1948
				ChampEtendu champEtendu = new ChampEtendu(cle, label, valeur);
1893
				valeursChampsEtendus.put(cle, champEtendu);
1949
				valeursChampsEtendus.put(cle, champEtendu);
1894
			}
1950
			}