1
我正在尝试为我的GWT CellTable创建自定义单元格渲染器。我试图在单元格内设置一个CSS样式,但它不是由于某种原因渲染的。GWT样式不能在AbstractCell中工作
这里是我的自定义单元格渲染器
static class MyStringCell extends AbstractCell<String> implements Cell<String> {
interface UncheckedStringTemplate extends SafeHtmlTemplates {
@SafeHtmlTemplates.Template("<div style=\"{0}\"><input type=\"checkbox\"/>{1}</div>")
SafeHtml cell(SafeStyles styles, SafeHtml vendorName);
}
private static UncheckedStringTemplate uncheckedStringTemplate = GWT.create(UncheckedStringTemplate.class);
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
if (value == null) {
return;
}
SafeHtml vendorName = SafeHtmlUtils.fromString(value);
SafeStyles styles = SafeStylesUtils.fromTrustedString("noaccess;");
SafeHtml rendered = uncheckedStringTemplate.cell(styles, vendorName);
sb.append(rendered);
}
}
这里的地方我打电话
Column<MyObject, String> userNameSelectedColumn = new Column<MyObject, String>(new MyStringCell()) {
@Override
public String getValue(MyObject myObject) {
return myObject.getName();
}
};
vendorPermissions.addColumn(userNameSelectedColumn, "Objects w/ checkboxes");
此代码生成这个HTML片段渲染器(注意空的样式)
<div style=""><input type="checkbox">Vendor 1</div>
所有这一切紧随the GWT example for Creating Custom Cells,我一直无法弄清楚在哪里硫s是错误的 - 或者如果它是一个错误。
但是,我已经使用GWT调试器来检查呈现的字符串,并且它似乎在其中具有样式信息 - 所以它在GWT流水线下方的某个点处被删除,并且在它到达之前我的浏览器。
任何想法?