/trunk/src/org/tela_botanica/client/util/Util.java |
---|
480,9 → 480,8 |
String numeroNom = ((JSONString) noms.get(1)).stringValue(); |
String statut= ((JSONString) noms.get(2)).stringValue(); |
ReferentielNom nomScientifique = new ReferentielNom(nom, numeroNom, statut); |
// clef améliorée : permet de désambiguiser les noms identiques |
// (ex: Scilla bifolia) |
referentielNomData.put(numeroNom + "|" + nom, nomScientifique); |
// FIXME : et si le numero de nom n'est pas unique ? (cas de multirefrentiel....) |
referentielNomData.put(nomScientifique.getNom(),nomScientifique); |
} |
} |
} else { |
/trunk/src/org/tela_botanica/client/util/autocompletion/AutoCompletionComboBox.java |
---|
5,12 → 5,16 |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.util.Util; |
import org.tela_botanica.client.cel2; |
import org.tela_botanica.client.modeles.objets.Utilisateur; |
import com.google.gwt.core.client.Callback; |
import com.google.gwt.core.client.JavaScriptObject; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyDownEvent; |
import com.google.gwt.event.dom.client.KeyDownHandler; |
import com.google.gwt.event.dom.client.KeyPressEvent; |
import com.google.gwt.event.dom.client.KeyPressHandler; |
import com.google.gwt.event.logical.shared.SelectionEvent; |
import com.google.gwt.event.logical.shared.SelectionHandler; |
import com.google.gwt.event.logical.shared.ValueChangeEvent; |
24,15 → 28,21 |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.Timer; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.ChangeListener; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.MultiWordSuggestOracle; |
import com.google.gwt.user.client.ui.SuggestBox; |
import com.google.gwt.user.client.ui.SuggestBox.DefaultSuggestionDisplay; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.SuggestBox.SuggestionDisplay; |
import com.google.gwt.user.client.ui.SuggestOracle; |
import com.google.gwt.user.client.ui.Widget; |
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; |
import com.gwtext.client.widgets.BoxComponent; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.PanelListener; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.layout.FitLayout; |
71,8 → 81,8 |
Iterator<String> it = possibilites.keySet().iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
String cleAffichee = preTraiterValeurAvantAffichage(cle); |
MultiWordSuggestion muWoSug = new MultiWordSuggestion(cle, cleAffichee); |
String cleAffichee = preTraiterValeurAvantAffichage(possibilites.get(cle)); |
MultiWordSuggestion muWoSug = new MultiWordSuggestion(possibilites.get(cle), cleAffichee); |
retenus.add(muWoSug); |
} |
122,11 → 132,9 |
if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { |
if((sgd == null || !sgd.isSuggestionListShowing())) { |
onValidationSaisie(); |
Util.LogVersFirebug("je passe ici"); |
event.stopPropagation(); |
return; |
} else { |
Util.LogVersFirebug("je passe là"); |
// Dans les autres cas, un appui sur entrée ne doit pas redéclencher l'autcomplétion |
return; |
} |
155,7 → 163,7 |
} |
}; |
suggestions.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>(){ |
suggestions.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>(){ |
@Override |
public void onSelection(SelectionEvent<Suggestion> event) { |
onSelectionValeur(); |
281,20 → 289,12 |
return suggestions.getText(); |
} |
public void setText(String texte) { |
suggestions.setText(texte); |
} |
public String getRawValue() { |
return suggestions.getText(); |
} |
public String getValue() { |
return suggestions.getValue(); |
} |
public void setValue(String valeur) { |
suggestions.setText(valeur); |
public void setValue(String texte) { |
suggestions.setText(texte); |
} |
public void reset() { |
321,8 → 321,8 |
suggestions.setWidth(largeur+"px"); |
} |
protected String preTraiterValeurAvantAffichage(String cle) { |
return possibilites.get(cle); |
protected String preTraiterValeurAvantAffichage(String valeur) { |
return valeur; |
} |
protected String preTraiterUrlRequete(String urlRequete, String valeur) { |
return urlRequete+URL.encodeQueryString(valeur); |
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java |
---|
93,7 → 93,6 |
private AutoCompletionComboBox milieu = null; |
private TextField comment = null; |
private AutoCompletionComboBox localite = null; |
private Button effacerLocalite = null; |
private String codeLocalite = null; |
private String pays = null; |
341,7 → 340,7 |
@Override |
protected void onModificationValeur() { |
localiteModifiee = true; |
localiteModifiee = true; |
verifierPresenceTaxonSaisi(); |
} |
351,21 → 350,6 |
} |
}; |
// Bouton pour supprimer totalement la localisation d'une obs (zone géo + coords) |
effacerLocalite = new Button("X", new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
localite.setText(""); |
localite.setValue(""); |
localiteModifiee = true; |
latitude.setValue(""); |
latModifiee = true; |
longitude.setValue(""); |
longModifiee = true; |
altitude.setValue(""); |
altModifiee = true; |
} |
}); |
effacerLocalite.setTooltip("Supprimer la localisation de l'observation (localité, coordonnées, altitude)"); |
//création du lien "Accès carto" dans le formulaire; |
basculerverscarto = new HTML(" <a id=\"lien_carto\" title=\""+Msg.get("aide-lien-localiser")+"\" href=\"#\" tabindex=\"2\">"+Msg.get("localiser-zone")+"</a>"); |
379,10 → 363,9 |
//Sur une meme ligne, ajout de plusieurs champs |
htmllocalitePanel = new MultiFieldPanel(); |
//int largeurlocalite = Window.getClientWidth()/5; |
htmllocalitePanel.addToRow(localite, 280); |
htmllocalitePanel.addToRow(effacerLocalite, 150); |
htmllocalitePanel.addToRow(basculerverscarto, 130); |
int largeurlocalite = Window.getClientWidth()/4; |
htmllocalitePanel.addToRow(localite, largeurlocalite); |
htmllocalitePanel.addToRow(basculerverscarto, 160); |
htmllocalitePanel.setBorder(false); |
htmllocalitePanel.setId("x-localite-panel"); |
535,9 → 518,8 |
// Pour éviter qu'un mauvais nn ne soit gardé lors d'une modification |
// vers un nom ne faisant pas partie du référentiel |
numeroNom = null; |
String cle = espece.getValue(); |
if(referentielNom.containsKey(cle)) { |
numeroNom = referentielNom.get(cle).getNumeroNom(); |
if(referentielNom.containsKey(espece.getText())) { |
numeroNom = referentielNom.get(espece.getText()).getNumeroNom(); |
} |
verifierPresenceTaxonSaisi(); |
} |
553,8 → 535,8 |
} |
@Override |
protected String preTraiterValeurAvantAffichage(String cle) { |
ReferentielNom nomValeur = referentielNom.get(cle); |
protected String preTraiterValeurAvantAffichage(String valeur) { |
ReferentielNom nomValeur = referentielNom.get(valeur); |
String valeurAffichee = nomValeur.getNom(); |
// Pour afficher les noms retenus en gras |
if (nomValeur.estRetenu()) { |
781,14 → 763,7 |
} |
protected void surSelectionEspece() { |
//String cle = espece.getText(); |
String cle = espece.getValue(); |
ReferentielNom nom = referentielNom.get(cle); |
// Bricolage immonde : sans ça, la combobox affiche la clef au lieu d'afficher |
// la valeur - WTF?? - pas trouvé moyen de faire mieux (attention aux effets |
// de bord dégueus) |
espece.setText(nom.getNom()); |
// retour à la vie normale |
ReferentielNom nom = referentielNom.get(espece.getText()); |
numeroNom = nom.getNumeroNom(); |
selectionEspece = true; |
observationMediateur.obtenirImageInformationExternes(referentielTaxo, numeroNom); |