Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 28 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client;



import java.util.EventListener;


import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;


import org.tela_botanica.client.AutoCompleteAsyncTextBox;

/**
 * Affiche une liste de localite qui peuvent etre selectionnees, retourne la valeur de la localite selectionne et une code associe
 * (gettext et getvalue pour le code associe)
 * Utilise un assistant de saisie asynchrone.
 */

public class LocationAssistant extends Composite implements EventListener, ResponseTextHandler  {

  private AutoCompleteAsyncTextBox autoCompletebox = new AutoCompleteAsyncTextBox(this);
  private HorizontalPanel panel = new HorizontalPanel();
  
  private Mediator mediator = null;
  
  public LocationAssistant(Mediator med) {

        mediator=med;
        mediator.registerLocationAssistant(this);               
          
//      autoCompletebox.setFocus(true);
        autoCompletebox.setSearchUrl(mediator.getServiceBaseUrl()+"/LocationSearch/");
        
        panel.add(autoCompletebox);

        autoCompletebox.setWidth("100%");
    initWidget(panel);
    autoCompletebox.addAutoCompleteAsyncTextBoxListener(mediator);

  }

public void onCompletion(String str) {
          
                        JSONValue jsonValue= JSONParser.parse(str);
                        JSONArray jsonArray;
                        JSONArray jsonArrayNested;

                        
                        if ((jsonArray = jsonValue.isArray()) != null) {
                                for (int i = 0; i < jsonArray.size(); ++i) {
                                  if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
                                        autoCompletebox.addItem(((JSONString) jsonArrayNested.get(0)).stringValue(),((JSONString) jsonArrayNested.get(1)).stringValue());
                                  }
                                }
                        }

                        autoCompletebox.displayList();
                    
}         

public String getText() {
        return autoCompletebox.getText();
}


public void setText(String str) {
        autoCompletebox.setText(str);
}

public void setValue(String value) {
        autoCompletebox.setValue(value);
}

public String getValue() {
        return autoCompletebox.getValue();
}
  
  
}