Имам страница на 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;
}
}));
}