24,6 → 24,8 |
import org.tela_botanica.client.util.AutoCompletionRefComboBox; |
import org.tela_botanica.client.util.Util; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.maps.client.geom.LatLng; |
import com.google.gwt.user.client.Timer; |
import com.google.gwt.user.client.Window; |
262,6 → 264,14 |
|
private ComboBox selecteurStadePheno = null; |
|
private HTML lienAfficherChampsEtendus = null; |
|
FormPanel conteneurChampEtenduGauche = null; |
FormPanel conteneurChampEtenduDroite = null; |
|
private boolean afficherChampsEtendus = false; |
private boolean premierAffichage = true; |
|
private Map<String, TextField> listeChampsEtendus; |
|
/** |
619,6 → 629,43 |
} |
}); |
|
lienAfficherChampsEtendus = new HTML("Afficher les champs étendus"); |
lienAfficherChampsEtendus.setStyleName("img-curseur-depl"); |
lienAfficherChampsEtendus.setStyleName("lienAfficherChampsEtendus"); |
lienAfficherChampsEtendus.setVisible(false); |
|
lienAfficherChampsEtendus.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if(afficherChampsEtendus) { |
afficherChampsEtendus = false; |
if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) { |
conteneurChampEtenduGauche.hide(); |
conteneurChampEtenduDroite.hide(); |
} |
lienAfficherChampsEtendus.setText("Afficher les champs étendus"); |
|
} else { |
afficherChampsEtendus = true; |
if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) { |
conteneurChampEtenduGauche.show(); |
conteneurChampEtenduDroite.show(); |
} |
lienAfficherChampsEtendus.setText("Cacher les champs étendus"); |
} |
} |
}); |
panneauPremierColonne.add(lienAfficherChampsEtendus); |
panneauPremierColonne.addListener(new PanelListenerAdapter() { |
@Override |
public void onAfterLayout(Container c) { |
if(premierAffichage) { |
lienAfficherChampsEtendus.setVisible(false); |
premierAffichage = false; |
} |
} |
}); |
|
// on ajoute les listeners |
ajouterListeners() ; |
saisieTabindex(); |
1679,6 → 1726,12 |
TextField champEtendu = listeChampsEtendus.get(it.next()); |
champEtendu.destroy(); |
} |
if(conteneurChampEtenduGauche != null && conteneurChampEtenduDroite != null) { |
conteneurChampEtenduGauche.clear(); |
conteneurChampEtenduDroite.clear(); |
panneauPremierColonne.remove(conteneurChampEtenduGauche); |
panneauSecondeColonne.remove(conteneurChampEtenduDroite); |
} |
listeChampsEtendus = null; |
} |
} |
1685,29 → 1738,53 |
|
private void afficherChampsEtendus(Observation obs) { |
viderChampsEtendus(); |
conteneurChampEtenduGauche = new FormPanel(); |
conteneurChampEtenduDroite = new FormPanel(); |
|
if(obs.getChampsEtendus().size() > 0) { |
listeChampsEtendus = new HashMap<String, TextField>(obs.getChampsEtendus().size()); |
boolean gauche = true; |
for (Iterator<String> iterator = obs.getChampsEtendus().keySet().iterator(); iterator.hasNext();) { |
String id = iterator.next(); |
ChampEtendu champ = obs.getChampsEtendus().get(id); |
String valeur = champ.getValeur(); |
String label = champ.getLabel(); |
|
TextField champTexteEtendu = new TextField(); |
champTexteEtendu.setAutoWidth(true); |
champTexteEtendu.setLabel(formaterLabel(label)); |
champTexteEtendu.setTitle(label); |
champTexteEtendu.setId(id); |
champTexteEtendu.setValue(valeur); |
if(gauche) { |
panneauPremierColonne.add(champTexteEtendu); |
} else { |
panneauSecondeColonne.add(champTexteEtendu); |
lienAfficherChampsEtendus.setVisible(true); |
conteneurChampEtenduGauche.setAutoWidth(true); |
conteneurChampEtenduGauche.setStyle("conteneurChampsEtendus"); |
conteneurChampEtenduGauche.setLabelWidth(150); |
conteneurChampEtenduGauche.setBodyBorder(false); |
conteneurChampEtenduDroite.setAutoWidth(true); |
conteneurChampEtenduDroite.setStyle("conteneurChampsEtendus"); |
conteneurChampEtenduDroite.setLabelWidth(150); |
conteneurChampEtenduDroite.setBodyBorder(false); |
listeChampsEtendus = new HashMap<String, TextField>(obs.getChampsEtendus().size()); |
boolean gauche = true; |
for (Iterator<String> iterator = obs.getChampsEtendus().keySet().iterator(); iterator.hasNext();) { |
String id = iterator.next(); |
ChampEtendu champ = obs.getChampsEtendus().get(id); |
String valeur = champ.getValeur(); |
String label = champ.getLabel(); |
|
TextField champTexteEtendu = new TextField(); |
champTexteEtendu.setWidth("90%"); |
champTexteEtendu.setLabel(label); |
champTexteEtendu.setTitle(label); |
champTexteEtendu.setId(id); |
champTexteEtendu.setValue(valeur); |
if(gauche) { |
conteneurChampEtenduGauche.add(champTexteEtendu); |
} else { |
conteneurChampEtenduDroite.add(champTexteEtendu); |
} |
listeChampsEtendus.put(id, champTexteEtendu); |
gauche = !gauche; |
} |
listeChampsEtendus.put(id, champTexteEtendu); |
gauche = !gauche; |
panneauPremierColonne.add(conteneurChampEtenduGauche); |
panneauSecondeColonne.add(conteneurChampEtenduDroite); |
|
// pour corriger le décalage sur le panneau induit par le lien d'affichage |
conteneurChampEtenduDroite.setPaddings(25, 0, 0, 0); |
|
if(!afficherChampsEtendus) { |
conteneurChampEtenduGauche.setVisible(false); |
conteneurChampEtenduDroite.setVisible(false); |
} |
} else { |
lienAfficherChampsEtendus.setVisible(false); |
} |
doLayout(); |
} |
1727,14 → 1804,6 |
return valeursChampsEtendus; |
} |
|
private String formaterLabel(String label) { |
String labelFmt = label; |
if(label.length() > 15) { |
labelFmt = label.substring(0, 14); |
} |
return labelFmt; |
} |
|
public void raz() |
{ |
raz(Champs.TOUT); |