我想在 GWT 中创建一些非常简单的覆盖类来包装一些 SVG 内容。我基本上想画一个矩形,这就是我在javascript中的做法:
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width', '100%');
svg.setAttribute('height', '100%');
document.body.appendChild(svg);
var rect = document.createElementNS('http://www.w3.org/2000/svg','rect');
rect.setAttribute("width","300");
rect.setAttribute("height","100");
svg.appendChild(rect);
现在我无法将其转换为 GWT。我希望我可以围绕所有这些调用做一个非常薄的覆盖,如下所示:
public class SVGPanel extends JavaScriptObject {
protected SVGPanel() {}
public static native SVGPanel create(String width, String height) /*-{
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width', width);
svg.setAttribute('height', height);
return svg;
}-*/;
}
public MyProject implements EntryPoint {
public void onModuleLoad() {
SVGPanel panel = SVGPanel.create("100%", "100%");
Document.get().getBody().appendChild(panel);
}
}
是的,但我不知道我们如何从 SVG 的 javascript 表示跳转到 GWT java 类。一方面,SVGPanel 类扩展了 JavaScriptObject,但我不能简单地将它添加到 Document 正文类中,因为它需要一个 Element 类型。如果有人能指出做那座桥的正确方法,我应该能够在那之后继续前进。
另外,我不确定这是否是合并一些简单 SVG 类的最佳方式,我应该使用 DOM 类而不是尝试使用 JSNI 来建模它们吗?
谢谢