Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1939 → Rev 1940

/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java
22,8 → 22,11
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
import org.tela_botanica.client.observation.ObservationMediateur;
import org.tela_botanica.client.util.AutoCompletionRefComboBox;
import org.tela_botanica.client.util.ChampSaisieEtendu;
import org.tela_botanica.client.util.FormulaireSaisieChampEtendu;
import org.tela_botanica.client.util.Util;
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.maps.client.geom.LatLng;
30,6 → 33,8
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.PopupPanel;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
257,14 → 262,18
private boolean selectionMultiple = false;
 
private HTML lienAfficherChampsEtendus = null;
private HTML lienAjouterChampsEtendus = null;
 
Panel conteneurChampEtenduGauche = null;
Panel conteneurChampEtenduDroite = null;
 
private boolean afficherChampsEtendus = false;
private boolean afficherLienAjoutChampsEtendus = false;
private boolean premierAffichage = true;
 
private Map<String, TextField> listeChampsEtendus;
private PopupPanel popUpAjoutChampEtendu = new PopupPanel();
private Map<String, ChampSaisieEtendu> listeChampsEtendus;
 
/**
* Constructeur sans argument (privé car ne doit pas être utilisé)
561,7 → 570,7
}
 
panneauFormulaire.add(panneauIntermediaire);
 
if (Ext.isIE()) {
panneauPremierColonne.setButtonAlign(Position.RIGHT);
panneauPremierColonne.addButton(boutonOK);
624,6 → 633,15
}
}
});
if(Configuration.saisieChampsEtendusActivee()) {
lienAjouterChampsEtendus = new HTML("Ajouter un champ étendu");
lienAjouterChampsEtendus.addStyleName("lienAjouterChampEtendu");
lienAjouterChampsEtendus.setVisible(true);
panneauPremierColonne.add(lienAjouterChampsEtendus);
gererLienAjoutChampsEtendus();
}
panneauPremierColonne.add(lienAfficherChampsEtendus);
panneauPremierColonne.addListener(new PanelListenerAdapter() {
@Override
639,7 → 657,42
ajouterToolTipsBoutons();
saisieTabindex();
}
private void gererLienAjoutChampsEtendus() {
popUpAjoutChampEtendu.setStylePrimaryName("popup_champ_etendu");
lienAjouterChampsEtendus.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireSaisieChampEtendu formChamp = new FormulaireSaisieChampEtendu() {
@Override
public void surValidation(ChampSaisieEtendu champ) {
ajouterChampEtenduAuFormulaire(champ);
popUpAjoutChampEtendu.clear();
popUpAjoutChampEtendu.hide();
}
 
@Override
public void surAnnulation() {
popUpAjoutChampEtendu.clear();
popUpAjoutChampEtendu.hide();
}
};
popUpAjoutChampEtendu.add(formChamp);
popUpAjoutChampEtendu.center();
popUpAjoutChampEtendu.setTitle("Ajout d'un champ étendu");
popUpAjoutChampEtendu.show();
}
});
}
private void ajouterChampEtenduAuFormulaire(ChampSaisieEtendu nChamp) {
ChampEtendu chet = new ChampEtendu(nChamp.getName(), nChamp.getFieldLabel(), "");
Map<String, ChampEtendu> champsEt = getValeursChampsEtendus();
champsEt.put(chet.getCle(), chet);
afficherChampsEtendus = true;
afficherChampsEtendus(champsEt, chet);
}
 
private void ajouterToolTipsBoutons() {
boutonOK.setTitle("Crée une nouvelle observation à partir des champs saisis dans le formulaire");
boutonModifier.setTitle("Modifie la ou les observations sélectionnées");
1289,11 → 1342,11
}
 
public void obtenirListeReferentielNom() {
String esp=espece.getText().replaceAll(" ","/*");
esp=esp.replaceAll("%","");
String referentiel = this.referentielTaxo;
 
observationMediateur.obtenirListeReferentielNom(this,referentiel ,esp);
String esp=espece.getText().replaceAll(" ","/*");
esp=esp.replaceAll("%","");
String referentiel = this.referentielTaxo;
observationMediateur.obtenirListeReferentielNom(this,referentiel ,esp);
}
 
protected void obtenirReferentielStation() {
1679,7 → 1732,7
selecteurReferentielTaxo.setRawValue(VALEURS_MULTIPLES);
}
 
afficherChampsEtendus(obs);
afficherChampsEtendus(obs.getChampsEtendus(), null);
}
 
private boolean doitAfficherLatLon(Observation obs) {
1709,7 → 1762,7
}
}
 
private void afficherChampsEtendus(Observation obs) {
private void afficherChampsEtendus(Map<String, ChampEtendu> champsEtendus, ChampEtendu champsAFocus) {
viderChampsEtendus();
 
FormLayout flmd = new FormLayout();
1731,22 → 1784,23
conteneurChampEtenduDroite.setBodyBorder(false);
 
// pour corriger le décalage sur le panneau induit par le lien d'affichage
conteneurChampEtenduDroite.setPaddings(25, 0, 0, 0);
conteneurChampEtenduDroite.setPaddings(42, 0, 0, 0);
 
if(obs.getChampsEtendus() != null && obs.getChampsEtendus().size() > 0) {
if(champsEtendus != null && champsEtendus.size() > 0) {
lienAfficherChampsEtendus.setVisible(true);
listeChampsEtendus = new HashMap<String, TextField>(obs.getChampsEtendus().size());
listeChampsEtendus = new HashMap<String, ChampSaisieEtendu>(champsEtendus.size());
boolean gauche = true;
for (Iterator<String> iterator = obs.getChampsEtendus().keySet().iterator(); iterator.hasNext();) {
for (Iterator<String> iterator = champsEtendus.keySet().iterator(); iterator.hasNext();) {
String id = iterator.next();
ChampEtendu champ = obs.getChampsEtendus().get(id);
ChampEtendu champ = champsEtendus.get(id);
String valeur = champ.getValeur();
String label = champ.getLabel();
 
TextField champTexteEtendu = new TextField();
champTexteEtendu.setWidth("90%");
ChampSaisieEtendu champTexteEtendu = new ChampSaisieEtendu(label, id);
if(champ.equals(champsAFocus)) {
champTexteEtendu.focus();
}
champTexteEtendu.setLabel(label);
champTexteEtendu.setTitle(label);
champTexteEtendu.setId(id);
champTexteEtendu.setValue(valeur);
if(gauche) {