У меня есть страница Apache Wicket, на которой есть DataTable со столбцом, в котором должны отображаться статусы: красный, желтый, зеленый. Если содержимое столбца красное, я хочу изменить класс CSS на красный статус, если желтый желтый статус, иначе зеленый статус. Кажется, я не могу получить данные так, как вы можете из столбца свойства, доступного для щелчка. Как вы получаете данные в PropertyColumn или есть другой способ сделать это в DataTable? Спасибо!
ОБНОВИТЬ
Спасибо, Мартин. Вот что я придумал:
@Override
public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, final IModel<T> rowModel) {
Label label = new Label(componentId, getDataModel(rowModel));
cellItem.add(label);
LOGGER.debug("populateItem: label DefaultModelObject: {}", (String) label.getDefaultModelObject());
label.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
ProcessingTime processingTime = (ProcessingTime) rowModel.getObject();
@Override
public String getObject() {
String cssClass = null;
if (StringUtils.equals("Red", processingTime.getStatus())) {
cssClass = "red-status";
} else if (StringUtils.equals("Yellow", processingTime.getStatus())) {
cssClass = "yellow-status";
} else if (StringUtils.equals("Green", processingTime.getStatus())) {
cssClass = "green-status";
} else {
cssClass = "process-status";
}
return cssClass;
}
}));
}