package fr.openwide.core.basicapp.web.application.referencedata.component; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.model.ResourceModel; import fr.openwide.core.basicapp.core.business.referencedata.model.City; import fr.openwide.core.basicapp.core.util.binding.Bindings; import fr.openwide.core.basicapp.web.application.referencedata.form.AbstractGenericListItemPopup; import fr.openwide.core.basicapp.web.application.referencedata.form.CityPopup; import fr.openwide.core.basicapp.web.application.referencedata.model.SimpleGenericListItemDataProvider; import fr.openwide.core.jpa.more.business.generic.model.search.GenericListItemSort; import fr.openwide.core.wicket.more.markup.html.sort.SortIconStyle; import fr.openwide.core.wicket.more.markup.html.sort.TableSortLink.CycleMode; import fr.openwide.core.wicket.more.markup.repeater.table.builder.DataTableBuilder; import fr.openwide.core.wicket.more.markup.repeater.table.builder.state.IAddedCoreColumnState; public class CityListPanel extends AbstractGenericListItemListPanel<City, GenericListItemSort, SimpleGenericListItemDataProvider<City, GenericListItemSort>> { public CityListPanel(String id) { this(id, SimpleGenericListItemDataProvider.forItemType(City.class)); } public CityListPanel(String id, SimpleGenericListItemDataProvider<City, GenericListItemSort> dataProvider) { super(id, dataProvider, dataProvider.getSortModel()); } private static final long serialVersionUID = -2165029373966420708L; @Override protected City getNewInstance() { return new City(); } @Override protected AbstractGenericListItemPopup<City> createPopup(String wicketId) { return new CityPopup(wicketId) { private static final long serialVersionUID = 1L; @Override protected void refresh(AjaxRequestTarget target) { target.add(resultats); } }; } @Override protected IAddedCoreColumnState<City, GenericListItemSort> addColumns(DataTableBuilder<City, GenericListItemSort> builder) { return builder .addLabelColumn(new ResourceModel("business.listItem.label"), Bindings.genericListItem().label()) .withSort(GenericListItemSort.LABEL, SortIconStyle.ALPHABET, CycleMode.DEFAULT_REVERSE) .withClass("text text-md") .addLabelColumn(new ResourceModel("business.postalCode"), Bindings.city().postalCode()) .withSort(GenericListItemSort.CODE, SortIconStyle.DEFAULT, CycleMode.DEFAULT_REVERSE) .withClass("code code-sm"); } @Override protected Component createSearchForm(String wicketId, SimpleGenericListItemDataProvider<City, GenericListItemSort> dataProvider, Component table) { return new CitySearchPanel(wicketId, dataProvider, table); } }