package fr.openwide.core.showcase.web.application.portfolio.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.showcase.web.application.portfolio.page.UserDescriptionPage;
import fr.openwide.core.wicket.more.markup.html.form.AbstractQuickSearchComponent;
import fr.openwide.core.wicket.more.model.GenericEntityModel;
public class UserQuickSearchComponent extends AbstractQuickSearchComponent<User> {
private static final long serialVersionUID = -7717935272455937918L;
private static final UserChoiceRenderer USER_CHOICE_RENDERER = new UserChoiceRenderer();
public UserQuickSearchComponent(String id) {
this(id, new GenericEntityModel<Long, User>());
}
private UserQuickSearchComponent(String id, IModel<User> userModel) {
super(id, userModel, USER_CHOICE_RENDERER, UserDescriptionPage.linkDescriptor(userModel));
}
@Override
protected List<User> searchAutocomplete(String term, int limit, int offset) {
return getBean(IUserSearchQuery.class).nameAutocomplete(term).list(offset, limit);
}
private static final 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 ? user.getId().toString() : "-1";
}
}
}