package fr.openwide.core.showcase.web.application.widgets.component;
import java.util.List;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.model.IModel;
import fr.openwide.core.showcase.core.business.user.model.User;
import fr.openwide.core.showcase.core.business.user.search.IUserSearchQuery;
import fr.openwide.core.wicket.more.markup.html.form.AutocompleteAjaxComponent;
import fr.openwide.core.wicket.more.model.GenericEntityModel;
public class UserAutocompleteAjaxComponent extends AutocompleteAjaxComponent<User> {
private static final long serialVersionUID = -4827520520856697565L;
private static final UserChoiceRenderer USER_CHOICE_RENDERER = new UserChoiceRenderer();
public UserAutocompleteAjaxComponent(String id) {
this(id, new GenericEntityModel<Long, User>(new User()));
}
public UserAutocompleteAjaxComponent(String id, IModel<User> model) {
super(id, model, USER_CHOICE_RENDERER);
}
@Override
public List<User> getValues(String term) {
return getBean(IUserSearchQuery.class).nameAutocomplete(term).fullList();
}
@Override
public User getValueOnSearchFail(String input) {
return null;
}
private static class UserChoiceRenderer extends ChoiceRenderer<User> {
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(User user) {
return user != null ? user.getFullName() : "";
}
@Override
public String getIdValue(User user, int index) {
return user != null ? String.valueOf(user.getId()) : "-1";
}
}
}