package hu.sch.web.kp.search;
import hu.sch.domain.Group;
import hu.sch.domain.user.User;
import hu.sch.services.GroupManagerLocal;
import hu.sch.web.wicket.components.customlinks.GroupLink;
import hu.sch.web.wicket.components.customlinks.UserLink;
import hu.sch.web.wicket.components.tables.PanelColumn;
import hu.sch.web.wicket.util.SortableGroupDataProvider;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
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.markup.html.panel.Panel;
/**
*
* @author aldaris
*/
public class GroupResultPanel extends Panel {
@Inject
private GroupManagerLocal groupManager;
public GroupResultPanel(String id, List<Group> groups) {
super(id);
List<IColumn<Group, String>> columns = new ArrayList<IColumn<Group, String>>();
columns.add(new PanelColumn<Group>("Név", "name") {
@Override
protected Panel getPanel(String componentId, Group g) {
return new GroupLink(componentId, g);
}
});
columns.add(new PanelColumn<Group>("Körvezető neve") {
@Override
protected Panel getPanel(String componentId, Group g) {
// FIXME: ez így nagyon gány, minden egyes sorhoz külön query???
User korvezeto = groupManager.findLeaderForGroup(g.getId());
return new UserLink(componentId, korvezeto);
}
});
SortableGroupDataProvider provider = new SortableGroupDataProvider(groups);
AjaxFallbackDefaultDataTable<Group, String> table =
new AjaxFallbackDefaultDataTable<Group, String>("groupTable", columns, provider, 50);
add(table);
}
}