如何使用画布作为GWT的单元格小部件的单元格?

时间:2012-05-21 15:25:25

标签: gwt gwt-2.2-celltable

所有问题都在于,如何在GWT中使用CellTable创建一个带有画布的自定义单元格?

我搜索一种方法将画布转换为html,将其附加到render方法的SafeHtmlBuilder参数但没有成功。以下是自定义单元格的有趣片段:

public void render(Context context, String value, SafeHtmlBuilder sb) {

    Canvas c = Canvas.createIfSupported();

    // create a text into the canvas using the value parameter
    // something like (this is not important) : 
    c.getContext2d().drawTheText(value);

    // here is the problem, what kind of transformation may I do 
    // to use the canvas in this cell ?
    SafeHtml safeValue = SafeHtmlUtils.fromString(c.?????);
    sb.append(safeValue);
}

编辑:这是工作解决方案,感谢Thomas

sb.append(SafeHtmlUtils.fromTrustedString("<img src=\"" + canvas.toDataUrl() + "\" />"));

请注意,应使用模板,而不是直接使用一段html代码。

1 个答案:

答案 0 :(得分:2)

我认为您必须使用toDataURL()并构建一个<img>元素才能显示它。

请注意,您可以在Canvas的调用之间重用相同的render实例;请确保在重新使用之前清除它。