GWT样式在AbstractCell中不起作用

GWT样式在AbstractCell中不起作用,gwt,gwt-celltable,Gwt,Gwt Celltable,我正在尝试为我的GWT CellTable创建自定义单元渲染器。我试图在单元格内设置CSS样式,但由于某些原因它无法呈现 这是我的自定义单元格渲染器 static class MyStringCell extends AbstractCell<String> implements Cell<String> { interface UncheckedStringTemplate extends SafeHtmlTemplates { @SafeHt

我正在尝试为我的GWT CellTable创建自定义单元渲染器。我试图在单元格内设置CSS样式,但由于某些原因它无法呈现

这是我的自定义单元格渲染器

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);

    }
}        
静态类MyStringCell扩展AbstractCell实现Cell{
接口未选中StringTemplate扩展安全HtmlTemplates{
@SafeThMLTemplates.Template(“{1}”)
安全HTML单元格(安全样式、安全HTML供应商名称);
}
私有静态UncheckedStringTemplate UncheckedStringTemplate=GWT.create(UncheckedStringTemplate.class);
@凌驾
public void render(com.google.gwt.cell.client.cell.Context上下文、字符串值、安全HTMLBuilder sb){
如果(值==null){
返回;
}
SafeHtml vendorName=SAFEHTMLTILS.fromString(值);
SafeStyles=SafeStylesUtils.fromTrustedString(“noaccess;”);
SafeHtml rendered=uncheckedStringTemplate.cell(样式、供应商名称);
某人追加(提供);
}
}        
这是我给渲染器打电话的地方

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");
Column userNameSelectedColumn=new Column(new MyStringCell()){
@凌驾
公共字符串getValue(MyObject MyObject){
返回myObject.getName();
}
};      
addColumn(userNameSelectedColumn,“带有复选框的对象”);
此代码生成此HTML片段(注意空样式)

供应商1
所有这些都是紧随其后的,我一直无法找出哪里出了问题——或者这是不是一个bug

然而,我已经使用GWT调试器检查了呈现的字符串,并且它在那个时候似乎确实包含了样式信息——因此它在GWT管道的某个位置被删除,在它到达我的浏览器之前


有什么想法吗?

没关系-我做错了。如果我做了类似的事情,这种风格就会起作用

SafeStyles=SafeStylesUtils.fromTrustedString(“宽度:100%;”)

而不是我在胡说八道。GWT必须有一些过滤器来删除无意义的样式

我试图做的是使用这种机制设置CSS类属性,这是错误的。在抽象类所使用的HTMLTemplate中设置class属性的效果是可以预见的

<div style=""><input type="checkbox">Vendor 1</div>