package hu.sch.web.wicket.components.tables;
import hu.sch.domain.Membership;
import hu.sch.domain.ValuationData;
import hu.sch.web.wicket.components.SvieMembershipDetailsIcon;
import hu.sch.web.wicket.components.customlinks.UserLink;
import java.util.List;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.cdi.CdiContainer;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
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.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
/**
* Értékelési táblázat, amely neveket, pont- és belépőkérelmeket tartalmaz. Ezt
* használjuk egy kör korábbi értékeléseinek megjelenítéséhez.
*
* @author messo
* @since 2.3.1
*/
public class ValuationTableForGroup extends ValuationTable {
public ValuationTableForGroup(String id, List<ValuationData> items, int rowsPerPage,
final boolean showSvieColumn) {
super(id, items, rowsPerPage, showSvieColumn);
CdiContainer.get().getNonContextualManager().inject(this);
provider.setSort(MySortableDataProvider.SORT_BY_POINT, SortOrder.DESCENDING);
}
public ValuationTableForGroup(String id, List<ValuationData> items,
final boolean showSvieColumn) {
this(id, items, 20, showSvieColumn);
}
@Override
protected void populateColumns(List<IColumn<ValuationData, String>> columns) {
columns.add(new PanelColumn<ValuationData>("Név", MySortableDataProvider.SORT_BY_USER) {
@Override
protected Panel getPanel(String componentId, ValuationData vd) {
return new UserLink(componentId, vd.getUser());
}
});
if (isShowSvieColumn) {
columns.add(new PanelColumn<ValuationData>("SVIE") {
@Override
protected Panel getPanel(final String componentId, final ValuationData vd) {
final Membership ms = membershipManager.findMembership(vd.getGroup().getId(),
vd.getUser().getId());
if (ms != null) {
return new SvieMembershipDetailsIcon(componentId, ms);
}
// törölt körtagságból eredő értékelés
return new SvieMembershipDetailsIcon(componentId, vd.getUser());
}
});
}
columns.add(new PropertyColumn<ValuationData, String>(new Model<String>("Pont"),
MySortableDataProvider.SORT_BY_POINT, "pointRequest.point"));
columns.add(new PropertyColumn<ValuationData, String>(new Model<String>("Belépő típusa"),
MySortableDataProvider.SORT_BY_ENTRANT, "entrantRequest.entrantType"));
columns.add(new PropertyColumn<ValuationData, String>(new Model<String>("Szöveges értékelés"),
"entrantRequest.valuationText") {
@Override
public void populateItem(Item<ICellPopulator<ValuationData>> item, String componentId, IModel<ValuationData> rowModel) {
super.populateItem(item, componentId, rowModel);
item.add(AttributeModifier.replace("style", "width: 400px"));
}
});
}
}