赤、黄、緑のステータスを表示する必要がある列を持つ DataTable を持つ Apache Wicket ページがあります。列の内容が赤の場合、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;
}
}));
}