package fr.openwide.core.showcase.web.application.widgets.component;
import java.util.List;
import org.apache.wicket.injection.Injector;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.retzlaff.select2.ISelect2AjaxAdapter;
import fr.openwide.core.showcase.core.business.user.model.User;
import fr.openwide.core.showcase.core.business.user.search.IUserSearchQuery;
import fr.openwide.core.showcase.core.business.user.service.IUserService;
public class UserSelect2AjaxAdapter implements ISelect2AjaxAdapter<User> {
private static final long serialVersionUID = 4710983767659627112L;
@SpringBean
private IUserService userService;
@SpringBean
private IUserSearchQuery userSearchQuery;
public UserSelect2AjaxAdapter() {
Injector.get().inject(this);
}
@Override
public String getChoiceId(User user) {
return user.getId().toString();
}
@Override
public User getChoice(String id) {
return userService.getById(Long.valueOf(id));
}
@Override
public List<User> getChoices(int start, int count, String term) {
return userSearchQuery.nameAutocomplete(term).fullList();
}
@Override
public Object getDisplayValue(User user) {
return user.getFullName();
}
}