package hu.sch.web.kp.search; import hu.sch.domain.user.User; import hu.sch.domain.user.UserAttributeName; import hu.sch.web.profile.search.PersonLinkPanel; import hu.sch.web.wicket.components.customlinks.SearchLink; import hu.sch.web.wicket.components.tables.PanelColumn; import hu.sch.web.wicket.util.SortablePersonDataProvider; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; /** * * @author aldaris */ public class PersonResultPanel extends Panel { private final SortablePersonDataProvider provider; public PersonResultPanel(String id, List<User> persons) { super(id); List<IColumn<User, String>> columns = new ArrayList<IColumn<User, String>>(); columns.add(new PanelColumn<User>("Név", "fullName") { @Override protected Panel getPanel(String componentId, User p) { return new PersonLinkPanel(componentId, p); } }); columns.add(new PropertyColumn<User, String>(new Model<String>("Becenév"), "nickName", "nickName")); columns.add(new PanelColumn<User>("Szobaszám", "fullRoomNumber") { @Override protected Panel getPanel(String componentId, User p) { Panel panel = new SearchLink(componentId, SearchLink.USER_TYPE, p.getFullRoomNumber()); panel.setVisible(p.isAttributeVisible(UserAttributeName.ROOM_NUMBER) && !StringUtils.isBlank(p.getFullRoomNumber())); return panel; } }); provider = new SortablePersonDataProvider(persons); AjaxFallbackDefaultDataTable table = new AjaxFallbackDefaultDataTable("personTable", columns, provider, 50); add(table); } public SortablePersonDataProvider getPersonDataProvider() { return provider; } }