package fr.openwide.maven.artifact.notifier.web.application.project.model; import java.util.List; import org.apache.wicket.injection.Injector; import org.apache.wicket.model.IModel; import org.apache.wicket.spring.injection.annot.SpringBean; import fr.openwide.core.wicket.more.markup.repeater.data.LoadableDetachableDataProvider; import fr.openwide.core.wicket.more.model.GenericEntityModel; import fr.openwide.maven.artifact.notifier.core.business.project.model.Project; import fr.openwide.maven.artifact.notifier.core.business.project.service.IProjectService; public class ProjectDataProvider extends LoadableDetachableDataProvider<Project> { private static final long serialVersionUID = -990342753394501234L; @SpringBean private IProjectService projectService; private IModel<String> searchTermModel; public ProjectDataProvider(IModel<String> searchTerm) { super(); this.searchTermModel = searchTerm; Injector.get().inject(this); } @Override public IModel<Project> model(Project item) { return new GenericEntityModel<Long, Project>(item); } @Override protected List<Project> loadList(long first, long count) { return projectService.searchByName(searchTermModel.getObject(), (int) count, (int) first); } @Override protected long loadSize() { return projectService.countSearchByName(searchTermModel.getObject()); } @Override public void detach() { super.detach(); if (searchTermModel != null) { searchTermModel.detach(); } } }