{
final List<IColumn<RechnungDO, String>> columns = new ArrayList<IColumn<RechnungDO, String>>();
final CellItemListener<RechnungDO> cellItemListener = new CellItemListener<RechnungDO>() {
public void populateItem(final Item<ICellPopulator<RechnungDO>> item, final String componentId, final IModel<RechnungDO> rowModel)
{
final RechnungDO rechnung = rowModel.getObject();
if (rechnung.getStatus() == null) {
// Should not occur:
return;
}
appendCssClasses(item, rechnung.getId(), rechnung.isDeleted());
if (rechnung.isDeleted() == true) {
// Do nothing further
} else if (rechnung.isUeberfaellig() == true) {
appendCssClasses(item, RowCssClass.IMPORTANT_ROW);
} else if (rechnung.isBezahlt() == false) {
appendCssClasses(item, RowCssClass.BLUE);
}
}
};
columns.add(new CellItemListenerPropertyColumn<RechnungDO>(new Model<String>(getString("fibu.rechnung.nummer.short")), getSortable(
"nummer", sortable), "nummer", cellItemListener) {
/**
* @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item,
* java.lang.String, org.apache.wicket.model.IModel)
*/
@Override
public void populateItem(final Item<ICellPopulator<RechnungDO>> item, final String componentId, final IModel<RechnungDO> rowModel)
{
final RechnungDO rechnung = rowModel.getObject();
String nummer = String.valueOf(rechnung.getNummer());
if (form.getSearchFilter().isShowKostZuweisungStatus() == true) {
final BigDecimal fehlBetrag = rechnung.getKostZuweisungFehlbetrag();
if (NumberHelper.isNotZero(fehlBetrag) == true) {
nummer += " *** " + CurrencyFormatter.format(fehlBetrag) + " ***";
}
}
final Label nummerLabel = new Label(ListSelectActionPanel.LABEL_ID, nummer);
nummerLabel.setEscapeModelStrings(false);
item.add(new ListSelectActionPanel(componentId, rowModel, RechnungEditPage.class, rechnung.getId(), returnToPage, nummerLabel));
cellItemListener.populateItem(item, componentId, rowModel);
addRowClick(item);
}
});
columns.add(new CellItemListenerPropertyColumn<RechnungDO>(getString("fibu.kunde"), getSortable("kundeAsString", sortable),
"kundeAsString", cellItemListener));
columns.add(new CellItemListenerPropertyColumn<RechnungDO>(getString("fibu.projekt"), getSortable("projekt.name", sortable),
"projekt.name", cellItemListener));
if (Registry.instance().getKontoCache().isEmpty() == false) {
columns.add(new CellItemListenerPropertyColumn<RechnungDO>(RechnungDO.class, null, "konto", cellItemListener) {
/**
* @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item,
* java.lang.String, org.apache.wicket.model.IModel)
*/
@Override
public void populateItem(final Item<ICellPopulator<RechnungDO>> item, final String componentId, final IModel<RechnungDO> rowModel)
{
final RechnungDO invoice = rowModel.getObject();
final KontoDO konto = kontoCache.getKonto(invoice);
item.add(new Label(componentId, konto != null ? konto.formatKonto() : ""));
cellItemListener.populateItem(item, componentId, rowModel);
}
});