Skip to content

Instantly share code, notes, and snippets.

@pulse00
Created August 20, 2014 12:19
Show Gist options
  • Save pulse00/3f147bbd309ccd1b17e8 to your computer and use it in GitHub Desktop.
Save pulse00/3f147bbd309ccd1b17e8 to your computer and use it in GitHub Desktop.
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.typeaheadV10.Bloodhound;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.typeaheadV10.DataSet;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.typeaheadV10.Typeahead;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.typeaheadV10.TypeaheadConfig;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.PackageResourceReference;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class HomePage extends WebPage {
private static final long serialVersionUID = 1L;
public HomePage(final PageParameters parameters) {
super(parameters);
IModel<Test> model = new CompoundPropertyModel<Test>(new Test(""));
Form<Test> form = new Form<Test>("form", model) {
@Override
protected void onSubmit() {
super.onSubmit();
System.err.println("value is " + getModelObject().getValue());
}
};
DataSet<String> ds = new DataSet<String>(new SimpleBloodHound("engine"));
TypeaheadConfig config = new TypeaheadConfig(ds);
config.withHighlight(true);
config.withHint(false);
form.add(new Typeahead<String>("ta", new PropertyModel<String>(model, "value"), config));
add(form);
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem
.forReference(new PackageResourceReference(HomePage.class, "typeahead.js")));
}
private class SimpleBloodHound extends Bloodhound<String> {
public SimpleBloodHound(String name) {
super(name);
}
@Override
public Iterable<String> getChoices(String input) {
List<String> choices = new ArrayList<String>();
choices.add("foo");
choices.add("fooooo");
choices.add("fooaasdf");
choices.add("bar");
return choices;
}
@Override
public String renderChoice(String choice) {
return String.format("{\"value\": \"%s\"}", choice);
}
}
private class Test implements Serializable {
public String value;
public Test(String v) {
value = v;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment