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) { |