package fr.openwide.core.wicket.more.markup.html.model; import java.util.Comparator; import java.util.List; import org.apache.wicket.injection.Injector; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.spring.injection.annot.SpringBean; import fr.openwide.core.jpa.more.business.generic.model.EnabledFilter; import fr.openwide.core.jpa.more.business.generic.model.GenericLocalizedGenericListItem; import fr.openwide.core.jpa.more.business.generic.service.IGenericLocalizedGenericListItemService; public class LocalizedGenericListItemListModel<T extends GenericLocalizedGenericListItem<?, ?>> extends LoadableDetachableModel<List<T>> { private static final long serialVersionUID = 1385903058801258105L; private final Class<T> clazz; private final Comparator<? super T> comparator; private final EnabledFilter enabledFilter; @SpringBean private IGenericLocalizedGenericListItemService<? super T, ?> listItemService; public LocalizedGenericListItemListModel(Class<T> clazz, Comparator<? super T> comparator) { this(clazz, comparator, true); } /** * @deprecated Use {@link #LocalizedGenericListItemListModel(Class, Comparator, EnabledFilter)} instead */ @Deprecated public LocalizedGenericListItemListModel(Class<T> clazz, Comparator<? super T> comparator, boolean enabledOnly) { this(clazz, comparator, enabledOnly ? EnabledFilter.ENABLED_ONLY : EnabledFilter.ALL); } public LocalizedGenericListItemListModel(Class<T> clazz, Comparator<? super T> comparator, EnabledFilter enabledFilter) { super(); Injector.get().inject(this); this.clazz = clazz; this.enabledFilter = enabledFilter; this.comparator = comparator; } @Override protected List<T> load() { return listItemService.list(clazz, enabledFilter, comparator); } }