Package gwtquery.plugins.ui.widgets

Source Code of gwtquery.plugins.ui.widgets.Autocomplete

package gwtquery.plugins.ui.widgets;

import gwtquery.plugins.ui.Ui;
import gwtquery.plugins.ui.UiPlugin;
import gwtquery.plugins.ui.UiWidget;
import gwtquery.plugins.ui.WidgetOptions;
import gwtquery.plugins.ui.utilities.Position;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayString;

/**
* Implements jQuery-UI's Autocomplete
*
* @see <a href="http://docs.jquery.com/UI/Autocomplete">jQuery-UI's Autocomplete</a>
*
* @author Philippe Laflamme
*/
public class Autocomplete extends UiWidget<Autocomplete, Autocomplete.Options> {

  public static class Options extends WidgetOptions<Options> {

    protected Options() {

    }

    public static native final Options create()
    /*-{
      return {};
    }-*/;

    public native final Options delay(int delay)
    /*-{
      this["delay"] = delay;
      return this;
    }-*/;

    public native final int delay()
    /*-{
      return this["delay"];
    }-*/;

    public native final Options minLength(int minLength)
    /*-{
      this["minLength"] = minLength;
      return this;
    }-*/;

    public native final int minLength()
    /*-{
      return this["minLength"];
    }-*/;

    public native final Options position(Position.Options position)
    /*-{
      this["position"] = position;
      return this;
    }-*/;

    public native final Position.Options position()
    /*-{
      return this["position"];
    }-*/;

    public native final Options source(JsArrayString source)
    /*-{
      this["source"] = source;
      return this;
    }-*/;

    public final Options source(String... source) {
      JsArrayString a = JavaScriptObject.createArray().cast();
      for(String s : source)
        a.push(s);
      source(a);
      return this;
    };

    public native final Options source(JsArray<Source> source)
    /*-{
      this["source"] = source;
      return this;
    }-*/;

    public final Options source(Source... source) {
      JsArray<Source> a = JavaScriptObject.createArray().cast();
      for(Source s : source)
        a.push(s);
      source(a);
      return this;
    };

    public native final Options source(String url)
    /*-{
      this["source"] = url;
      return this;
    }-*/;

    // TODO: another flavor of source is a callback function
  }

  public static class Source extends JavaScriptObject {

    protected Source() {

    }

    public static native final Source create()
    /*-{
      return {};
    }-*/;

    public native final Source label(String label)
    /*-{
      this["label"] = label;
      return this;
    }-*/;

    public native final String label()
    /*-{
      return this["label"];
    }-*/;

    public native final Source value(String value)
    /*-{
      this["value"] = value;
      return this;
    }-*/;

    public native final String value()
    /*-{
      return this["value"];
    }-*/;

  }

  public static class Event extends JavaScriptObject {

    public static final String search = "autocompletesearch";

    public static final String open = "autocompleteopen";

    public static final String focus = "autocompletefocus";

    public static final String select = "autocompleteselect";

    public static final String close = "autocompleteclose";

    public static final String change = "autocompletechange";

    protected Event() {
    }

    public native final Source item()
    /*-{
      return this["item"];
    }-*/;
  }

  private static class AutocompletePlugin implements UiPlugin<Autocomplete> {

    public Autocomplete init(Ui ui, WidgetOptions<?> options) {
      return new Autocomplete(ui, (Options) options.cast());
    }
  }

  public static final Class<Autocomplete> Autocomplete = Autocomplete.class;

  static {
    registerPlugin(Autocomplete.class, new AutocompletePlugin());
  }

  public Autocomplete(Ui ui, Autocomplete.Options options) {
    super(ui, "autocomplete", options);
  }

  public Autocomplete search() {
    invoke("search");
    return this;
  }

  public Autocomplete search(String value) {
    invoke("search", value);
    return this;
  }

  public Autocomplete close() {
    invoke("close");
    return this;
  }

}
TOP

Related Classes of gwtquery.plugins.ui.widgets.Autocomplete

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.