package org.richfaces.demo.input.autocomplete; import java.io.Serializable; import java.util.Collection; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import org.richfaces.demo.model.person.Person; @ManagedBean @RequestScoped public class AutocompleteBean implements Serializable { private Person person; public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public List<Person> getPeople() { return Person.people; } public Collection<Person> suggest(FacesContext facesContext, UIComponent component, final String prefix) { return Collections2.filter(Person.people, new Predicate<Person>() { @Override public boolean apply(Person input) { if (prefix == null) { return true; } return input.getName().toLowerCase().startsWith(prefix.toLowerCase()); } }); } }